16 stycznia 2008

Przymiarki do programowania na palmtopy z Windows Mobile

Jakiś czas temu wszedłem w posiadanie ekscytującej, ale jak się okazuje umiarkowanie praktycznej zabawki – palmtopa z Windows Mobile 6 a dokładniej E-TEN Glofiish X500+. Naturalnie, spowodowało to, że zacząłem się interesować programowaniem tego typu zabawek. Zacząłem od rozpoznania branży, czyli systematyki. Owocem tych działań jest artykuł "Terminologia ze świata urządzeń mobilnych". Teraz przyszła kolej na następny krok, czyli rozpoznanie możliwości i dostępnych opcji programowania. Oczywiście, pierwsze wysiłki koncentrowały się na platformie Java ME (J2ME). Szybko okazało się jednak, że na moim urządzeniu nie ma środowiska uruchomieniowego Javy i trzeba było uruchomić Google. Niestety wyniki poszukiwania nie były zachęcające. Wygląda na to, że Java ME dla Windows Mobile nie jest opcją łatwo dostępną. Równolegle ze studiami nad platformą Java ME prowadziłem rozpoznanie możliwości funkcjonalnych mojego Glofiish’a a właściwie systemu Windows Mobile 6. Tutaj przyszło kolejne rozczarowanie – dostępne aplikacje są dosyć prymitywne. Rozumiem, że Office Mobile nie koniecznie musi posiadać zaawansowaną funkcjonalność znaną z tego typu aplikacji dla PC, ale spodziewałbym się, że chociaż aplikacja budzika sprosta moim oczekiwaniom. Tymczasem okazuje się, że nie jest ona nawet w stanie odtworzyć pliku .mp3 jako dźwięku dzwonka. Odtwarza tylko pliki .wav i to takie kodowane w najpodlejszej jakości. Żeby było śmieszniej, jako dźwięk dla połączenia przychodzącego jak najbardziej nadaje się plik .mp3. A propos – jako dzwonek dla połączenia przychodzącego mogę wybierać tylko z pośród plików umieszczonych w konkretnym katalogu. Jest więc specjalna aplikacja, która służy do "importowania" plików muzycznych, aby mogły być one użyte jako dzwonek połączenia a jedyne, co ona robi to właśnie kopiowanie importowanego pliku do właściwego katalogu. Na tym kończę krytykę i przechodzę do konkluzji. Jako że standardowa aplikacja budzika jest bardzo słaba – a jest to aplikacja bardzo dla mnie ważna – postanowiłem zmierzyć się z zadaniem implementacji takiej właśnie aplikacji. Środowisko wokół platformy Java ME nie napawa optymizmem, postanowiłem więc odłożyć na bok uprzedzenia i zbadać możliwości programowania z użyciem platformy .NET. W końcu .NET wspiera także język Java, tyle że nazywa go J#. Pierwsze kroki w świecie .NET przyniosły pierwsze rozczarowania – okazało się, że język J# nie jest wspierany na platformie Windows Mobile, a co gorsze, aby zaimplementować aplikację budzika trzeba i tak programować w C++. Czemu musi być C++? Głównie dlatego, że chcę aby aplikację dało się uruchomić jednym kliknięciem/dotknięciem z ekranu głównego systemu, a to oznacza że musi to być swego rodzaju wtyczka (ang. plugin) w formie biblioteki .dll. Poza tym, potrzebny będzie dostęp do funkcji systemowych Win32. Póki co nie będzie więc ani Javy ani .NET (i dobrze) tylko koszmarek C++. Znalazłem już nawet niezłą książkę na ten temat, czyli "Programming Microsoft Windows CE, Second Edition" autorstwa Douglas’a Boling’a ale programowanie pod Windows i to w C++ jakoś mnie odraża więc nie wiem co z tego wyjdzie. Zobaczymy.

2 komentarze:

Łukasz Lenart pisze...

Dziwne, ja swego czasu pisałem z użyciem C# całkiem poważne aplikacje na WM5 i nie miałem potrzeby używania C++. Na stronach producenta było dostępne SDK do .NET (do Javy też), w celu obsługi specyficznych funkcji urządzenia (skaner kodów kreskowych, RFID, etc.).
Obecnie najlepiej pisze się w .NET na platformę Windows Mobile ale taka jest specyfika monopolu, że wspiera tylko swoje rozwiązania ;-)

Mariusz Lipiński pisze...

"Na stronach producenta było dostępne SDK do .NET" - no właśnie, ale nie ma SDK do .NET dla funkcji systemowych Win32 - no przynajmniej tak wyczytałem w MSDN.