Fragmentace u chytrých televizí. Opravdu? Díl 1/2

06. květen 2013

Jedním z diskutovaných témat poslední doby je fragmentace vývojových prostředí a aplikačních rozhraní chytrých televizí a snaha ji řešit. Položme si otázku, zda nejde o boj s něčím, co je vcelku přirozené (kdo z nás se nechce nějak lišit) a zda snaha unifikovat není tedy tak trochu Quijotovým bojem.

Než se ale dostaneme k televizím, tak se v prvním díle našeho povídání, pro srovnání a lepší pochopení fragmentace samotné, podíváme na svět mobilních aplikací.

Mobilní vývoj – to je dnes především operační systém iOS a Android. Dva neslučitelné světy aplikací, které jsou nekompatibilní nejen na úrovni zdrojových kódů (Objective-C vs. Java), ale také co se týká designu. Pryč je doba, kdy vzhled aplikace na Androidu napodobil rozhraní existující aplikace na iOS. Ve světě Androidu se, zejména s příchodem verze 4.x a holo designem, prosazuje svébytný a nutno říct zajímavý návrh aplikací (viz třeba), vzhledově docela odlišných od těch jablečných. Podíváme-li se na ostatní platformy, narazíme na další rozdíly: Na Windows 8 a Windows Phone 8 je to svět .NETu, XNA a Metro designu, na novém BlackBerry 10 pak C++ a Qt. Jinými slovy oblast vývoje aplikací na mobilních telefonech je světem fragmentací na úrovni:

  • Jazyka (Java, C#, Objective-C, C++), frameworků a vývojářských nástrojů
  • Designu

Jakou kompaktnost a zpětnou kompatibilitu nalezneme v rámci jednotlivých platforem? Kdo vyvíjel na Androidu, ví, že největší peklo je jeho vnitřní fragmentace, tj. rozdíly mezi verzemi operačního systému. Nyní jde snad o ustupující trend, i když s nějakými závěry počkejme raději na uvolnění Key Lime Pie. Dále tu máme fragmentaci plynoucí s množství rozlišení, podpory rotací a existence doplňkových funkcí (např. QWERTY klávesnice, NFC) a pak jde také o fragmentaci mající svůj původ v chybách výrobců, velikosti dostupné paměti na zařízení a jeho výkonu, problémů s video přehrávači, atp. Výsledkem jsou připomínky zákazníka, který má na telefonu stále Froyo nebo komentáře na Google Play pranýřující vývojáře za rychlost aplikace čínském tabletu, který si stěžuje na out-of-memory při zpracování většího XML. Dávno také neplatí, že uzavřený systém Apple zaručuje jednotnost – aplikace napsaná pro iOS 4 bude mít nejspíše nějaký problém na iOS 6 a naopak, to samé se týká i rozlišení a velikosti obrazovky a zejména výkonu a velikosti paměti na iPadu 1. Podobně pak napsat aplikaci pro WP7, WP8 a Windows 8 vyžaduje dobrý návrh aplikace a značné úsilí zejména při testování. Závěr? Opět určitá fragmentace a nutnost testování a to na úrovni:

  • Verzí operačních systémů
  • Výrobců telefonů
  • Vlastností telefonů
  • Rozlišení a velikosti obrazovky
  • Podpory tabletu a telefonu

Dále je zde fragmentace technologická. Týká se podporovaných DRM, kodeků, streamovacích protokolů, možností zabezpečení privátních dat na úrovni systémů, běhu aplikace na pozadí, způsobu serverových notifikací, možnosti plateb na telefonu, atd. Připravit multiplatformní systém dnes znamená nutnost podporovat více technologií na straně serveru, což mohou být nakonec zdaleka ty největší náklady při realizaci projektu… Také se sluší připomenout, že fragmentované jsou i postupy a nároky při schvalování aplikací. Co je bezproblémové na Google Play, díky absenci jakékoliv vstupní filtrace, nemusí projít schvalováním u Apple nebo Microsoftu. Pokud to shrneme, tak máme další fragmentaci na úrovni:

  • Podporovaných technologií
  • Schvalování aplikací

Závěr?

Mobilní svět je prostě rozmanitý. Jistě byly a jsou zde snahy tyto prostředí sjednotit, zkoušel se C#, BB10 umožňuje běh Androidích aplikací, Adobe se pokoušelo prosadit ActionScript. Vše ale skončilo neúspěchem anebo tyto technologie živoří na okraji vývojářské komunity. Z těchto směrů dává nějakou naději do budoucna jen HTML/CSS/JavaScript. Nicméně ne dnes. Kdo viděl alespoň trochu komplexnější aplikaci v PhoneGapu, jak se plazí se i na Galaxy SIII, tak mi dá nejspíš za pravdu. Jedním z důvodu je i to, že napsat rychlou, kvalitní a komplexní aplikaci v JavaScriptu pro telefony není žádná sranda a vyžaduje zkušené odborníky, zatímco napsat to samé nativně zvládne i méně zkušený vývojář. Tady se náklady (hlavní argument cross-platform přístupu) prostě těžko šetří – zejména jakmile dojde na maintanence nebo potřebu využít nativní funkce telefonu. Důležitý je také fakt, že aplikace pro mobilní telefony vytvořená pro více platforem má obvykle negativní důsledky pro její uživatele: Zpravidla (ale ne nutně) je pomalejší než nativní aplikace, neumožňuje využít naplno všech možností dané platformy, protože pracuje jen s množinou funkcí, která je všem platformám společná a má jednotné grafické rozhraní, které nerespektuje zvláštnosti, požadavky a jedinečnost mobilních operačních systémů.

Možná naleznete další druhy fragmentace a odlišnosti, nebo máte na tyto rozdíly jiný názor – určitě nám napište. Příště se podíváme jak jsme na tom u chytrých televizí.

Přihlašte se k odběru novinek