Windows Mobile 6 okiem programisty. Wprowadzenie. Autor: Michał Skowronek skowronkow@gmail.com www.skowronkow.pl 1
Spis treści Mobilny świat...3 Dlaczego Windows Mobile?...3 Urządzenia z Windows Mobile...4 HTC...4 Samsung...5 HP...5 Przygotowanie środowiska...6 Visual Studio 2005/2008...6 Windows Mobile 6.1 SDK...6 Active Sync, Windows Mobile Device Center...7 Przykładowa aplikacja...7 C/C++ vs C#/Visual Basic...8 Czas zacząd...8 Hello World... 10 To dopiero początek... 11 Co dalej?... 11 2
Mobilny świat Telefony komórkowe i urządzenia przenośne stały się już nieodłączną częścią naszego życia i w zasadzie trudno sobie wyobrazid dzisiaj ich brak. Spośród szerokiego spektrum tego typu urządzeo na szczególną uwagę zasługują moim zdaniem wszystkie te, które poza niezłymi parametrami technicznymi zostały wyposażone w systemy operacyjne z prawdziwego zdarzenia. Sam podział między typowym palmtopem a telefonem komórkowym powoli się zaciera i czasem trudno powiedzied czy mamy do czynienia z telefonem z funkcją palmtopa czy też jest to standardowy minikomputer wyposażony w moduł GSM. Sytuacja wydaje się byd idealna zarówno dla użytkowników jak i developerów, ci drudzy jednak muszą najpierw stanąd przed niełatwym wyborem platformy, na którą chcą tworzyd oprogramowanie. Sprawa jest o tyle trudna, że istnieje kilka możliwości, wśród których ciężko znaleźd rozwiązanie idealne. Mamy bowiem urządzenia działające na systemach Windows Mobile, Symbian, Linux, BREW, Android(Linux + wirtualna maszyna) oraz te wyposażone w system wbudowany, dla których ratunkiem jest wirtualna maszyna Javy. Dlaczego Windows Mobile? W tym tekście skupię się na procesie wytwarzania oprogramowania dla systemu Windows Mobile, który jest mi najbliższy, sam bowiem posiadam telefon z takim właśnie systemem. Pominąłem tutaj rozwiązanie bazujące na wykorzystaniu Javy, bo chod bardziej uniwersalne(przynajmniej z pozoru) jest moim zdaniem przeznaczone głównie dla niewymagających sporej wydajności aplikacji i małych gier. Za moim wyborem stoi także fakt, że w tym momencie mamy spory wybór telefonów działających na WM oraz stosunkowa łatwośd dostępu do potrzebnych narzędzi i materiałów pomocniczych(tutaj jest naprawdę dobrze). Głównym minusem jaki przeszkadza jest natomiast licencja Microsoftu na swoje narzędzia do pracy z tym systemem. Co prawda o ile nie ma problemu z hobbistycznym bądź edukacyjnym tworzeniem aplikacji, to ich sprzedawanie wiąże się niestety z zakupem profesjonalnej licencji. Jak to również bywa z komputerami tak i tu telefonom pracującym na tym systemie zdarza się zawiesid. Nie uważam jednak, że jest to zbyt duża wada. Egzemplarz, który posiadam, SPV E650 (HTC S710) z nie najszybszym przecież procesorem(201 MHz), radzi sobie całkiem nieźle a zawieszenia systemu zdarzają się średnio raz na miesiąc. Zdaję sobie sprawę z tego, że wybór jakiego tutaj dokonałem i do jakiego zachęcam może nie odpowiadad wielu osobom. Sam również podchodzę z dystansem do wszelkich rozwiązao wspieranych przez jedną korporację. Mimo to uważam, że warto poznad, a przynajmniej przyjrzed się bliżej temu systemowi i temu co oferuje, gdyż pisanie aplikacji dla niego przeznaczonych jest naprawdę przyjemnym i ciekawym procesem. O tym, że również łatwym, mam nadzieje uda mi się pokazad w dalszej części tekstu. 3
Urządzenia z Windows Mobile Jak wspomniałem wcześniej, w tym momencie na rynku istnieje całkiem niezły wybór urządzeo pracujących pod kontrolą systemu Microsoftu. Największym ich producentem jest firma HTC, której produkty można dostad w wielu punktach w Polsce. Jednak ciekawe modele możemy znaleźd także wśród telefonów i palmtopów firm HP, Sony Ericsson i Samsung. Jedynym problemem jest ich wysoka, jak na polskie warunki cena, która będzie oczywiście maled wraz z pojawianiem się nowszych modeli. Poniżej przedstawię modele jakie można dostad w naszym kraju (Te, które rzeczywiście udało mi się znaleźd w sklepie bądź salonie): HTC Większośd produktów HTC bez problemu można znaleźd na Ceneo oraz w punktach podanych na polskiej stronie HTC. Modele z dotykowym ekranem: 4
Modele z dotykowym ekranem i klawiaturą QWERTY: Modele bez dotykowego wyświetlacza: Samsung Samsung Omnia Samsung Blackberry HP HP oferuje linię produktów wyposażonych w Windows Mobile i opatrzonych nazwą IPaq. Wszystkie dostępne modele można znaleźd poprzez Ceneo. 5
Przygotowanie środowiska Kiedy mamy już telefon wyposażony w Windows Mobile, czas na przygotowanie środowiska, w którym tworzyd będziemy na niego aplikacje. Warto tutaj zaznaczyd, że do uruchomienia telefonu i aplikacji na nim zainstalowanych nie potrzebujemy karty SIM. Jedyne czego nie będziemy mied wtedy dostępnego to oczywiście funkcji dzwonienia (za wyjątkiem numeru alarmowego). Visual Studio 2005/2008 Najpierw należy ściągnąd i zainstalowad IDE, którym będzie jak można się domyśled Visual Studio w wersji 2005 bądź też w nowszej 2008. Minimalna wersja jaką musimy posiadad to Standard (Windows Mobile SDK nie współpracuje z wersjami Express). Wersja trial Visual Studio 2008 do ściągnięcia tutaj. Osobiście korzystam z wersji ściągniętej dzięki MSDNAA. Windows Mobile 6.1 SDK Będzie także potrzebne Windows Mobile SDK zawierające wszelkie wymagane biblioteki, narzędzia oraz emulatory. SDK pozwala tworzyd zarówno aplikacje w kodzie zarządzanym (przy pomocy języka zgodnego z.net czyli standardowo będzie to c# lub Visual Basic) oraz natywne pisane w C/C++ z wykorzystaniem WinAPI. Należy zauważyd, że trzeba tutaj dokonad wyboru czy będziemy chcieli pisad dla urządzeo z wyświetlaczem dotykowym posiadającym system w wersji Professional, czy też dla urządzeo ze 6
zwykłą klawiaturą bądź klawiaturą QWERTY i wersją Standard systemu operacyjnego. W miarę potrzeb możemy oczywiście zaopatrzyd się w obie wersje SDK. W katalogu z zainstalowanym SDK znajdziemy oprócz narzędzi i emulatorów, kilkanaście przykładów aplikacji zarówno dla rozwiązao zarządzanych jak i natywnych. Windows Mobile SDK Standard i Professional Active Sync, Windows Mobile Device Center Ostatnia rzecz jaka będzie potrzebna to program umożliwiający komunikację telefonu z komputerem. Jeśli pracujemy na systemie Windows XP należy ściągnąd Active Sync, w przypadku Windows Visty będzie to Windows Mobile Device Center. Bez tego będziemy w stanie oczywiście testowad nasze aplikacje, ale tylko na dołączonym emulatorze. Przykładowa aplikacja Zanim rozpoczniemy tworzenie przykładowej aplikacji, trzeba zwrócid uwagę, że mamy w tym momencie dwie możliwości. Pierwszą jest pisanie natywnych aplikacji w C/C++ z użyciem funkcji WinAPI, drugim natomiast to rozwiązanie zarządzane z wykorzystaniem.net Compact Framework (w chwili pisania w wersji 3.5) używając do tego C# bądź też Visual Basica. 7
C/C++ vs C#/Visual Basic Pierwsze rozwiązanie nadaje się głownie do wymagających aplikacji oraz gier, gdzie wydajnośd aplikacji ma o wiele większe znaczenie niż łatwośd jej tworzenia. Do całej reszty zastosowao lepszym wyborem będzie skorzystanie z łatwości i przejrzystości C# bądź Visual Basica oraz całego dobrodziejstwa platformy.net. Inną korzyścią jaką uzyskamy z tego wyboru jest olbrzymia przenośnośd. Jeśli korzystamy ze wspólnej części.net Framework i.net Compact Framework możemy z łatwością tworzyd aplikację dla komputerów klasy PC i w zasadzie bez większych przeróbek dla urządzeo mobilnych. Decydując się jednak na to musimy wyposażyd nasze urządzenie w odpowiednią wersję uruchomieniową.net Compact Framework Redistributable. Możemy się zaopatrzyd w nią ze strony z tej strony. Proces instalacji jest bajecznie prosty. Po podłączeniu telefonu do komputera, uruchamiamy instalator i postępujemy według instrukcji (pamiętając o zainstalowanym Active Sync bądź WMDC). Możliwe jest również połączenie obu tych rozwiązao i tworzenie newralgicznych części w językach natywnych, natomiast wszystko to co nie wymaga wielkiej wydajności, za pomocą języków zarządzanych. Jako, że rozwiązania natywne nadają się na osobny tekst, tutaj pokrótce postaram się pokazad jak proste jest tworzenie przykładowej aplikacji z użyciem.net Compact Framework. Czas zacząć Otwieramy zatem nasze Visual Studio i tworzymy nowy projekt dla urządzeo przenośnych. W tym przypadku korzystad będziemy z C# i Windows Mobile SDK Standard, jako że telefon właśnie z takim systemem posiadam. 8
Następnie wybieramy typ aplikacji, docelową platformę(po zainstalowaniu Windows Mobile 6 SDK powinniśmy ujrzed również taką właśnie opcję) oraz wersję środowiska.net. Potem oczom naszym powinien się pokazad następujący obraz (po wybraniu dokładnie takich opcji jak ja ma się rozumied;)). 9
Po bliższym przyjrzeniu się całej aplikacji łatwo dojśd do wniosku, że nie różni się ona zbyt wiele od standardowej aplikacji dla PC. W zasadzie poza różnicą w wyglądzie formatki (tutaj emulowanej w postaci widocznego telefonu) jest ona zupełnie identyczna. Zestaw kontrolek jest również bardzo bogaty i na pierwszy rzut oka widad, że jest tu niemal wszystko czego potrzeba w standardowych rozwiązaniach Hello World Jako, że nie jest to tutorial opisujący zagadnienie programistyczne, stworzymy jedynie prostą aplikację, która po wybraniu odpowiedniej opcji za pomocą klawisza funkcyjnego wyświetli tekst. Klikamy zatem na menu w emulatorze i nadajemy nazwę przyciskowi menu. Oprogramowujemy akcję naciśnięcia przycisku tak jak ma to miejsce w aplikacjach desktopowych (możemy wybrad akcje z właściwości, jednakże w tym wypadku nie jest to konieczne gdyż akcję domyślną możemy wybrad dwukrotnie klikając na utworzonym przycisku menu). Następnie programujemy prostą akcję zmiany tytułu formatki po wybraniu naszej opcji: private void menuitem1_click(object sender, EventArgs e) { this.text = "Hello World"; } 10
Voila! Pierwsza aplikacja gotowa. Możemy ją skompilowad i uruchomid na naszym urządzeniu. Do celów tego artykułu testy przeprowadzałem na emulatorze. Możliwe jest jednak bezpośrednie testowanie na urządzeniu przenośnym. Wygodniejsze i szybsze jest jednak moim zdaniem utworzenie prostego skryptu kopiującego wynik na pamięd telefonu i stamtąd uruchamianie aplikacji. To dopiero początek Jak więc widad Windows Mobile jest nie tylko użytecznym i wygodnym systemem z perspektywy użytkownika. To również bardzo wygodna i profesjonalna platforma programistyczna. Mam nadzieję, że udało mi się to pokazad. To dopiero początek na drodze do tworzenia bardziej profesjonalnych i co ważniejsze użytecznych aplikacji. O ile w rozwiązaniach natywnych na Windows Mobile czasem jesteśmy pozostawieni samym sobie to jeśli chodzi o częśd zarządzaną istnieje ogromne wsparcie społeczności jak i samego Microsoftu. Co dalej? Windows Mobile Center Windows Mobile 6 Documentation Windows Mobile Samples (C++ i C#) Video tutoriale dla WM 11