5

Click here to load reader

Zaverecny ukol

Embed Size (px)

DESCRIPTION

HTML5 vs Android

Citation preview

Page 1: Zaverecny ukol

Argumentace výběru tématu Téma a název tohoto textu je velmi blízké tématu mé diplomové práce „Porovnání vývoje

aplikací pro Android a HTML5“, kterou momentálně píšu, a je možné, že poslouží jako

některá její část. Tyto technologie mají do budoucna velký potenciál a speciálně HTML5

v poslední době prochází značnými inovacemi. Obě technologie mají také vysoké uplatnění

v moderním webu a tvorbě revolučních aplikací.

Anotace Text představuje krátký úvod do problematiky dvou odlišných programovacích metodik,

kde se proti sobě stavějí webově orientovaná HTML5 technologie a nativní Android. Obě

mají, nejen z pohledu vývojáře, své výhody i nevýhody, které jsou v textu dále rozvedeny a

porovnány. Jsou zde uvedeny aspekty, které je nutné před samotným vývojem zvážit tak,

aby aplikace nebyla už od samotného začátku vyvíjena špatným způsobem a bylo možné ji i

v budoucnu podporovat a aktualizovat.

Klíčová slova HTML5, Android, platforma, nativní aplikace, webová aplikace

Page 2: Zaverecny ukol

Porovnání vývoje aplikací pro HTML5 a Android Svět mobilních platforem, internetu a hlavně technologií, které díky existenci těchto dvou

platforem vznikají, se neustále vyvíjí mílovými kroky kupředu. Díky této rychlosti a neustále

se měnících požadavků uživatelů však není vždy jisté, kdy, a zda vůbec, se některé z těchto

rozličných technologií uchytí. V následujícím textu jsem se zaměřil na dvě technologie,

pomocí kterých se dají vytvářet rozličné aplikace a hry.

Webová platforma HTML5 Velmi dynamický vývoj můžeme sledovat u této relativně mladé nadstavby značkovacího

jazyka HTML, její podpory, inovace a standardizace [1]. Většina funkcí a schopností HTML5

se neustále vylepšuje a každá další aktualizace některého z internetových prohlížečů jej

podporuje o něco více a přispívá tak k jeho pomalému rozšiřování mezi veřejnost. Hlavní

zastánci HTML5, v čele se společností Google, rádi vytvářejí dojem, že HTML5 už "je tu" [2]

a je připraven ovládnout web a mobilní internet. V praxi je to téměř plnohodnotná technologie

a její nasazení je již v současné době výhodné z mnoha důvodů, avšak jakási realizace a

ustálení standardů ze strany vývojářů postupuje pomaleji a věci, které HTML5 dnes neumí,

mohou být implementovány třeba do měsíce. Celý vývoj tak působí dojmem jakési rozdělané

práce a veřejnost její „kouzla“ objevuje postupně a v malých dávkách.

Nativní platforma Android Situace ve světě nativních1 aplikací je přesně opačná. Ať už se jedná o jakoukoliv

platformu (iOS, Android, Windows Mobile), společnost, která ji zaštiťuje, vydává poměrné

časté aktualizace. Tyto bývají většinou uváděny na trh spolu s nějakými novými výrobky, jako

jsou například chytré mobilní telefony, na kterých jsou nové funkce rovnou prezentovány.

Sada aktualizovaných vývojářských nástrojů bývá často vypuštěna na internet přímo po

skončení těchto prezentačních akcí (například v případě společnosti Apple známé jako

„keynotes“). Dokumentace k jednotlivým platformám bývají většinou velmi dobře zpracované,

dostupné na internetu [3] a případné problémy a nejasnosti jsou řešeny v internetových

diskusích. Neexistuje zde tedy pocit rozdělané práce a standardizace ze strany autorů

platforem a jsou zde jasně dány limity toho, co naprogramovat lze a co naopak není ani

podporováno.

1 Nativní aplikace označuje software, který je plně přizpůsoben zařízení, na kterém je nainstalován a

dokáže bez výrazných komplikací a programů třetích stran využívat všechny jeho funkce

Page 3: Zaverecny ukol

Aspekty V následujících řádcích porovnáme důležité aspekty, týkající se vývoje aplikace pro obě

platformy. Pomocí aktuálních poznatků z praxe dojdeme u každého z těchto aspektů

k závěru, pro kterou platformu je lepší a na konci porovnáme výhody a nevýhody obou

platforem pomocí grafu.

Multiplatformnost Nejhůře na tom, z hlediska přenosnosti aplikace mezi různými platformami, jsou aplikace

a hry, vyvíjené pro nativní platformu. Pokud totiž chtějí vývojáři svůj výsledek prezentovat

širšímu publiku, nevyhnou se přepisování aplikace na ostatní platformy, kde v současné

chvíli figurují iOS, Android a několik platforem společnosti Microsoft.

Lépe na tom jsou vývojáři, kteří vytvářejí aplikaci webovou. Ta totiž bude fungovat na

všech platformách, neboť k jejímu spuštění stačí, aby zařízení disponovalo internetovým

prohlížečem. Pokud je ale aplikaci náročná na výkon, například nějaká webová hra, pak ani

