Xamarin Software
Pravděpodobně nejlepší multiplatformní framework
Předem říkám: Mám zkušenosti s nativními variantami Xamarinu i .Forms a jako IDE používám Visual Studio. Vývoj je přímočarý a k dispozici je spousta výukových materiálů, které umožní i středně pokročilým vývojářům .Net stát se produktivními během několika dní. Z pohledu vlastníka produktu se jedná o nástroj, který je vhodný v případě, že se musí zaměřit na více platforem. Získáte výhodu, že můžete cílit na funkce specifické pro platformu zařízení & bez bolestí spojených s nutností používat webové kontejnery, jako je Cordova nebo frameworky Ionic) Pro standardního vývojáře je největší bolestí ladění. To je obvykle pomalé (chybí například nativní funkce Androidu „Fast deployment“) a kvůli optimalizacím kompilátoru bude Intelisense sotva fungovat (nedostanete výpisy dostupných vlastností & metod, přičemž některé hodnoty vlastností nebudou přístupné vůbec) – i když to lze zmírnit použitím dobrého logovacího nástroje. Dodejme ještě, že (relativně) nový Xamarin Forms bude vývojáře dále omezovat v používání jednotné implementace, díky čemuž bude celkový produkt ještě lépe udržovatelný (i když to může mít omezení při konverzi stávajících nativních aplikací). Celkově se jedná o vyzrálý produkt, který by měl být vždy zvažován při cílení na multiplatformní software.
Pros
– V první řadě je to přenositelnost, která je hnacím motorem trhu. Možnost napsat jedinou implementaci, která je zaměřena na více platforem, je mimořádně cenově výhodná – Díky tomu, že je podporována sítí .Net (což je mezi komunitou vývojářů softwaru mimořádně rozšířené), je mnohem snazší udržovat řešení Xamarin (na rozdíl od nutnosti hledat vývojáře pro nativní platformy) – Podpora hardwaru je opravdu na vrcholu – dokonce i výrobci hardwaru (např.: Motorola) vydávají SDK Xamarin.
Nevýhody
– Snad jedinou skutečnou nevýhodou je, že vždy dochází ke zpoždění, než se aktualizuje na podporu nejnovější aktualizace platformy – Ladění se může stát zdlouhavým a setkal jsem se s tím zejména u nativních implementací kvůli ne zcela optimálnímu způsobu hlášení problému v Xamarinu (tj.: můžete se dostat do situace, kdy chybové hlášení týkající se běhu systému Android bylo ve skutečnosti způsobeno nějakým drobným problémem s rozložením, kdy není přítomen potřebný prvek)
.