TOPlist

Vyvíjíme pro Windows Phone: Úvod a základní požadavky (1. díl)

Připravili jsme pro vás nový seriál o programování pro platformu Windows Phone. V prvním díle vás uvedeme do problematiky a ukážeme si, jak s vývojem začít.

Zaujal vás systém Windows Phone natolik, že jste si pro něj chtěli zkusit vytvořit nějakou hru nebo aplikaci? Nebo vás jen zajímalo podrobněji, jak tam jsou některé věci řešené? Tímto seriálem bych chtěl volně navázat na úvodní článek publikovaný zde na webu přibližně před rokem, kde jste se mohli v krátkosti seznámit s hlavními principy vývoje aplikací v Silverlightu.

- 

Pomocí této technologie se dají poměrně jednoduše vytvářet různé programy využívající dostupných možností operačního systému. Můžete si tak naprogramovat prakticky jakoukoliv aplikaci, od jednoduché čtečky zpráv, až po cokoliv složitějšího. Oproti Silverlightu tady ale existuje ještě jeden celý svět, který se od něho poměrně dost liší. Tím je herní vývoj. V následujících několika článcích bych se chtěl právě zaměřit především na to, jak se dají pro tyto telefony vytvářet dobře vypadající hry. Některé informace budou všeobecně použitelné na obě technologie, i když hlavní důraz bude brán právě na programování her.

-

Od motivačního úvodu se postupně dostaneme k tomu, jak bychom si takovou hru mohli vytvořit a jak bychom si ji měli navrhnout, aby dobře využívala všech možností platformy (dotykového ovládání, pohybového senzoru apod.). V krátkosti se také seznámíme s technologií XNA, ve které se tyto hry píší. Určitě se také dostaneme k nějakým doporučením a tipům a trikům, jak správně při vývoji postupovat. Seriál by měl být vhodný i pro začátečníky. 

O platformě Windows Phone 7

Windows Phone 7 (nebo také 7.5) je aktuálně hlavní a jediná podporovaná mobilní platforma Microsoftu pro běžné spotřebitele. Byla uvedena v únoru 2010 na konferenci MWC v Barceloně (reportáž), první zařízení se začala prodávat přesně před rokem. V průběhu času byly telefony s tímto systémem několikrát aktualizovány, postupně jim byly přidávány funkce, jako například podpora pro kopírování a vkládání textu. Poslední hlavní aktualizace, nazvaná Mango, se začala distribuovat 27. září 2011. Přidala do telefonů přes 500 nových funkcí, mimo jiné možnost rychlého přepínání aplikací, nebo mnoho nových možností pro programátory. Nyní už se mohou vytvářet i aplikace s přístupem k fotoaparátu, ke kalendáři a kontaktům; programy využívající síťovou komunikaci pomocí socketů, nebo ukládající data do lokální SQL databáze.

V Mango aktualizaci také přibyla plná podpora pro Českou republiku, vč. kompletní české lokalizace, možnosti nakupování aplikací pro české uživatele a možnosti nabízení a prodeje programů na oficiálním Marketplace pro české vývojáře. Microsoft také postupně začal rozšiřovat prodeje Windows Phone na další velké trhy, jako například do Číny, Indie nebo Japonska. Za zmínku určitě stojí také velké partnerství s Nokií, oznámené letos na jaře. To vše by postupně mohlo ještě zvýšit vlnu zájmu o tyhle telefony. Pořád platí, že aplikací nebo her zde ještě není tolik, a proto může být jednodušší se prosadit.

- - -

Ještě bych raději jednou pro jistotu připomenul, že tento systém nesmíme zaměňovat se staršími Windows Mobile (verze 6.5 a nižší), s těmi nemá prakticky nic společného. Bylo zde provedeno opravdu hodně změn, je zde jiné grafické rozhraní přinášející nový způsob ovládání (takzvané Metro), také se pro tyto zařízení programuje jiným způsobem. Není už povolen nativní vývoj v jazyce C++, není kompletně přístupný ani .NET Compact Framework. Aplikace se nyní vytváří pouze pomocí Silverlightu, hry s využitím XNA Frameworku. K technickým záležitostem se ještě podrobněji vrátíme v dalších dílech (např. jak lze tyto technologie propojit dohromady a využít obě najednou). 

App Hub: Rozcestník pro vývojáře

Hlavním rozcestníkem pro vývojáře je portál App Hub na stránkách create.msdn.com. Informace jsou zde sice v angličtině, ale dají se odtud stáhnout například různé starter kity (vzorová řešení, jak co naprogramovat) nebo různé tutoriály, je zde i poměrně aktivní diskuzní fórum. Podobný rozcestník odkazů existuje i v češtině, na stránkách MSDN blogu. Další informace můžete získat například i na našem diskuzním fóru, v sekci Programování a vývoj. Je tam už poměrně aktivní vývojářská komunita, určitě se tam najde mnoho ochotných lidí, kteří vám s případným dotazem pomůžou. Za zmínku stojí také podkategorie Prezentace projektů, ve které můžete podiskutovat nad vznikajícími projekty, případně se také pochlubit svojí novou aplikací ve vývoji. Pokud bydlíte v blízkosti Prahy, můžete se také koncem listopadu vypravit na tradiční víkendovou konferenci MS Fest, tento rok zde bude jedním z hlavních témat právě vývoj pro Windows Phone.

   -

