Programování PocketPC naruby (1/12)

Patříte mezi uživatele PocketPC, kteří by si rádi také něco naprogramovali, řadíte se však k tzv. falešným začátečníkům? Pak právě vám je určen náš nový seriál věnovaný programování pro kapesní počítače s Windows Mobile.
Přinášíme vám nový seriál o programování na PPC. Netradičně začínáme od konce, protože návrh výsledné aplikace je velmi důležitou součástí programování.

Úvod

Většina článků o programování operačního systému Microsoft Windows (včetně Windows CE) začíná od začátku. Popíše strukturu funkce WinMain, funkci hlavního okna aplikace a uvede několik jednoduchých příkladů. Tato logická stavba, která postupuje od primitivních prvků až ke komplikovaným aplikacím má jednu drobnou nevýhodu. Chce-li podle ní začátečník vytvořit netriviální aplikaci tak často zjistí, že sice umí naprogramovat volání dialogu a vykreslení okna (a spoustu jiných věcí), ale má obtíže je propojit dohromady a vytvořit složitější celek.

Tato minisérie je určena pro falešné začátečníky: programátory, kteří si přečetli alespoň jednu publikaci o programování Microsoft Windows, zkusili napsat jednu vlastní aplikaci pro stolní počítač, ale ještě se neodvážili začít psát aplikace pro počítače kapesní. Aby své čtenáře donutila přemýšlet, začíná od konce. Nejprve se čtenář dozví jak aplikaci navrhnout, a postupně se bude propadat k jednotlivým detailům jejího naprogramování. Dokonce zachází tak daleko, že nejprve popíše vytvoření aplikace na stolním počítači a pak se bude věnovat jednotlivým úpravám zdrojového textu pro přenos aplikace na počítač kapesní.

Na internetu je mnoho dobrých programátorů, kterých si vážím. Téměř všichni jsou lepší než já a někteří z nich jsou dokonce i Češi. Proto vás všechny zkušenější prosím, abyste - pokud narazíte na nepřesnosti nebo chyby - byli ve svých komentářích konstruktivní.

Obsah

  • Úvod
  • Obsah
  • Zařízení, verze a procesory
  • Návrh programu
    • Hlavní okno aplikace
    • Dialogy
    • Spuštění aplikace
    • Ukončení aplikace
    • Uložení dat
    • Sdílení dat se stolním počítačem
  • Jednoduchá aplikace
    • Uložení dat
    • Nastavení
    • Hlavní okno
    • Uživatelské rozhraní
    • Složíme vše dohromady
  • ... a její Pocket PC verze
    • Instalace prostředí
    • Nový projekt
    • Prostředky a pomocné objekty
    • První spuštění a co bylo špatně
    • Hlavní okno aplikace
    • Ovládání SIP (Software Input Panel)
    • Doplnění uživatelského rozhraní
    • Dialog nastavení
    • Kontextová nabídka
    • Synchronizace dat
    • Zase vše propojíme
  • Závěr
  • Generátor aplikací pro Pocket PC

Minisérie je rozdělena na dvanáct dílů; bude vycházet jednou týdně a ukončena bude mimořádným dílem, jehož přílohou bude automatický generátor aplikací pro Pocket PC. Pokud se během uvádění série objeví zajímavé dotazy a připomínky, budu na ně reagovat formou mimořádného dílu.

Zařízení, verze a procesory

Začínající programátory pro Pocket PC může odradit nutnost distribuovat své programy pro různé verze operačních systémů Windows CE a různé procesory. V následujících tabulkách si ujasníme terminologii, kterou Microsoft používá a jednotlivé verze hardware a software. Uvidíte, že vývoj jde správným směrem a že vše není tak složité, jak se zdá.

Typ zařízení Obrázek
Handheld PC
Palm-sized PC, později
Pocket PC
Smartphone

Prvním pokusem firmy Microsoft dobýt mobilní svět byla zařízení "Handheld PC", vybavená operačním systémem Windows CE (od verze 1.0), dotykovým displejem cca 640 x 200 obrazových bodů a klávesnicí. Později začaly tvořit maximum produkce přístroje "Pocket PC", které mají dotykový displej 240 x 320 obrazových bodů a chybí jim hardwarová klávesnice. Nejnovějším přírůstkem do rodiny jsou inteligentní telefony (Smartphony).

Každé z těchto zařízení má jiné možnosti, jiné vstupní metody, odlišnou velikost displeje. Všechna však podporují operační systém Windows CE; podrobnosti o verzích jsou v následující tabulce:

Jméno Interní jméno Rok vydání Verze Windows CE Hlavní programátorský nástroj
 Handheld PC 1.0 Pegasus 1996 1.0 Už není podporováno
 Handheld PC 2.0 Mercury 1997 2.0 Visual C++ 5.0 nebo 6.0
 Palm size PC 2.0 Gryphon 1998 2.01 Visual C++ 5.0 nebo 6.0
 Handheld PC Professional Jupiter 1998 2.11 Visual C++ 5.0 nebo 6.0
 Palm size PC 2.11 Wywern 1999 2.11 Visual C++ 5.0 nebo 6.0
 Pocket PC (2000) Rapier 2000 3.0  
 Handheld PC 2000 Galileo 2000 3.0 Visual C++ 5.0 nebo 6.0
 Pocket PC 2002
Pocket PC 2002 Phone Edition
Merlin 2002 3.0 Embedded Visual C++ 3.0
 Smartphone 2002 Stinger 2002 3.0 Embedded Visual C++ 3.0
 Windows Mobile 2003 (.NET) Ozone 2003 4.2 Embedded Visual C++ 4.0
 Smartphone 2003 (.NET) Ozone 2003 4.2 Embedded Visual C++ 4.0
 Windows Mobile 2003 Second Edition
(.NET)
Ozone 2003 4.2 Embedded Visual C++ 4.0

Operační systém Windows CE se vyvíjel od roku 1997 dodnes. Současné Windows CE mají číslo verze 4.2 a pro vývojáře je na webových stránkách společnosti Microsoft ke stažení i verze s číslem 5.0. Ačkoliv Microsoft podporuje řadu procesorů (prostředí Embedded Visual C++ 4.0 obsahuje cca 8 překladačů), zařízení Pocket PC se čím dále více přiklánějí k procesorům StrongARM a XSCALE (zpětně kompatibilní s procesorem StrongARM). Seznam procesorů v Pocket PC zařízeních a verzí Windows CE, ve kterých se vyskytují je v následující tabulce:

Procesor Výrobce Windows CE 1.0 2.0 2.11 3.0 4.2
SH3, SH4 Hitachi x x x    
MIPS NEC   x x    
StrongARM Intel     x x x
XSCALE Intel       x x

Nás nyní bude zajímat pouze vývoj pro zařízení Pocket PC s operačním systémem Windows CE 3.0 (Pocket PC 2002) nebo Windows CE 4.2 (Pocket PC 2003 .NET). Oba dva typy zařízení obsahují vzájemně kompatibilní procesory Intel StrongARM a Intel XSCALE. Proto si jako příslušné vývojové prostředí zvolíme Microsoft Embedded Visual C++ 3.0. Naše výsledná aplikace by měla být bez obtíží spustitelná na většině Pocket PC vyrobených po roce 2002.

Příští díl vám pomůže ujasnit si různé součásti návrhu aplikace, se kterými musíte počítat již od začátku.