본문 바로가기

Smart Phone Story

Windows Mobile 6.1에서 개발한 애플리케이션의 Windows Mobile 6.5 동작은?

1. 옴니아2 페밀리 업그레이드 소식
삼성전자에서 출시한 옴니아2 페밀리 (T*옴니아2 AMOLED, 쇼 옴니아, 오즈 옴니아)중
오즈 옴니아는 이미 Windows Mobile 6.5가 탑재되어 있었습니다

그런데, 지난 2월 23일 기사에 따르면 T옴니아2는 이달 말, 쇼 옴니아는 3월 중에
운영체제 업그레이드 서비스를 시작할 거라는 반가운 소식이 들려왔습니다
(설마 이번에도 바람 맞히지는 않겠지요?)

사용자 입장에서는 무척이나 기다려오던 반가운 소식입니다
그 동안 악평을 받았던 옴니아2의 터치감은 WM6.5에서 많이 개선되었고,
실행속도의 전반적인 향상을 기대할 수 있기 때문입니다

이러한 업그레이드 소식으로 인해 많은 개발자들이 긴장을 하고 있습니다
기존의 WM6.1기반에서 개발된 애플리케이션을
다시 WM6.5에 맞게 재 배포를 해야 하는가 하는 문제점 때문 입니다

2. Windows Mobile 6.5는 무엇이 바뀌었나?
 
기존의 Windows Mobile 6.1에 비해 25%가량 향상된 부팅속도,
베터리 관리 장치 드라이버 아키텍처의 최적화로 동일한 하드웨어 사양에서 대기시간이 이틀 정도 연장되었습니다
특히, Windows Mobilr 6.1 애플리케이션을 그대로 호환이 가능하며
33번째 슬롯을 활성화 시켜 메모리 관리를 더욱 더 진보적으로 확대시켰습니다

이는 그 동안 Windows 개발자들이 변화된 OS에 맞게 새롭게 학습을 해야 하는 리스크를 감소시켰고,
하위 OS 애플리케이션 개발 경험을 그대로 살릴 수 있다는 점이 장점으로 나타나게 되어
보다 편리하고, 능률적인 Windows Mobile 개발을 보장할 수 있다는 점을 내 새울 수 있습니다.