Z oficiálních stránek App Hub si můžete stáhnout kompletní vývojové nástroje. Ty jsou k dispozici zdarma, i pro komerční vývoj. Obsahují Visual Studio verze Express, potřebné knihovny a emulátor telefonu. Jako bonus dostanete i grafický program Expression Blend, který ale při vývoji her stejně asi moc využívat nebudete. Jen tak pro informaci ohledně značení, Mango aktualizace je označována jako Windows Phone 7.5, odpovídající potřebné vývojové nástroje jsou ale 7.1.

Požadavky na vývoj, registrace vývojářského účtu

Stojí za to si také zkontrolovat požadavky na počítač, jako operační systém jsou potřeba alespoň Visty. Pro správný běh emulátoru je potřeba grafická karta s podporou alespoň DirectX 10, z vlastní zkušenosti bych také doporučil nejméně 4 GB RAM. Podrobné požadavky najdete v tomto seznamu. Pro dosažení optimálního výkonu je také dobré si zapnout hardwarovou virtualizaci v BIOSu, podle tohoto návodu (opět dohledatelné na MSDN library). Emulátor nefunguje jako skutečná emulace instrukcí procesoru ARM jako na mobilu, ale kód aplikace se „just in time“ kompiluje z IL (.NET mezijazyka) do instrukcí x86. Technické záležitosti v tomhle případě řešit nemusíte, měli byste jen pamatovat na to, že na počítači bude mít většinou hra větší snímkovací frekvenci, zatímco na mobilu by se mohla sekat. Emulace není úplně dokonalá, vždy je lepší si aplikaci alespoň na konci vývoje otestovat i na reálném zařízení (zvlášť tohle platí u her). Jinak, pokud náhodou máte na počítači dotykový displej s podporou multitouch, můžete si do emulátoru přenášet i multidotyková gesta. Pokud vám bude spouštění emulátoru zlobit, můžete si zkusit ještě zaktualizovat ovladače na grafickou kartu, případně pokud máte Windows Vista, tak nainstalovat doplňující balíček Platform Update.

-

Abyste si mohli aplikace nebo hry testovat na reálném zařízení, nebo pokud byste je potom chtěli umisťovat do Marketplace, musíte si na App Hubu založit účet. Pro běžného člověka je to 99 dolarů na rok, studenti to mají zdarma (díky registraci na DreamSparku, ověřuje se vůči platné ISIC kartě nebo podle mailové adresy školy). Za další umístění aplikací, jejich update apod. se už ale neplatí. Ihned po registraci si už můžete odemknout svoje zařízení pro vývoj, pomocí položky Windows Phone Developer Registration v nabídce Start. Každý člověk si takto může odemknout až tři zařízení. Naštěstí už není potřeba zasílat ofocenou občanku společnosti GeoTrust a provádět další zdlouhavá ověření, alespoň v této první části registrace. K problematice prodejů na Marketplace se ještě vrátíme, zatím si můžete například projít tento článek vydaný na českém vývojářském blogu.

- 

Vývojářské nástroje samozřejmě fungují i na vyšších edicích Visual Studia, pokud jste studenti, můžete si z DreamSparku stáhnout plnou verzi Visual Studia Professional. Pokud máte na škole dostupný program MSDNAA, měli byste mít možná k dispozici dokonce verzi Ultimate. Žádné pokročilejší věci z těchto nástrojů ale potřebovat nejspíš nebudeme, měli bychom si vystačit se základní Express edicí.

-

Příště si podrobněji projdeme další vlastnosti této platformy a postupně se pustíme do vývoje jednoduché hry, na které si to vše ukážeme v praxi. Pokud už máte nějaké dotazy, můžete je napsat sem pod článek, nebo vložit na naše diskuzní fórum

O autorovi článku

Studuji Matematicko-fyzikální fakultu UK v Praze, věnuji se platformě .NET a programování v C#. Tvořil jsem pro Windows Mobile, nyní se věnuji především platformě Windows Phone 7. Zajímám se o návrh her a další multimediální tvorbu, dokončuji vývoj herního 3D engine postaveného nad XNA. Ve volném čase si najdu rád chvilku na in-line brusle, nebo na hraní na klávesy. Na škole působím jako Microsoft Student Partner.

Autor článku Tomáš Slavíček
Tomáš Slavíček

Kapitoly článku