Přejít k navigační liště

Zdroják » Mobilní vývoj » Úvod do platformy Windows Phone 7

Úvod do platformy Windows Phone 7

Články Mobilní vývoj

Mobilný operačný systém Windows Phone 7 začína byť po problémoch Blackberry označovaný za tretiu mobilnú platformu, aj keď jeho trhový podiel sa odhaduje len na niečo cez 2 %. Čo tento mobilný operačný systém od Microsoftu ponúka?

Od Windows Mobile k Windows Phone 7

Microsoft je na trhu mobilných operačných systémov už dlhý čas so svojím systémom Windows Mobile uvedeným v roku 2000. Tento systém nebol nikdy primárne určený pre bežných používateľov a jeho zameranie na enterprise sféru bolo vždy vidno. V poslednej verzii 6.5 z roku 2010 sa síce Microsoft snažil priblížiť tento mobilný operačný systém aj bežným koncovým používateľom, avšak bez väčšieho úspechu. V Microsofte pochopili, že takto to ďalej nepôjde a prišli s novým operačným systémom nazvaným Windows Phone 7.

Windows Phone 7 je nový mobilný operačný systém od Microsoftu, na rozdiel od Windows Mobile mierený na bežných používateľov uvedený na trh na jeseň 2010. Windows Phone 7 beží rovnako ako Windows Mobile na jadre Windows CE. Jeho hlavnými charakteristikami sú Metro UI, nové mobilné zariadenia a Windows Phone Marketplace.

Metro UI

Metro UI je nový dizajnový jazyk od Microsoftu. Ako už názov napovedá, je inšpirovaný informačnými ceduľami zo staníc metra a letiskových terminálov. Zakladá si na prehľadnosti, jednoduchosti a typografii. Najdôležitejší prvok tohto dizajnového jazyka je typografia doplnená o jednoduché farby a štvorcové rohy. Ikonky a celkovo obrázky slúžia len na doplnenie textu a nehrajú hlavnú úlohu ako na iných platformách. Slúžia prevažne na uľahčenie navigácie používateľa.

Windows Phone 7 zariadenia

V prístupe k zariadeniam zvolil Microsoft v podstate strednú cestu medzi prístupmi Apple a Google. Neexistuje jediný výhradný výrobca, ktorý by Windows Phone 7 zariadenia vyrábal, ale zároveň ich nemôže vyrábať úplne ktokoľvek. Všetky zariadenia musia spĺňať nasledujúce minimálne požiadavky, aby bol zabezpečený dobrý používateľský zážitok:

Multi-touch displej s uhlopriečkou 3.6“, rozlíšením 480×800 schopný rozpoznať 4 súčasné dotyky

  • 1 GHz CPU
  • 512 MB RAM
  • 8 GB diskového priestoru
  • WiFi, akcelerometer, fotoaparát…
  • 3 hardvérové tlačidlá (back, start, search)

V súčasnosti sa dostávajú na trh aj tzv. low-end zariadenia (napríklad Nokia Lumia 610), pri ktorých sú tieto požiadavky nižšie, a to 800 Mhz CPU, 256 MB RAM a 4 GB diskového priestoru.

Windows Phone Marketplace

Spolu s Windows Phone 7 Microsoft uviedol aj Windows Phone Marketplace ako jediný spôsob získavania aplikácií na tejto platforme. Používatelia tak majú jednoduchý a rýchly spôsob sťahovania a nakupovania aplikácií ako na ostatných platformách.

Pre vývojárov znamená Windows Phone Marketplace nutnosť registrácie a zaplatenia poplatku $99 na rok. Študenti žiadne poplatky neplatia. Na jeden vývojársky účet je možné publikovať neobmedzené množstvo platených aplikácií a odomknúť 3 zariadenia. S bezplatnými aplikáciami je to trochu komplikovanejšie, každý vývojár ma na rok 100 tokenov.  Každý submit bezplatnej aplikácie stojí 1 token, a to vrátane aktualizácií danej aplikácie. Predajom aplikácie vývojár získava 70% z jej ceny.

Windows Phone Marketplace umožňuje aplikáciám implementovať trial mód. Ako ho aplikácia implementuje je čisto na autorovi, ktorý má prostredníctvom API informáciu o tom, či je aplikácia zakúpená alebo beží v trial móde. Zaujímavosťou je tzv. private beta program. V private beta je možné submitnúť aplikáciu a určiť až 100 testerov (zadaním  ich Live ID). Títo testeri získajú prístup k aplikácií priamo cez Marketplace v telefóne a môžu ju testovať a hodnotiť.  Nikto okrem nich však aplikáciu neuvidí a nezíska k nej prístup.

Základné UI prvky

