Zjednodušte si vývoj aplikací pro smartphony (1.)

14. 7. 2011

Sdílet

 Autor:
Nezáleží na tom, proč firma potřebuje vyvíjet mobilní aplikace. Problémem je naopak to, že jde stále o dost obtížný proces.

Firma chce dostat svůj software do rukou stovek milionů uživatelů smartphonů po celém světě. Nebo její šéf začal klást velký důraz na mobilitu - možná se obává, že mohou být zvěsti o brzkém konci éry klasických počítačů pravdivé. Proprietární nekompatibilní programovací systémy a přílišná kontrola nad obchodováním s mobilními aplikacemi však mohou způsobit příliš vysokou náročnost vývoje těchto programů – je tedy čas vyzkoušet následující alternativy orientované na jazyk HTML.

Vývoj pro současné mobilní platformy
Platforma iPhone a iPad od společnosti Apple vyžaduje psaní kódu v jazyce Objective-C a ten je poměrně málo známý. Navíc jakmile vývojář dokončí kódování, existuje nesporné riziko, že mu z nějakého neznámého důvodu pracovníci Applu přibouchnou dveře do App Storu přímo před nosem.

Smartphony postavené na operačním systému Android využívají mnohem populárnější jazyk Java a obchod s aplikacemi není regulovaný, ale jsou, co se týče popularity koncových uživatelů, až na druhém místě, minimálně v celosvětovém měřítku tržního podílu.

Telefony BlackBerry také využívají jazyk Java, ale pracují se zcela jiným rozhraním Java API, takže pro ně bude potřeba nový kód. Společnost Microsoft vloni oznámila platformu Windows Phone 7, která zase pro vznik programů využívá prostředí Silverlight a .Net.

Aby toho nebylo málo, nemají chytré telefony dostatek paměti a neustále ukončují běžící služby, aby prodloužily výdrž na baterii. Programování pro ně zahrnuje finty, které v oblasti aplikací pro stolní počítače nejsou příliš často používány.

Vývoj mobilních aplikací je díky výše uvedeným skutečnostem nakonec jistým utrpením. Existuje však jiná cesta, než použít specifické jazyky a vývojové nástroje jednotlivých mobilních platforem: aplikace HTML spouštěné ve webových prohlížečích smartphonů. Chytré telefony iPhone a Android jsou dodávány s prohlížeči založenými na open source projektu WebKit stejně jako platforma Symbian, za níž stojí společnost Nokia, a Palm WebOS.

Operační systém BlackBerry OS 6, použitý v modelu Torch, také užívá prohlížeč vycházející z projektu WebKit. Z uvedeného důvodu bude web navržený pro libovolné   toto zařízení vypadat a bude se chovat velmi podobně i na ostatních. (Výjimkou jsou zařízení Windows Phone 7 a starší verze systému BlackBerry OS, jejichž prohlížeče jsou založeny na více omezených proprietárních technologiích.)

Vytvoření webové HTML aplikace vyladěné pro chytré telefony namísto vytváření plně nativní aplikace má několik výhod:
•    Přirozeně pracuje na více platformách.
•    I když je malá obrazovka pro návrháře oříškem, je obvykle možné využít část kódu z webů pro stolní počítače.
•    Existuje mnohem více programátorů v jazycích HTML a JavaScript než expertů pro platformy Objective-C a Silverlight.
•    Aktualizace probíhají podle vašeho plánu, a ne podle obchodu s aplikacemi. Také neexistují žádná despotická pravidla, která by bránila vaší webové stránce v šíření mezi uživatele.
•    Často je relativně snadnější přeprogramovat vrstvu zobrazování webu s cílem vytvořit optimalizovaný kód HTML pro mobilní platformy. V některých případech se jedná jen o použití nového souboru CSS.

Kód HTML může být přenesen do chytrých telefonů dvěma způsoby. Nejjednodušší je uložit jej na webovém serveru, který detekuje prohlížeč a návštěvníkům poskytne speciální verzi pro smartphony. Při tomto způsobu se tedy jedná o řešení zahrnující web a zároveň i aplikaci – postup je podporován operačními systémy.

Existují však také způsoby zabalení kódu HTML do samostatné aplikace, která sídlí v mobilním zařízení a je obklopena tenkou vrstvou nativního kódu. Ať již vyberete kterýkoli způsob, zůstávají logika a grafická podoba stejné. (A s částmi konceptu specifikace HTML5, které si hledají své cesty do mobilních prohlížečů, může mobilní aplikace založená na HTML pracovat podobně jako tradiční aplikace – tedy jako při využití výhod možností off-line úložiště a tzv. specifikace canvas jazyku HTML5.)

