Vývoj SW pro mobilní zařízení s ios Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie, 6.12.2012
Perspektiva 3 roky zkušeností s vývojem aplikací pro ios 1 rok vývoj pro Android desítky aplikací
Obsah vývojář vs. Apple návrh aplikace vývoj aplikace
ios uvedení v roce 2007 firmou Apple operační systém pro iphone, ipad a ipod nejpoužívanější mobilní platforma
Verze ios cca každý rok nová verze verze 6 vydána 24. září 2012 90% statistiky za listopad 2012 1.1% 8.8% 4.x 5.x 6.x
Vývojové prostředí vývojové prostředí XCode jazyk Objective-C vývoj převáženě na ios simulátoru nejlevnější Mac Mini pro vývoj 16 000,- Kč
XCode integrované vývojové prostředí návrh uživatelského rozhraní pomocí komponenty Interface Builder integrace s verzovacím systémem GIT slouží i pro vývoj pro Mac OS X zdarma
Objective C objektové rozšíření jazyka C jednodušší než C++ kompilovaný kód, rychlost C znalost programování v C je velkou výhodou nikde jinde se prakticky nepoužívá
AppStore registrační proces poplatek $99 ročně schvalovací proces cca 10 dnů (týká se i aktualizací) je možné vyrobit testovací verzi, kterou lze distribuovat mimo AppStore na omezený počet zařízení
Registrace získání DUNS number vyplnění formuláře na webu odfaxování výpisu z OR, včetně ověřeného překladu zvednutí telefonu zaplacení $99
Vydání aplikace Apple rozhoduje - přesto existují pravidla, rozumné aplikace nemají problémy Co vadí? jednoduché, drahé, konkurující Apple, hardwarově náročné, podobné existující aplikaci, nestabilní...
Vydání aplikace upload pomocí XCode schvalovací proces typicky 10 dnů týká se i aktualizací neomezený počet aplikací v rámci $99
Údaje pro AppStore jméno aplikace (může být jiné než pod ikonou) ikona 1024 x 1024 pixelů screenshoty popis aplikace (nejlépe česky i anglicky), klíčová slova pro vyhledávání (max. 100 bytů), email a web aplikace
Fáze vývoje stručné zadání návrh uživatelského rozhraní, design návrh datového rozhraní implementace, testování (několik týdnů) registrace, publikace (několik dnů)
Stručné zadání seznam obrazovek přechody mezi nimi rámcově obsah jednotlivých obrazovek typ zařízení (iphone, ipad) méně je někdy více
Design je velkou výhodou být uživatelem ios šikovný grafik nakreslí obrazovky v podobné kvalitě jako screenshoty je třeba navrhnout dostatečně velké prvky rozhraní východiskem je velikost obrazovky
Velikosti obrazovek je nutné respektovat velikost obrazovky iphone 3: 320 x 480 iphone 4: 640 x 960 iphone 5: 640 x 1136 ipad, ipad 2, ipad mini: 768 x 1024 new ipad: 1536 x 2048
Změna orientace je změna velikosti okna
Data správa dat formát přenosu dat způsob uložení dat
Správa dat mobilní internet je velmi nespolehlivý a velmi pomalý inkrementální aktualizace a komprese dat je velmi vhodná aplikace by měla umožnit offline režim
Formát přenášených dat prakticky vždy HTTP XML (SOAP, Property List) CSV JSON SQLite
XML mnoho redundantních informací nevhodné pro přenos binárních souborů náročné na zpracování
CSV jednoduchý a úsporný formát málo flexibilní rychlé parsování, vhodné pro velké množství dat
JSON široce podporovaný formát v mnoha případech nejlepší volba celkem úsporný zápis chybí podpora binárních dat
SQLite výhodné pro přenos binárních dat náročné na straně serveru trochu podivné řešení
Komprese dat gzip - komprimuje jeden soubor zip - komprimuje celou adresářovou strukturu někdy lze použít i kompresi zabudovanou do protokolu HTTP, záleží na serveru
Rychlost aktualizace download > zápis > parsování zpracování dat na pozadí je problematické aplikace neběží věčně, může být kdykoliv ukončena rychlost zápisu je desítky položek za vteřinu
Online aplikace Jsou-li data příliš velká, je nutno stahovat jen to co se má zrovna zobrazit a nic neukládat
Uložení dat pro malé kousky dat, například nastavení aplikace lze využít třídu NSUserDefaults jinak framework CoreData, který interně využívá SQLite lze použít i vlastní formát souboru, nebo případně přímo SQLite
Aplikace na pozadí aplikace může být kdykoliv ukončena nebo uspána na pozadí mohou běžet jen specializované aplikace (např. potřebují průběžně sledovat polohu zařízení) ostatní aplikace mají maximálně 10 minut po přepnutí na pozadí na dokončení operací vzdálené probuzení nebo spuštění aplikace bez asistence uživatele není možné
Push notifikace váš server může poslat telefonu zprávu (notifikaci), která obsahuje text je-li aplikace aktivní, bude ji zpráva doručena je-li aplikace neaktivní, bude zpráva zobrazena uživateli, který může buď spustit aplikaci, nebo zprávu jen zavřít
Závěrem ios je majoritní mobilní platforma 2x více uživatelů než Android v mnoha ohledech příjemnější uzavřenost je daň za pořádek
Kontakt Skymia s.r.o. Petr Hruška petr.hruska@skymia.cz