Korea Evangelist

Developer & Platform Evangelism, Microsoft Korea

August, 2009

  • Korea Evangelist

    Windows7에서 멀티 터치 애플리케이션 개발하기 (1)

    • 1 Comments

    지난 1월부터 계속해서 Windows7의 새로운 특징 중 하나인 멀티 터치에 대한 이야기들을 해 왔습니다. 윈도우7이 출시되면서 국내 수많은 디스플레이 업체들에게 환영을 받고 있습니다. 따라서 오늘은 처음으로 Windows7에서 멀티 터치 애플리케이션을 개발하는 데 필요한 정보 사항들을 살펴보도록 하겠습니다. 

    시작하기

    Windows7의 멀티 터치를 사용하기 위해서는 멀티 터치를 지원하는 디스플레이가 있는 PC가 필요합니다. 현재 국내에서는 HP에서 TouchSmart PC 라는 이름은 All-In-One 방식 PC 와 HP 터치스마트 tx2-1000 노트북이 판매 되고 있습니다. HP Touch Smart PC와 같은 경우에는 현재 MBC 수요일과 목요일에 방송되는 ‘트리플’ 이라는 드라마에 나옵니다.

    물론 한 번도 멀티 터치를 이용한 광고가 나오지 않지만요, 아무래도 PD나 작가들이 그 PC가 무엇을 하는 지 모르기 때문에 반영하지 않은 것 같습니다. 한편, 올 연말 쯤이나 내년 초 쯤이면 국내 삼성전자와 LG전자에서도 1-2 기종 정도 나올 예정입니다.

    Windows7의 멀티 터치는 다른 말로, Windows Touch 이라는 이름으로 부릅니다. 이것은 마이크로소프트가 멀티 터치에 대한 브랜드를 가지기 위해 등록된 이름입니다. Windows7 Touch 애플리케이션을 시작하기 위해서는 MSDN의 Windows User Experience Interaction Guidelines (UX Guide)Touch 섹션을 먼저 읽어 보시기 바랍니다.

    touch01

    왜냐하면, 어떠한 애플리케이션을 개발하려면, 먼저 사용자 경험과 디자인 요소를 파악하는 것이 중요합니다. 예를 들어, 터치에 최적화된 애플리케이션은 기존의 마우스나 펜으로 입력할 때 보다 입력 받는 면적이 좀 더 넓어야 합니다. 위에 보이는 점프 리스트를 살펴 보시면 우측 면이 멀티 터치를 고려하여 좀 더 넓게 손가락으로 누를 수 있도록 반영한 사용자 경험이라는 것을 알 수 있습니다.

    Windows SDK

    Windows7의 멀티 터치 애플리케이션 개발의 가장 기초적인 내용은 Windows Software Development Kit(곧 RTM 공개 예정)에 포함되어 있습니다. Windows7 운영체제에서 지원해주는 멀티 터치 제스처 및 조작, 관성 등을 보여주는 API 와 샘플이 포함되어 있습니다. 현재 Windows SDK에 들어 있는 샘플들을 다음과 같습니다.

    Multi-touch Gestures Application (C++) Win32 API을 이용하여 멀티 터치 제스처 메시지와 구성 설정 하는 방법을 보여줌
    Multi-touch Gestures Application (C#) C# 을 이용하여 멀티 터치 제스처 메시지와 구성 설정 하는 방법을 보여줌
    Multi-touch Manipulation Application Win32 애플리케이션에서 멀티 터치 이벤트를 핸들링하고 설정하는 방법을 보여줌

    그 외에도 Windows7 에서 멀티 터치 애플리케이션을 동작하는 것을 보기 위해 실습을 할 수 있게 Hands On Lab 으로 구성해 놓은 것을 공개해 놓았습니다. 

    Multitouch Gestures

    이 실습은 애플리케이션이 멀티 터치 제스처로 어떻게 반응하는지를 파악할 수 있습니다. C++ 언어로 작성되어 있고 컬러 색깔로 된 사각형에 반응하는 데모를 볼 수 있습니다.

    Enhanced Multitouch Gestures

    이 실습은 앞에서 사용한 Multitouch Gesture 와 비슷한 구성이지만 좀더 제스처를 확장하고 렌더링을 할 수 있는 경험을 C++ 언어로 할 수 있습니다.

    Multitouch Scratchpad

    이 실습은 C# 언어로 애플리케이션이 터치 포인트로 하나의 윈도우에서 선을 그리움으로써 멀티 터치 입력으로 읽고 반응을 할 수 있도록 경험을 할 수 있습니다. 이 선들은 모두 각각 컬러 색깔로 반응합니다. .

    C# 언어를 사용한 멀티 터치용 스크래치 패드와 같은 경우에는 현재 .NET Framework 그 자체에서 멀티 터치를 지원하지 않고 C++ 언어로 된 라이브러리를 인터롭(Interop)해서 사용합니다. 그러한 샘플 라이브러리도 여기에 함께 공개되어 있는데, Windows Forms 과 .NET FX 3.5 SP1 기반으로 작성되어 있습니다. 

    다음 시간에는 Windows User Experience Interaction Guidelines (UX Guide) 에서 Touch Interaction 을 애플리케이션 상에서 어떻게 구현해야 하는지 알아보도록 하겠습니다. 이 글을 보신 분들은 위의 샘플들을 한번 동작해 보시고 궁금한 사항 있으시면 아래에 댓글 부탁 드립니다!

  • Korea Evangelist

    개발자 여러분, 마이크로소프트 미래가 궁금합니까?

    • 3 Comments

    pdc09

    그것에 대한 답은 “PDC’09 에 참여 하십시오!” 입니다!

    벌써 제가 PDC’08을 다녀 온 지 10개월이 지났네요! 작년에는 마이크로소프트의 클라우드 비전을 말해 주었죠! 올해에는 실제로 마이크로소프트 클라우드 기반에서 어떻게 설계하고 개발하는 가에 대해 진지한 토론과 더불어 기술 세션들이 펼쳐질 예정입니다!

    개발자로서 롤 모델이 계십니까? 얼마 후에 한국에 온다고 하죠? 이클립스를 히트 시킨 에릭 감마, 아니면 지금은 은퇴했지만 한 때 자바의 아버지라 불렸던 제임스 고슬링, 저는 여러분들께 레이 오지를 소개하고자 합니다! 작년 PDC’08때 옆집 아저씨처럼 나근나근 하게 설명하던 모습이 떠오릅니다. 이번 키노트에서도 멋질꺼라 예상합니다.

    한편, 이 PDC’09는 올해에도 로스앤젤러스 컨벤션 센터에서 11월 17일에서 19일에 개최될 예정입니다. 현재 PDC 웹사이트인 http://microsoftpdc.com 에서 새로운 소식들을 전달하고 있습니다. 또한 조기 등록자(Early-Bird)를 위해 9월 15일 이전까지 등록하는 사람들에게는 1,595 달러까지 할인해 줍니다. 계속해서 흥미 있는 PDC 소식들을 전달해 드리도록 하겠습니다!

  • Korea Evangelist

    Windows7에서 멀티 터치 애플리케이션 개발하기 (3)

    • 0 Comments

    트위터 에서 반응이 좋아 세 번째 글을 적는 데 힘이 나네요! 참, 여러분들도 트위터를 하신다면 꼭 @Windows7Korea 를 Follow 해 주세요! 한국 마이크로소프트의 윈도우7 공식 트위터 이니 궁금한 사항들이 있으면 언제나 빠르게 여쭈어 볼 수 있습니다. 

    이번 시간에는 윈도우7에서 멀티 터치가 어떻게 동작하는지 알아 보도록 하겠습니다. 우선 용어를 정리하자면 다음과 같습니다.

    터치 마우스와 같은 행위; 탭, 더블-탭, 오른쪽 마우스 클릭, 드래그 앤 선택
    터치 제스처 플릭커(방향 조절 및 편집), 확대 및 축소, 팬 및 회전과 같은 멀티-터치 제스처
    터치 플랫폼 부유하고 직관적인 애플리케이션을 생성할 수 있는 플랫폼

    윈도우 비스타(Windows Vista)에서 실행하는 애플리케이션은 싱글 터치로만 접근할 수 있습니다. 이러한 애플리케이션 들은 탭과 더블 탭, 마우스 오른쪽 버튼 클릭, 드래그 앤 선택과 같은 기능들을 사용할 수 있습니다. 반면에 윈도우7에서는 차세대 터치 레이어를 두 가지 더 지원하는 데, 그것이 바로 터치 제스처와 터치 플랫폼 입니다.

    윈도우7에서는 시스템 자체에서 지원하는 시스템 제스처(System Gestures)와 여러분의 솔루션에서 직접 사용할 수 있는 애플리케이션 제스처(Application Gestures)를 지원 합니다. 먼저 기본적으로 시스템 제스처에 대해 알아보자면 다음과 같습니다.

    시스템 제스처 메시지
    호버 지원한다면 마우스 호버 와 같은 기능
    밑에서 아래로, 마우스 왼쪽 버튼 클릭과 동일함
    더블 탭 두 번씩 밑에서 아래로, 마우스 더블 클릭과 동일함
    홀드 밑에서 조금 멈추었다가 위로 올림, 마우스 오른쪽 버튼 클릭과 동일함
    드래그 밑에서 위로 움직임, 마우스 왼쪽 드래그와 동일함
    홀드-드래그 밑에서 멈추었다가 위로 움직임, 마우스 오른쪽 드래그와 동일함
    선택 밑에서 선택된 개체를 위로 움직임, 마우스 선택과 동일함

    시스템 제스처들은 윈도우 메시지에 의해 정의 되고 핸들링 됩니다. 모든 윈도우 애플리케이션은 시스템 제스처에 접근할 수 있습니다. 시스템 제스처는 마우스나 키보드와 같이 애플리케이션 커맨드 메시지를 직접적으로 연결할 수 있습니다.

    예를 들어, 윈도우 라이브 메신저의 점프 리스트에서 멀티 터치를 이용하여 실행시킨다면, 점프 리스트에서 아래에서 위로 손가락을 올리면 됩니다. 또한 마우스 오른쪽 버튼을 눌리는 효과와 동일하게 다음의 그림을 살펴보면 쉽게 이해하실 수 있습니다.

    multi-touch

    윈도우7의 점프 리스트는 멀티 터치를 사용하는 데 최적화되어 쓸 수 있도록 기능이 제공됩니다. 아래의 그림에서 보듯이, 왼쪽 이미지와 오른쪽 이미지를 비교해 보면 오른쪽 이미지가 좀더 크고 넓게 되어 있었습니다. 이것은 손가락을 이용하여 점프리스트의 각 아이템을 실행시킬 수 있도록 제공해 줍니다.

    untitled

    윈도우7의 멀티 터치에 좀더 상세한 설명을 이해하기 위해서는 Winkey 쌤과 꼬알라의 Windows7 만담 시리즈 제10화 – 터치 이야기 편을 봐 주세요! 그리고 멀티 터치에 대한 상세한 동작은 꼬알라의 블로그에 자세히 설명되어 있습니다. 이 멀티 터치는 Windows7의 정식 판의 Documentation Help에 한글로 자세히 정리되어 있으니 참고하시기 바랍니다.

  • Korea Evangelist

    Windows7에서 멀티 터치 애플리케이션 개발하기 (2)

    • 1 Comments

    두 번째 시간 입니다. 애플리케이션 개발자들에게 최적화된 멀티 터치를 제공하는 것은 .NET Framework 4.0 부터 입니다. 앞서 Visual Studio 2010 에 대한 개요를 설명했는데, 좀더 상세히 말씀 드리면 다음과 같습니다.

    Visual Studio 2010 과 함께 나올 예정인 .NET Framework 4.0의 WPF에서 멀티 터치로 확장되는 기능들과, 리본 컨트롤 및 태스크 바 확장성 까지 지원될 예정입니다.

    NET  현재 .NET Framework 4.0은 베타1까지 나와 있으며, Visual Studio 2010 베타1과 함께 나와 있습니다. 여기를 누르시면 다운로드를 받아 시험 해 보실 수 있습니다. 이를 바탕으로 개발자를 위한 Training Kit 가 제공되어 있는데, XAML 프로젝트를 이용하여 멀티 터치를 이용한 그림 그리기 애플리케이션을 만들 수 있도록 실습 교재가 다음과 같은 내용으로 제공됩니다.

    • 실습 1 – 멀티 터치 하드웨어 준비와 테스트 하기
    • 실습 2 – 마우스 이벤트를 터치 이벤트로 변경하기
    • 실습 3 – 하나의 그림을 동시에 핸들링 하기
    • 실습 4 – 멀티 터치 조작을 이용한 그림 핸들링 하기
    • 실습 5 – PictureTracker 캐쉬 추가하기
    • 실습 6 – Inertia 추가하기

    SL  최근에 발표된 Silverlight 3 에서도 멀티 터치를 지원하는 데, 이를 여러분의 애플리케이션이나 솔루션에서도 적용시킬 수 있습니다. Tim Heuer 씨는 Silverlight3 의 멀티 터치를 이용하여 Silverlight 3 Multi-touch Basic 라는 제목으로 터치 이벤트를 실버라이트3에서 어떻게 활용할 수 있는가를 잘 보여주는 예라고 할 수 있습니다. 여기를 누르면 직접 그가 적은 아티클을 상세히 볼 수 있으며, 소스도 볼 수 있습니다.

    자, 그렇다면 손이 근질근질 하십니까?

    그런데 저는 멀티 터치를 지원하는 하드웨어도 없습니다. 꼭 이것을 사야 할 수 있나요? 라고 물어보는 개발자들이 많을 것입니다. 그런 분들을 위하여 WPF Wonderland 에서는 한 가지 좋은 아이디어를 제공하고 있습니다. 멀티 터치 에뮬레이터를 이용하여 개발하는 방법에 대해 소개하고 있습니다.

    물론 Codeplex를 통해 MultiTouchVista 라는 이름으로 소스 또한 공개 되어 있으니 동작원리를 알고 싶은 분이라면 다운로드를 받으시면 될 것 입니다. 그러나 여러분들은 바이너리만 받아서 에뮬레이터 디바이스 드라이버를 설치하셔서 테스트 해 보기 바랍니다. 여기를 누르면 자세한 설치 방법에 대해 설명 되어 있습니다. 오늘은 여기까지 하도록 하겠습니다!

  • Korea Evangelist

    8월 20일 Windows7 개발자 세미나 시리즈 첫 번째 시간 - 예고편

    • 0 Comments


    Windows7  RTM과 더불어 개발자들을 위한 Windows7 세미나가 총 6회 기획되어서 제공됩니다.
    4회 이후로는 추석과 몇 가지 이유로 아직 일정이 확정되어 있지 않습니다. 변동이 생길 때 마다 바로 바로 공지 하도록 하겠습니다.
    8월 20일 저녁 7시에 시작하는 세미나에서는 IT전문 기자인 서명덕 기자와 출중한 내공의 서학수님과 제가 Windows7 개발자 가이드와 Taskbar, Library등을 다루는 내용으로 시리즈 세미나를 시작할 예정입니다.

    세미나 등록 http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422923&Culture=ko-KR


    세미나 등록 http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422923&Culture=ko-KR
    장소는 포스코센터 서관 5층입니다.
    해당 사무소의 약도입니다.

    김영욱 (iwinkey@hotmail.com)
    Microsoft KOREA
    Enterprise Develoeper Evangelist


    Windows 7 개발자들을 위한 블로그 http://blogs.msdn.com/winkey7
    UX 개발자들을 위한 강좌 http://winkey.tistory.com

Page 1 of 1 (5 items)