Existuje však několik velkých tříd řešení, které s aplikacemi HTML nepracují dobře. Některé hardwarové části chytrých telefonů, jako například kamera, jsou totiž obtížně dostupné a někdy je k nim přístup dokonce zcela blokován. Programátoři her ihned zjistí, že rychlost odezvy je často výrazně nižší. I vydavatelé zvažující zabalit knihu do podoby aplikace zjistí, že některé reakce mohou být pomalé u obsahu, kterým je nutno listovat a má se pohybovat podobně jako herní objekty.

Přesto však může být v jazyce HTML úspěšně napsáno mnoho aplikací – například weby, které zobrazují informace z databází. Nebo aplikace s formátem dat jako z Facebooku a Yelpu pro snadnější sledování, které nevyžaduje rychlé pohyblivé objekty nebo okamžité reakce. I když mnoho nejprodávanějších programů pro mobilní systémy jsou hry jako Angry Birds, řada z nich – včetně aplikací pro předpověď počasí, služby Netflix nebo elektronických knih – lze snadno poskytovat pomocí čistého kódu HTML.

Uvádíme zde čtyři způsoby jak přinést webovou aplikaci HTML na platformu smartphonů. Nezávisle na zvoleném způsobu však také budete muset přemýšlet o způsobu distribuce aplikace ke koncovým uživatelům, jak vysvětlíme dále.

Cesta 1: Knihovny open source pro weby
Mezi prvními uživateli, kteří pochopili efektivitu modelu HTML, byli programátoři open source, kteří demonstrovali možnosti mobilních prohlížečů rychlým vytvořením vhodných souborů CSS, aby aplikace HTML vypadaly jako běžné programy od společnosti Apple. Se správným souborem CSS bude seznam dat označený tagy < li > vypadat jako prvek Objective-C ListView vytvořený z několika souborů základního Objective-C. Dobré příklady tohoto přístupu jsou iUi, jQTouch, jQueryMobile nebo iWebKit.

Práce s těmito knihovnami je snadná, pokud je v telefonu potřeba jen zobrazovat základní seznamy a bloky informací, kterými lze listovat sem a tam. Každý balík obsahuje několik stylů a vždy si lze doladit uživatelské rozhraní přizpůsobením souborů CSS.

Pokud ale záleží na základech, obě knihovny jQueryMobile a jQTouch jsou integrovány s  jQuery, takže práce s mnoha dalšími plug-iny jQuery je o něco jednodušší. Knihovny iWebKit a iUi jsou samostatné a spoléhají více na CSS.

Všechny čtyři knihovny jsou vzhledem ke své přirozenosti open source bližší fandům než plně vybaveným vývojovým sadám nástrojů, i když jsou dostatečně nablýskané na to, aby je bylo možno použít pro mnoho základních komerčních projektů.

Například iUi nebylo aktualizováno od své verze 0.40 z prosince 2009. Knihovna iWebKit byla aktualizována z verze 5.0.3 na 5.0.4 v březnu 2010 a od té doby se nic nezměnilo. V tuto chvíli se jeví jako nejaktivněji rozvíjená knihovna jQueryMobile. Také jQTouch získává velkou pozornost díky nedávno přidaným tématům a vylepšením, která zlepšují reakce na události spojené s dotykem displeje.

Podstatné je, že tyto knihovny open source jsou jen prvními náznaky, nejsou to plně vyvinuté balíky. Pokud vytváříte důmyslnou aplikaci, budete se muset sami dost snažit o vylepšení.

Cesta 2: Mobilní přebalovače (repackagers)
Existuje překvapivě velké množství webů, které přebalují informace pro mobilní platformy. Některé jsou jen tenkým pozlátkem a přebírají data z hlavního webu, ale jiné jsou mnohem důmyslnějšími nástroji pro úpravu obsahu. Všechny jsou však efektivními a dobře vyladěnými sadami šablon, které informace přetransformují do podoby snadné pro čtení pomocí mobilního telefonu.

