1. Obecné
Multiplatformní vývoj umožňuje jednoduchý, rychlý a škálovatelný
vývoj mobilních aplikací pro různé platformy pomocí jednoho
multiplatformního kódu zkompilovaného podle potřeb dané
platformy.
Výhodou multiplatformního vývoje je možnost sdílení kódu napříč
všemi platformami, snadné vytvoření nativního UI dodržující
standardy platformy a jednotnost designu aplikace.
1
2. Xamarin
Xamarin patří v současnosti mezi jedno z nejpoužívanějších
multiplatformních řešení. Xamarin je postaven na .NET a stojí za
ním v současné době společnost Microsoft.
V nové verzi Visual Studia je Xamarin plně integrovaný.
2
3. Srovnání
Výhody:
Podpora Xamarin.forms -
předdefinované nativní UI
komponenty pro Android, iOS
Podpora funkcionalit nativní
aplikace (Android fragmenty,
iBeacons)
Snadná integrace do cloudu,
zejména Windows Azure
Xamarin test cloud s dostupností
mnoha zařízení pro testování
aplikace
Objektově-orientovaná technologie
postavená na C#, což umožňuje
rychlejší běh aplikací a integraci
Objective-C stávajících metod
Vhodný pro větší projekty a
aplikace
3
Nevýhody:
Podpora Xamarin.forms -
předdefinované nativní UI
komponenty pro Android, iOS
Podpora funkcionalit nativní
aplikace (Android fragmenty,
iBeacons)
Snadná integrace do cloudu,
zejména Windows Azure
Xamarin test cloud s dostupností
mnoha zařízení pro testování
aplikace
Objektově-orientovaná technologie
postavená na C#, což umožňuje
rychlejší běh aplikací a integraci
Objective-C stávajících metod
Vhodný pro větší projekty a
aplikace
4. React Native
React Native je javascriptový multiplatformní framework vyvinutý
společností Facebook. Vývoj je založen na Javascriptu a React.js
knihovně pro tvorbu uživatelských rozhraní.
Příklad implementace mobilního řešení
Facebook app, Facebook messenger
4
5. Srovnání
Výhody:
Jednodušší tvorba nativního UI
Integrace nativních komponent
podobných jazyku Objective C
Podpora asynchronního
zpracování
5
Nevýhody:
Poměrně novodobý framework
s menší komunitou vývojářů a
podpůrné dokumentace
V současnosti nepodporuje
širší množství knihoven nebo
rozšíření pro podporu více
nativních funkcionalit
6. PhoneGap
PhoneGap je multiplatformní framework založen na technologiích
HTML5 a Javascript.
Za vývojem stojí společnost Adobe.
6
7. Srovnání
Výhody:
Možnost vývoje v HTML5, CSS,
Javascript
Akcelometr na měření výkonu
Podpora geolokace
Jednoduchá práce se Storage v
mobilním zařízení
7
Nevýhody:
Více sjednocený design UI pro
iOS a Android platformu
Pomalejší výkon oproti
konkurenčním JS
frameworkům
8. HTML5
Vývoj mobilní aplikace pomocí HTML5 jako responzivní verze
webového rozhraní.
Příklad implementace mobilního řešení
Google Docs
8
9. Srovnání
Výhody:
Rychlý vývoj aplikace
Není potřebná optimalizace pro
různé platformy
9
Nevýhody:
Design jako webová aplikace
Rychlost dle připojení k
internetu
Chybějící nativní funkcionalita
(offline režim, push
notifikace…)
10. Nativní vývoj
iOS (Swift, Objective C)
Android (Java)
Windows Phone (.NET)
10
11. Srovnání
Výhody:
Nativní prvky pro každou platformu
Rychlý výkon mobilních aplikací
Lepší optimalizace pro různé
tabletové a mobilní zařízení
11
Nevýhody:
Delší doba vývoje
Návrh uživatelského rozhraní
pro každou platformu zvlášť
12. Doporučení
Navrhované řešení závisí na požadavcích implementace a finální funkcionalitě
mobilní aplikace. Pokud se jedná o jednoduchou, menší aplikaci, která má
většinu logiky zpracované na straně serveru a na straně klienta přijímá pouze
data je vhodným řešením implementace multiplatformní framework.
Na aplikace, které jsou datově a aplikačně nenáročné doporučujeme React
Native framework.
Aplikace, které zpracovávají větší množství dat a je třeba je optimalizovat z
pohledu výkonu, ale mají jednodušší a nenáročné uživatelské rozhraní, více
jednotné pro obě platformy je vhodným řešením Xamarin framework nebo
PhoneGap framework.
Pokud se však jedná o aplikaci, která zpracovává logiku i na straně klienta,
dělá výpočty, je datově náročná nebo pracuje s citlivými hodnotamy je vhodnou
volbou nativní řešení. Také z pohledu správy a přístupu velkého počtu uživatelů
v jednom čase nebo vykreslování většího množství dat v reálném čase.
12