Aplikácie pre iOS (Apple mobilné zariadenia) a Android sú u nás bežne známe a na Slovensku nájdete mnoho vývojárov, ktorí sa venujú týmto platformám. Na trh si však pomaly preráža cestu systém Windows Phone, ktorý prekvapil v mnohých oblastiach, tvorbu aplikácií nevynímajúc.

Všetkých haterov a evanjelizátorov, ktorí sem prišli kázať o svätom iOS alebo Androide prosím, choďte preč, nečítajte ďalej tento článok, skrátka a jednoducho: heš!

Ak ste sa rozhodli skúsiť si vytvoriť svoju prvú vlastnú mobilnú aplikáciu, ste tu dobre. Smartfóny nosíme vo vrecku už nejaký ten piatok, no mnohí programátori mi dajú za pravdu, že sa pristihli v momente, keď im chýbala “malá funkcia”, ktorá by ich život s múdrym telefónom spravila znesiteľnejším, len cesta k jej vytvoreniu bola väčšia osina v zadku, ako tiché vzlyky nad neuspokojenou potrebou.

Preto by som vás rád hneď na začiatku povzbudil: nepatrím ku geniálnym programátorom, môj kód je často plný prasačín a nedokonalých algoritmov, z mnohých matematických oblastí mám škaredé vyrážky a použiteľnosť má u mňa vyššiu prioritu než základné biologické potreby. Navyše som študent zvažujúci každé investované euro. Napriek tomu všetkému som si cestu k týmto aplikáciam našiel a zamiloval si ich.

Povinné registračné tance

Ako to býva vo svete mobilných aplikácií zvykom, začiatočníci sa nezaobídu bez trochy byrokracie. Elektronickej, ale predsa. Vaše prvé kroky by preto mali smerovať na portál app hub, kde si zaregistrujete svoje existujúce (alebo vytvoríte nové) Live ID. Ročné členstvo je spoplatňované sumou 99 USD, avšak študenti s medzinárodným preukazom ISIC môžu využiť členstvo v programe DreamSpark, kde si overia platnosť preukazu a získajú tak služby zadarmo. Malou chybou krásy je fakt, že zatiaľ sú problémy s registráciami slovenských vývojárov – ja to momentálne s tichým súhlasom a mlčaním riešim zadanou lokalitou u našich západných susedov, dostal som však prísľub, že sa v tomto smere vyvíjajú všetky kroky, aby mohli Slováci hrdo publikovať svoju tvorbu v Marketplace :)

Nástroje na vývoj zadarmo

Popri registrácii si môžete nechať inštalovať Windows Phone SDK, ktorý zahČ ňa súčasti pre vývoj na tejto platforme no najmä poskytuje Visual Studio 2010 Express. V jednom balíku preto získate SDK, IDE, dokumentáciu a množstvo drobností, ako napríklad podklady pre implementáciu reklamy do aplikácie.

Pokiaľ vlastníte mobilný telefón so systémom Windows Phone, pripojte ho k počítaču a skontrolujte stav v Zune. Pomocou utility Windows Phone Developer Registration (na vašom disku dostupná po inštalácii SDK) si spárujete zariadenie s vašim účtom, čím sa váš mobil otvorí aj nepodpísaným aplikáciam určeným na testovanie. Samozrejme že pri tomto procese o záruku ani nič podobné neprichádzate. Ak mobil nemáte, netreba vešať hlavu, súčasťou SDK je aj emulátor. (Osobne však musím povedať, že keď prvýkrát držíte v ruke vašu vlastnú aplikáciu, je to pocit, ktorý sa emulovať nedá…)

Ȉo áno a čo nie