Například řešení Mobify použije adresu URL běžného webu a umožní vybrat klíčové elementy DIV pomocí šikovného vizuálního editoru. Potom je možné výsledek otestovat na několika různě velikých obrazovkách, dokud vývojář není spokojen. Pak jen stiskne tlačítko a za několik minut funguje naživo. Tento nástroj přebírá informace z vybraných sekcí DIV původního webu a znovu je publikuje.

Podobné služby přebalování zahrnují i produkty Mippin Mobilizer, který je propojen s reklamními sítěmi AdMob, Onbile a Wirenode, které mají upravitelné šablony, dále Winksite, který integruje základní komunitní síť s obsahem uživatele, Mofuse, který spojuje dvojrozměrné kódy QR se zkracovačem adres URL, a konečně Yahoo Blueprint, který je vyladěn pro tisíce mobilních zařízení včetně iPadů.

Všechna tato řešení pravidelně přidávají nové funkce a budou nepochybně napodobovat nejlepší inovace svých konkurentů. Použití takových nástrojů významně zjednodušuje proces vytváření webu.

Jejich nevýhodou ale je to, že všechny weby od jedné služby vypadají stejně a je zde malá příležitost větší změny. I když struktura může poskytnout dost velkou míru flexibility, zejména pokud firma poskytuje svůj mobilní web přes kanál RSS ze svého hlavního webu, stále existuje riziko omezení konceptem.

Cesta 3: Moduly typu plug-in
Když weby přebalující informace jen nasypou data do jiné šablony vytvořené z HTML a CSS, není důvod, proč by vývojář nemohl začít integrovat takové HTML a CSS optimalizované pro mobilní platformu přímo do hlavního webu. Není to tak jednoduché jako delegování všeho přebalování na jiný web, ale přináší to lepší kontrolu.

V mnoha případech je to dokonce relativně snadné. Například některé moduly plug-in systému Drupal automaticky detekují prohlížeč zasílající požadavek a poté automaticky vyberou správnou šablonu, která může být zjednodušená a přizpůsobená pro mobilní telefony. Plug-in knihovny iUi zase využívá její rozhraní k formátování obsahu pro iPhone a další prohlížeče typu WebKit. Další jako iDrupal UI, Mobile Tools a Mobile Plugin fungují podobně. Existuje několik souvisejících řešení tohoto typu pro všechny významné systémy CMS (Content Management System). Populární je třeba WPtouch, jenž existuje v proprietární verzi za 39 dolarů. Uživatelé systému Joomla zase mohou použít tzv. TapTheme pro podobné typy zobrazení, které dobře fungují také s tablety iPad.

Všechny tyto přístupy nabízejí více kontroly než jakékoliv weby zajišťující výše zmíněné přebalování pro chytré telefony. Kód je obvykle open source a změny jsou často možné a obvykle i proveditelné. Pokud jsou moduly dobře udržovány, může tento přístup nabídnout většinu výhod hostovaného přebalovacího webu pro mobilní přístroje s kontrolou plynoucí z vlastnictví serveru. Pokud však vývojáři modulů přejdou na jiné projekty, zůstane práce na příslušném uživateli.

Cesta 4: Komerční produkty
Oblast mobilních řešení nyní přitahuje dostatek zájmu k tomu, aby do hry vstoupily také komerční vývojářské nástroje. Například společnost Sencha, která vytváří rovněž knihovny a vývojářské nástroje pro JavaScript, nedávno vydala prostředí Sencha Touch – tento nástroj sice není open source, ale komerční licence je zdarma (zatím). Společnost vydělává peníze prodejem podpory a prací na zakázku prostřednictvím balíčků podpory, začínajících na 300 dolarech.

Profesionální přístup firmy Sencha je zjevný. Je zde více funkcí,  panelů,  widgetů a více možností návrhu než u nabídek open source. Také dokumentace je mnohem lepší než u mnoha projektů open source, i když by to mohlo být ještě lepší – někde totiž chybí nebo se týká předchozí verze kódu.

Podobně i Appcelerator Titanium umožňuje psát kód pomocí HTML, CSS a JavaScriptu a poté převede výsledek do nativního kódu. Je tedy možné vytvořit nativní mobilní aplikaci z HTML, JavaScriptu a CSS, které již znáte. Prostředí PhoneGap od firmy Nitobi také využívá psaní aplikací pomocí HTML a kódu JavaScript a přidává knihovny využívající nativní funkce populárních mobilních platforem.

Dokončení článku vám přineseme zítra...

Koupit
Vyšlo v Computerworldu 8/2011
Časopis lze koupit se slevou 20 %