3. C/C++ 또는 .NET CF(C#) 언어로 개발을 할 경우의 문제점은?
Windows Mobile 6.5에서는 기존의 Windows Mobile 6에서 사용된 애플리케이션을
대부분 그대로 사용할 수 있습니다
이는 WM 6.1과 6.5는 같은 커널 아키텍처를 가지고 있기 때문입니다

하지만, C/C++ 언어로 개발된 애플리케이션은 6.5용도로 컴파일을 다시 해줘서 배포하는 것이 좋습니다
그 이유는 기존의 6.1 까지만 헤더파일에서 버전 체크업이 되어 있어서,
WinVer 6.5를 인식하지 못하는 경우가 있습니다.

따라서 아래 설명되는 WM6.5 DTK를 다운로드 받아 다시 컴파일 해주는 것이 좋습니다

.NET CF(C#)언어로 개발되었다면 문제가 없습니다. .NET CF는 VerInfo를 자동적으로 인식하고
바이너리 호환성 타입이라, .NET CF가 같은 버전이 설치되어 있다면 문제 없이 동작할 수 있습니다

이 외 변경된 점으로, WM6.5는 GDI+ 처리속도가 향상 되었습니다,
Alpha Blending, Bitmap 처리가 좀 더 매끄럽게 처리가 되기 때문에, 과거 WM 5.0부터 사용했던
GAPI를 이용했다면, 더 이상 WM6.5 부터는 GAPI를 사용하지 않고, DirectX 기반 DirectDraw를 지원합니다

(출처 : 서진호의 윈도우폰 이야기 : 윈도우 모바일 6.1에서 6.5로 마이그레인션 할 때 고려사항)

4. 그렇다면 Windows Mobile 6.5를 개발 하기 위해서는 필요한 것은?
기존에 사용하던 개발환경을 그대로 사용할 수 있습니다
다만, WM6.5에 새롭게 추가된 기능을 사용하기 위해서 Windows Mobile 6.5 DTK(Developer Tool Kit)이
필요합니다

Windows Mobile 6.5 DTK에는 다음과 같은 내용이 포함되어 있습니다
Windows Mobile 6.5 DTK Download : http://go.microsoft.com/?linkid=9670343

개발내용

에뮬레이터

이미지

Windows Mobile 6.5 DTK에는 다음과 같은 에뮬레이터 이미지가 포함되어 있습니다

Windows Mobile 6 Professional

· Windows Mobile 6.5 Professional Square Emulator
· Windows Mobile 6.5 Professional QVGA Emulator
· Windows Mobile 6.5 Professional WQVGA Emulator
· Windows Mobile 6.5 Professional VGA Emulator
· Windows Mobile 6.5 Professional WVGA Emulator

Gesture APIs

새로운 API를 이용해 응용프로그램 개발자는 Windows Mobile 6.5 touch gesture Framework를 활용할 수 있게 됩니다.

Gesture API는 응용프로그램이 터치 제스처 입력을 처리하고, 시각적으로 일관성 있는 UI를 제공할 수 있습니다.

Gesture API는 다음과 같은 헤더파일로 정의 되어 있습니다

<gesture.h>
<GesturePhysicsEngine.h>
<WindowAutoGesture.h>

헤더 파일과 라이브러리는 Windows Mobile SDK\Pocket PC\ folder에 있습니다

Gesture API를 사용하여 만들어진 예제는 Windows Mobile 6.5 Developer Tool Kit\Samples\ folder 에 있습니다


WM6.5의 동작환경을 테스트 하기 위한 에뮬레이터 이미지가 포함되어 있습니다
다만, 영문 에뮬레이터 이기 때문에, 한글화 작업을 위해서는 약간의 작업이 필요합니다
(WM6.5 에뮬레이터 한글 입출력은 [영문 에뮬레이터에서 한글 입출력 설정] 게시글을 참고해 주시기 바랍니다)

5. Gesture API 추가
WM6.5 DTK에서 눈 여겨 볼 내용 중 하나인 Gesture API가 있습니다
Windows Mobile 6.5부터 공식 지원되는 Touch Gesture는 그동안 WM6.1에서 구현하기 어려웠던
제스처를 손쉽게 구현할 수 있도록 API가 지원 됩니다

Native로 제공되는 API이기 때문에 Managed로 개발하기 위해서는 Wrapper DLL로 변환하여 사용하는 작업이 필요합니다만, 이것도 이미 MSDN에 공개되어 있어 아래 경로를 통해 다운로드 받아 사용할 수 있습니다
http://code.msdn.microsoft.com/gestureswm

이 제스처 API는 WM6.5에서만 전용으로 동작하게 됩니다.
만약, 하위 OS를 호환하기 위한 애플리케이션을 개발한다면, Gesture API를 배제 하거나,
OS 버전에 맞게 동작 유무를 결정해주는 작업이 필요합니다

6. 맺으며
이번 삼성전자의 옴니아2 Windows Mobile 6.5의 업그레이드는 사용자들로부터 많은 기대를 받고 있습니다
그로 인해서 개발자들이 신경써야 하는 부분이 추가 되었다는 예기 이기도 합니다만,
편리하고 향상된 성능으로 좀 더 사용자의 접근성이 뛰어난 애플리케이션을 힘들게 구현하는 부담감도 덜어졌습니다

Native 코드에서는 컴파일이 다시한번 필요하지만, .NET CF로 개발된 코드는 특별한 작업이 필요 없습니다
이러한 상황으로 볼 때 마이크로소프트에서는 .NET CF(C#)을 이용한 개발을 권장하는 듯 보입니다

Windows Mobile 6.5는 Windows CE 5를 사용하는 마지막 플랫폼 입니다
이번 2010 MWC에서 발표된 Windows Phone 7 Series는 Windows Embeded 6를 사용하는 새로운 플랫폼으로
기존의 WM6.X의 애플리케이션의 호환유무가 불확실한 상황 입니다
(.NET CF 4.0이 하위 레벨 CF를 호환해 준다면, Manage 코드로 작성된 애플리케이션은 동작할 것 같습니다)

그동안 문제가 많았던 메모리 관리와, 개선이 필요한 UI, 많은 리소스를 요구하는 애플리케이션의 등장으로
Core의 개선이 불가피한 상황이 되었기 때문입니다

이러한 변화는 기존의 수많은 WM6 이하 애플리케이션을 사용할 수 없을지도 모르지만,
마이크로소프트의 4-Screen 전략의 연계와, 향상된 디바이스 사용환경을 제공하기 위해서라면
한번쯤은 필요한 변화의 시기라고 생각 됩니다

그리고, Windows Phone 개발자의 최고의 장점인, 동일한 개발환경과 방대한 네트워크는
앞으로 다가올 혼란한 변화의 시기를 안정화 시킬 수 있는 촉매제의 역할을 해줄 수 있을 꺼라 기대 됩니다