Predpokladám, že pokiaľ ste sa rozhodli programovať pre Windows Phone zariadenia, máte tušenie, čo by to mohlo byť. Ja som sa napríklad rozhodol splniť si sen aplikáciou, ktorá bude váženým priemerom určovať čo najpresnejší GPS bod, na ktorom sa nachádza zariadenie. Nemusí ísť preto o žiadnu veľkú aplikáciu a projekt, ktorý predáte za miliardu náhodnému okoloidúcemu Markovi Z. (aj keď vám v tom nič nebráni), postačí však jednoduchý nápad s vašim jednoduchým riešením.

V tomto bode sa však treba zastaviť a overiť si, či je možné dané činnosti s mobilom stvárať. Na stránke MSDN popisujúcej rozdiely Silverlightu pre počítače a mobily nájdete základný prehľad podporovaných a nepodporovaných aktivít. V tomto momente vám odpadli všetky nápady, ktoré využívajú napríklad prístup k SMS správam či bluetooth, nikde však nie je napísané, že sa neobjaví podpora v niektorom z nasledujúcich updatov systému.

Prvý kontakt s kódom

Vo Visual Studiu máte možnosť vybrať si medzi dvoma jazykmi pre tvorbu týchto aplikácií: Visual Basic alebo C#. Ja som chvíľu váhal, oba z nich som poznal približne rovnako – z videnia. Nikdy som v nich nevytvoril žiadny kód ani nič podobné, preto som dal na jednomyseľnú radu mojich followerov na Twitteri a rozhodol sa tvoriť aplikácie v C#.

Pôvodne som plánoval nájsť si nejakú elektronickú učebnicu alebo tutorialy na YouTube, no na samotných stránkach Microsoftu som objavil (pre mňa) zlato – ukážky kódov jednoduchých aplikácií, ktoré v malom ilustrujú situácie, do ktorých sa ako programátor zrejme dostanete. Pozrite si ich zoznam, môžete začať pokojne od prvej a všetko, čo potrebujete teraz urobiť je zničiť ich, rozobrať a vytvoriť nanovo. Možno zniem ako šialenec, ale táto metóda učenia sa mi pri C# ukázala ako maximálne efektívna, pretože keď som kód zničil na nepoznanie, vždy sa dalo začať odznova z predpripravenej ukážky. Skúsenosti s týmto jazykom som nemal žiadne, no nerobilo mi problém osvojiť si princípy z iných. Naozaj to nie je nič zložité.

Kde hľadať pomoc?

Samozrejme, odpovede na vaše otázky pri experimentovaní nemusíte vždy nájsť v tých pár ukážkach. No vždy sa mi podarilo nájsť odpoveď na jednej z týchto troch stránok:

  • MSDN dokumentácia priamo od Microsoftu, ktorá je ukážkou toho, ako má vyzerať pekne zdokumentovaný jazyk a všetko okolo
  • xda developers forum, miesto, kde nájdete skutočne plodné diskusie a riešenia (pravdepodobne aj vašich) problémov.. pred položením otázky vždy hľadajte v archíve, je dosť možné, že sa na to už niekto pýtal; pri registrácii si nezabudnite pozrieť video, je to zážitok :D
  • stackoverflow zrejme poznáte tiež, ak nie, tak rýchlo sa zoznámte, nachádza sa tam veľa užitočných kusov kódu a riešených situácií

Ak budete hľadať riešenie vášho problému prostredníctvom vyhľadávačov, sústreďte sa prioritne na kvalitnejšie zdroje z ktorých najsilnejšiu trojku máte vymenovanú vyššie, pretože sám som sa stretol so situáciou, keď ma riešenia na (diplomaticky povedané) menej vyspelé weby ma dokázali odkloniť na nesprávnu cestu riešenia problému, čo môže mať pri začiatočníkoch aj škaredé následky.

Nabudúce niečo o princípoch dizajnu aplikácií a “good practices”, ktoré si treba osvojiť už na začiatku. Samozrejme sa poteším vašej spätnej väzbe, ešte viac správe o tom, že už pracujete (alebo máte hotovú) svoju prvú aplikáciu a podobne. :) (Ak nemáte čo povedať a chcete poďakovať, tu dolu je Like button.)