Operační systémy pro mobilní zařízení (OSMZ)

Týden XII. (3.5.-7.5.2021)

Multiplatformní frameworky umožňují vývojářům vyvíjet mobilní aplikace, které jsou kompatibilní s více než jedním operačním systémem; typická je kombinace vývoje pro iOS a Android (zjevně z důvodu největšího zastoupení na trhu). Poskytují možnost napsat kód jednou a poté jej spustit kdekoli na jiných platformách, což (teoreticky) umožňuje vydávat software rychleji, bezpečněji a v lepší kvalitě. Následující odstavce obsahují seznam v současnosti asi nejpopulárnějších frameworků (pokud jsem na nějaký framework zapomněl, dejte mi vědět).

Qt je multiplatformní framework široce používaný pro vytváření aplikačního software s grafickým uživatelským rozhraním určeného pro rozličné softwarové a hardwarové platformy. Velmi oblíbený je v prostředí Linuxu, kde tvoří základ desktopovému prostředí KDE. Qt je knihovna programovacího jazyka C++, ale existuje i pro jazyky Python (PyQt, PySide), Ruby (QtRuby), C, Perl, Pascal, C#, Java (Jambi) a Haskell. Podporuje lokalizaci aplikací a také SQL, zpracování XML, správu vláken, přístup k souborům, práci s grafikou a multimédii. Velkou výhodou Qt je velmi přehledně zpracovaná dokumentace a také vývojové programy Qt Creator nebo Qt Designer. Aplikace vytvořené pro grafické uživatelské prostředí používají nativní vzhled operačního systému, takže vyvinuté aplikace se vždy přizpůsobí vzhledu používaného prostředí. Z mobilních platforem je podporován Android od API 16, iOS 6 a vyšší a také dnes již se téměř nevyskytující Windows Phone 8.1. Aplikace napsané pomocí tohoto toolkitu je možno distribuovat pod licencí GPL, LGPL, nebo po splnění určitých podmínek i komerčně. Qt má i čistě komerční licence, na které se nevztahují zmiňované podmínky.

Xamarin je softwarová společnost a zároveň název frameworku nyní vlastněného společností Microsoft ale původně založeného inženýry, kteří vytvořili Mono. Xamarin.Android (dříve Mono pro Android) a Xamarin.iOS (dříve MonoTouch) jsou multiplatformní implementace Common Language Infrastructure (CLI) a Common Language Specifications (často nazývané Microsoft .NET). Pro vývoj aplikací se používá C#, přičemž se uvádí, že Xamarin má mít silnou komunitu více než 60 000 přispěvatelů od více než 3 700 společností. Mezi hlavní nevýhodu však patří vyšší náklady spojené s vývojovými nástroji. Xamarin je sice k dispozici zdarma pro jednotlivce a začínající podniky, nicméně větší týmy si musí zakoupit licence pro Microsoft Visual Studio. Xamarin se také nedoporučuje pro aplikace, které vyžadují náročnější grafiku, protože každá platforma má jiné metody pro vytváření vizuálního obsahu obrazovek a je obtížné provést optimalizace napříč platformami.

React Native je open-source framework pro mobilní aplikace vytvořený společností Facebook, Inc. Používá se k vývoji aplikací pro Android, Android TV, iOS, macOS, tvOS, Windows, UWP a umožňuje vývojářům používat React framework spolu s možnostmi nativní platformy. Pro vývoj React Native se primárně využívá JavaScript. Je také možnost psát nativní kód pro iOS nebo Android (v Kotlinu nebo Swiftu). Komponenty React zabalí existující nativní kód a komunikují s nativními API prostřednictvím JavaScriptu. Chcete-li však používat některé platformově závislé funkce, jako je fotoaparát nebo akcelerometr, musíte použít nativní součásti, tudíž pak vytváříte samostatné kódy pro Android a iOS.

Flutter je další z open-source uživatelských rozhraní a SDK pro vývoj softwaru, vytvořené společností Google. Používá se na vývoj aplikací pro Android, iOS, Windows, MacOS, Linux, Google Fuchsia a web. Flutter aplikace jsou napsány v jazyce Dart a využívají jeho mnohé pokročilejší funkce. Základní knihovna poskytuje základní třídy a funkce, které se používají k vytváření aplikací pomocí Flutteru, jako jsou API rozhraní pro komunikaci s Flutter modulem. Flutter modul je pak primárně napsán v C++ a poskytuje podporu renderování na low-level úrovni pomocí grafické knihovny Skia. Kromě toho se při sestavování projektu propojuje s SDK specifickým pro danou platformu, např. Android nebo iOS. Flutter nicméně stále postrádá některé prvky dostupné nativnímu kódu dané platformy a neumožňuje tak využívat úplně všechny funkce příslušného systému.

PhoneGap je framework založen čistě na webových technologiích HTML5, CSS3 a JavaScriptu. Aplikace napsané ve frameworku jsou zobrazeny na mobilním zařízení v prohlížeči (jako WebView) v plném rozlišení displeje. Zároveň lze využívat prvky operačního systému a hardwarové prvky. Propojování funguje na bázi pluginů, které jsou již napsané v nativním kódu. Momentálně podporuje většinu mobilních platforem. Framework je distribuován pod licencí Apache a komunita zajišťuje jeho vývoj.

Framework Ionic je na rozdíl od React Native a Xamarinu určený k tvorbě takzvaných hybridních aplikací, které nepracují s nativními komponentami, nýbrž je prostřednictvím HTML, CSS a JavaScriptu pouze napodobují. Aplikace v Ionic jsou tvořeny klasickými nástroji pro tvorbu webu a webových aplikací, které jsou následně díky technologii Apache Cordova spustitelné jako mobilní aplikace. Ionic a hybridní aplikace obecně mají podobně jako nativní řešení přístup (avšak omezenější) k hardwaru mobilního telefonu a stojí tak na pomezí mezi webovými a mobilními aplikacemi. Oproti klasickým mobilním aplikacím ovšem nedosahují takového výkonu a pojí se tak s horším uživatelským zážitkem.

PREZENTACE