zde kvůli výkonnostním limitům současných internetových prohlížečů nejsou možnosti

neomezené.

Výkon Nativní aplikace nemají z hlediska výkonu sebemenší problém, protože běží „blízko

hardwaru“ a využívají technologie jako GPU akcelerace nebo běh aplikací na více jádrech

(multithreading). Programování her a náročných aplikací pro nativní platformu, spíše než

jako webových aplikací, se tak jeví jako logické.

Grafický výkon webových prohlížečů se však v poslední době také zvýšil, a to hlavně díky

V8 JavaScript Enginu2, hardwarové akceleraci a jiným optimizačním technikám.

Cena vývoje a aktualizace Vývoj nativní aplikace, a to především pro více než jednu platformu, se může projevit jako

velmi nákladné řešení. Cena, společně s programátorskou kapacitou, hraje klíčovou roli

během celého vývoje aplikace i po něm, protože s rostoucími potřebami uživatelů musí růst i

aplikace. Je proto potřeba, aby byl tým programátorů připraven i po uvedení aplikace na trh

programovat a vydávat aktualizace, opět na více platforem najednou.

Naopak při tvorbě webové aplikace se případné updaty projevují téměř okamžitě po

aktualizaci souborů na serveru a na počet platforem nemusí být brán zřetel. Rovněž zde

odpadá nutná administrativa, která je přítomna u nativních aplikací v podobě jejich

podepisování a umisťování na Google Play Store, App Store a jiné obchody.

Programovací jazyky Programovací jazyky jako Java, C a C++, používané při vývoji nativních aplikací, jsou

koncipovány pro vývoj komplexních aplikací [4] a jsou velmi robustní, kdežto jazyky HTML a

CSS3 mají jednoduchý syntax a snadněji se učí. Pokud například vyvíjíme nativní aplikaci

v jazyce Java, k jejímu zprovoznění na iPhone OS (nebo na jiné platformě) je nutné počítat

s přepsáním aplikace do jiného jazyka, v tomto případě objektového C. Webovou aplikaci

vytvoříme jen jednou, a ta pak pojede na všech platformách. [5]

2 V8 JavaScript Engine je open source engine, vyvíjený společností Google, které je součástí

prohlížeče Google Chrome.

Page 4: Zaverecny ukol

Graf a závěr

Pozn: větší číslo je lepší

Ve srovnávacím grafu obou platforem je vidět, že obě barvy zabírají téměř stejně velkou

plochu, ale že zároveň každá z nich dominuje na jiném poli. Obě mají své výhody a

nevýhody a často velmi záleží na charakteru vyvíjené aplikace. Ve většině případů lze

doporučit vývoj obou typu aplikací najednou, případně nejdříve zvolit cestu webové aplikace,

která se takto dostane širšímu publiku a poté se až zaměřit na vývoji její nativní verze.

Zdroje [1] WHATWG. HTML: The Living Standard: WEB APPLICATION APIS [online]. 2012 [cit.

14.12.2012]. Dostupné z: http://developers.whatwg.org/webappapis.html#webappapis

[2] Google I/O 2011: HTML5 versus Android: Apps or Web for Mobile Development?. MILLER,

Michael. YOUTUBE.COM. YouTube [online]. 2011, 12.05 [cit. 2012-12-14]. Dostupné z:

http://www.youtube.com/watch?v=4f2Zky_YyyQ

[3] GOOGLE. Developers: Training [online]. 2012 [cit. 2012-12-14]. Dostupné z:

http://developer.android.com/training/index.html

[4] HASHIMI, Sayed Y a Satya KOMATINENI. Pro Android. Berkeley: Apress, c2009, xxiii, 437 s.

Expert's voice in open source. ISBN 978-143-0215-967.

[5] RAMIREZ, Enrique. Coding An HTML 5 Layout From Scratch. In: Smashing Magazine [online].

4.8.2009 [cit. 2012-12-14]. Dostupné z:

http://coding.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/

ad [1] – pro někoho možná „suchá“ specifikace, pro jiné aktuální zdroj informací k dané

problematice; ze specifikace čerpá mnoho vývojářů, a také ji zpětně formují; podobné weby

používám i pro svou diplomovou práci.

ad [2] – přednášející jsou odborníci přímo ze společnosti Google; názorné ukázky přímo z

„programátorské kuchyně“; rychlé srovnání obou platforem na místě a vyvozený závěr.

90%

33%

68%

61%

10%

67%

32%

39%

0% 20% 40% 60% 80% 100%

Multiplatformnost

Výkon

Cena a aktualizace

Programovací jazyky

HTML5

Android

Page 5: Zaverecny ukol

ad [3] – kvalitní a vysvětlující návody a dokumentace; příklady a ukázky hotových aplikací;

možnost hledat potřebné funkce v poli „hledat“; možnost stažení aplikací i vývojářských

nástrojů; spousta materiálu, o kterém lze psát a za pomocí kterého lze tvořit nové věci.

ad [4] – detailní a neotřelé postupy; skvělé články o nových technologiích; moderní témata;

ad [5] – Vynikající kniha dvou zkušených programátorů; praktické ukázky a detailní postupy;

průvodce platformou Android; základy mých aplkací pocházejí právě z této knihy.