Dominantnými UI prvkami platformy Windows Phone 7 sú pivot, panorama a live tiles. Práve live tiles sú tým, čím sa Windows Phone 7 najviac odlišuje od iných mobilných platform. Live tiles sú ikony aplikácií na hlavne obrazovke, ktoré sú interaktívne. Každá live tile má dve strany; prednú a zadnú, ktoré môžu obsahovať obrázok, text a číslo. Emailová aplikácia môže pomocou live tile ukazovať počet neprečítaných emailov alebo vďaka live tile aplikácie s počasím vidíte aktuálnu teplotu priamo na hlavnej obrazovke bez toho, aby ste museli aplikáciu spúšťať.  Live tiles môžu byť updatované priamo z aplikácie, push notifikáciou alebo pomocou periodického agenta.

Push notifikácie

Windows Phone 7 podporuje tri druhy push notifikácií, a to toast, tile a raw. Toast notifikácia zobrazí upozornenie na vrchu obrazovky s definovaným názvom a textom obmedzenej dĺžky. Po kliknutí na toto upozornenie je používateľ presmerovaný do aplikácie (voliteľne s parametrom). Ak aplikácia beží, upozornenie sa nezobrazí, ale je možné push notifikáciu reagovať v kóde. Tile notifikácia slúži na update obsahu live tile, je  v nej možné predefinovať všetky jej vizuálne vlastnosti. Raw notifikácia umožňuje poslať aplikácii ľubovoľné dáta. Podmienkou je spustená aplikácia, inak je celá push notifikácia zahodená.

Princíp fungovnia push notifikácií je celkom jednoduchý. Základom je služba Microsoft Push Notificiation Service (MPNS). Zariadenie sa najprv zaregistruje u MPNS a dostane identifikátor komunikačného kanálu (ChannerlUri). Tento identifikátor následne poskytne vášmu serveru, z ktorého budete push notifikácie posielať. Ak chce následne váš server odoslať notifikáciu na zariadenie, odošle ju na MPNS so získaným identifikátorom a MPNS sa postará o doručenie push notifikácie na zariadenie.

Periodické agenty

Windows Phone 7 nepodporuje klasický multitasking, umožňuje však beh kódu na pozadí za špeciálnych podmienok v rámci tzv. periodických agentov. Základný periodic agent je spúšťaný každých približne 30 minút, resource intensive agent je spúšťaný iba ak je zariadenie pripojené na napájanie a WiFi a môže spotrebovať viac pamäti a bežať dlhšie. Ani jeden z týchto periodických agentov však nie je dostupný na tzv. low-end zariadeniach, tam je dostupný len audio agent, ktorý umožňuje prehrávanie audia aj keď aplikácia práve nebeží.

Launchers a choosers

Všetky Windows Phone 7 aplikácie bežia v sanboxe a majú obmedzené možnosti interakcie so systémom a inými aplikáciami. Jediným spôsobom, ako sa zo sandboxu aplikácie dostať je použitie predpripravených komponent označovaných ako launchers a choosers. Rozdiel medzi launcherom a chooserom je v tom, že launcher po spustení neposkytuje žiadnu odpoveď. Launcher je možné použiť napríklad na otvorenie prehliadača s nejakou URL (neočakáva sa žiadna odpoveď) a chooser napríklad na výber kontaktu z adresára.

Životný cyklus aplikácie

Ako už bolo spomínané, Windows Phone 7 nepodporuje klasický multitasking, podporuje však tzv. fast app switching. Ak používateľ spustí aplikáciu, aplikácia sa dostane do stavu running, je teda umiestnená v pamäti a beží. Ak sa používateľ prepne do inej aplikácie alebo na hlavnú obrazovku, aplikácia je zo stavu running presunutá do stavu dormant. Ostáva v pamäti ale všetky jej vlákna sa zastavia, nebeží. Ak sa používateľ prepne späť do aplikácie, ktorá je v stave dormant, jej vlákna sú znovu rozbehnuté a aplikácia pokračuje v behu tam, kde skončila. 

Ak systému začnú dochádzať prostriedky (je spustené veľké množstvo aplikácií), môže presunúť aplikáciu zo stavu dormant do stavu tombstoned. Stavové informácie aplikácie sú uložené a aplikácie je odstránená z pamäte. Ak sa používateľ prepne naspäť do aplikácie, ktorá je v stave tombstoned, tá je znovu spustená s použitím uložených stavových informácií. Je na programátorovi, aby obnovil dáta do stavu, v ktorom bola aplikácie pred jej opustením používateľom.

Vývojové nástroje

Vývoj pre Windows Phone 7 prebieha na platforme .NET a je možné programovať v jazykoch C# a Visual Basic. Vývoje je možné rozdeliť na dve vetvi, a to vývoj klasických aplikácií v upravenej verzii Silverlightu a vývoj hier v XNA. Oba tieto prístupy je možné kombinovať a vytvoriť tak napríklad hru so Silverlight menu. Výhodou XNA je väčší prístup k hardvéru a vyšší výkon pri vykresľovaní grafiky, preto sa hodí práve na hry.

Čo sa týka vývojových nástrojov, na programovanie sa používa Visual Studio 2010, ktoré existuje aj v bezplatnej verzii Express for Windows Phone. Bezplatnú verziu je možné plnohodnotne používať na vývoj Windows Phone 7 aplikácií, a to aj na komerčné účely. Visual Studio obsahuje vizuálny dizajnér, na návrh UI sa však viac hodí Expression Blend 4, ktorý má tiež bezplatnú Express verziu s rovnakými podmienkami ako Visual Studio.

Keďže celé UI je vytváraná v XAML (XML jazyk na zápis UI), je možné, aby ho vytvoril dizajnér v Expression Blende a funkcionalitu v podobe kódu doplnil programátor vo Visual Studiu. Ďalšou prednosťou platformy Windows Phone 7 je rýchly vývoj aplikácií, daný hlavne Metro UI a spomínanými kvalitnými vývojovými nástrojmi.

Ďalšie informácie

Komentáře

Subscribe
Upozornit na
guest
10 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
mekele

Docetl jsem az do konce a zjistil ze mi mezicasem z toho narostly „štvorcové rohy“. Tak ted nevim.

blizz

ma zmysel venovat sa vyvoju pre WP7 v SL ked je dnes uz jasne ze MS tuto platformu pochova a nahradi, WP8 ktore bude zalozene na uplne inych technologiach (WinRT etc) ?

Aleš Roubíček

On WinRT model do značné míry ze SL modelu vychází a není zas tak moc odlišný. Ale smysl to stejně nemá. :)

igorkulman

Úprimne .. začať sa s tým už neoplatí. Najmä po informáciach, ktoré zazneli pri predstavení Windows Phone 8 (SDK by malo byť v lete).

marek

tak aký zmysel má o tom niečo písať a čítať … tak načo to tu vyšlo?

igorkulman

Článok bol napísaný skôr, ako bol predstavený Windows Phone 8.

mp

ako vyplati sa urcite, lebo s prichodom WP8, ktory bude zas isto drahy ako iphone a ludia ho kupovat nebudu, klesnu ceny zariadeni s WP7 a na trhu ich bude isto viac ako osmieciek. To ako by ste povedali ze sa neoplati vyvyjat na android 2.3, lebo nedostane update na 4. :), ide o to, ze ktory system ma vacsi podiel na trhu.

Honza77

WP je možná pouze technicky pěkná platforma, ale abych si koupil zařízení, kam nemohu dostat bez poplatků aplikaci, kterou si udělám nebo kterou udělá někdo jiný a uvolní ji zdarma (opensource, freeware, ale…), mi přijde padlé na hlavu. Nebudu podporovat firmu, která chce „provize“ z něčeho, co někdo nabízí zdarma).

Co si o tom myslíte?

Necroman

Minimalne pokud jsi student, tak mas dev ucet zdarma.
Jinak $99 za rok neni zadna palka, ja uz appky vyvijim skoro rok a ten poplatek se mi uz mnohonasobne vratil at uz ve zkusenostech, kontaktech, naturaliich a v posledni dobe i cash :)

A otazka, zda ma cenu se jeste ucit vyvoj pro WP7 – sice nove WP8 telefony budou zpetne kompatibilni a uz ted je na trhu par desitek milionu uzivatelu WP7, potencialnich kupujicich, moc to cenu uz podle me nema. Ted se spise vyplati ucit se programovat pro Windows 8 – WinRT a doufat, ze pro WP8 to bude hodne podobne, urcite vice, nez je Silverlight/XNA.

čibes

Zdravím, mírně jsem se zasekl na školním projektu. V kostce to má být appka pro Windows Phone 7.8. Ta po přečtení QR kódu použije hodnotu v QR kódu uloženou pro předem předdefinovaný SQL dotaz. Ta hodnota bude figurovat v klauzuli WHERE. Dotaz bude na vzdálenou databázi. To vše by mělo být řešeno formou WCF služby.
Jde mi spíš o obecný názor těch, kdo mají zkušenost s podobným problémem. Hlavně řeším, jak výsledek dekódování použít do onoho dotazu. Kód uvedený níže je ta část, která „uchopí“ výsledek dekódování a já právě řeším, jak jej použít pro dotaz. Za případné nápady či odkázání na nějaký zdroj předem díky

///
/// When a decode was successful we get a result back
///
/// Result of the decoding
protected virtual void OnDecodingCompleted(Result result)
{
if (DecodingCompleted != null)
DecodingCompleted(this, result);
}

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.

Pocta C64

Za prvopočátek své programátorské kariéry vděčím počítači Commodore 64. Tehdy jsem genialitu návrhu nemohl docenit. Dnes dokážu lehce nahlédnout pod pokličku. Chtěl bych se o to s vámi podělit a vzdát mu hold.