Napsat kvalitní mobilní aplikaci jen jednou a spustit ji nativně na různých typech zařízení s mnoha operačními systémy je sen všech vývojářů. Skutečnost je taková, že píšou většinou vše několikrát, hledají kompromisní technické řešení, případně investují nemalé finance do multiplatformních frameworků a přeškolení lidí. To se nyní ale změnilo.
Microsoft koupil společnost Xamarin zabývající se technologiemi pro podporu multiplatformního vývoje, testování a monitoringu mobilních aplikací. Klíčová technologie Xamarinu umožňuje psát jeden jediný kód v C# a ten kompilovat do nativních aplikací platforem Android, iOS a Windows. Na začátku dubna 2016 byla oznámena integrace portfolia Xamarin do produktových řad Microsoft Visual Studio, dostupnost základních verzí Xamarinu zdarma a otevření Xamarin runtime jako OSS.
Kam zařadit Xamarin?
Pojďme si nejprve vyjasnit, jaké obecné typy multiplatformních mobilních aplikací existují a jak mezi ně zapadá Xamarin.
Webová responzivní aplikace: Běžný web upravený i pro mobilní browsery, není třeba nic instalovat, vhodné pro práci on-line v browseru, problematické/téměř nemožné využití interních systémových volání, senzorů a zdrojů mobilního zařízení.
Hybridní mobilní aplikace: Webová aplikace opatřená obálkou s nativními komponentami umožňující přístup k systémovým senzorům a zdrojům, často i off-line práce, instaluje se z App Marketplace. Aplikace je však často pomalá a neintuitivní – nevyužívá nativní UI. Typický framework je PhoneGap/Cordova, který najdete také jako volitelnou součást instalace Visual Studia.
Nativní mobilní aplikace: Dříve nebo později kompilovaná přímo do nativního kódu daného systému, využívá nativní UI komponenty. Nejlepší výkon, ale nutno psát buď zcela odděleně, nebo nějakým způsobem přizpůsobit každé platformě zvlášť. Do této kategorie patří Xamarin. Jednotný kód je v C# a pro každou mobilní platformu se celá aplikace kompiluje nativně.
Xamarin a Microsoft
Co vše nabízel Xamarin, jak to bude nyní pod křídly Microsoftu?
Xamarin nabízel nástroje a multiplatformní technologie (Xamarin Platform), IDE pro vývojáře (Xamarin Studio), možnosti testování (Xamarin Test Cloud) a monitoring aplikací (Xamarin Insights), doplňkově také on-line školení a konzultace (Xamarin University).
Klíčovým produktem společnosti byl balík Xamarin Platform – multiplatformní framework (iOS, Android, Windows), s jehož pomocí lze psát jednotný C# kód pro více platforem a zároveň v placených vyšších edicích využívat sadu vizuálních cross-platform UI komponent Xamarin Forms.
V rámci Xamarin Platform bylo dodáváno i programátorské IDE – Xamarin Studio volitelně pro Windows a pro Mac OSX. Pro uživatele Visual Studia existoval velmi propracovaný doplněk Xamarin, který byl ve verzi 2015 součástí instalace Visual Studia 2015.
Xamarin Platform se dodával ve 3 verzích s licencí per user na rok, cena nebyla lidová a je překvapivé, kolik firem si ho přesto pořídilo. Od dubna jsou edice Xamarin začleněny do edic Visual Studio/MSDN jako další BEZPLATNÁ výhoda předplatného MSDN. Porovnání přibližně odpovídajících edic a jejich cen je v tabulce níže.
Uživatelé Visual Studia si stáhnou komponenty Xamarin jako volitelnou součást instalace a aktivují odpovídající edici přímo v IDE Visual Studia:
Nabídka Xamarinu zdarma se netýká pouze Windows a Visual Studia, ale také uživatelů OSX, kteří neměli nikdy žádná Windows nainstalována. Pro ně je stále poskytováno plnohodnotné vývojářské Xamarin IDE na Macu, jež se jmenuje Xamarin Studio for OSX.
Existují tři edice Xamarin Studio for OSX:
-
Xamarin Studio OSX Community – zcela zdarma, ale má stejná licenční omezení jako VS Community
-
Xamarin Studio OSX – součást MSDN Professional subscription bez licenčních omezení
-
Xamarin Studio OSX Enterprise – součást MSDN Enterprise subscription s funkčností navíc
Ve skutečnosti existuje jediný binární kód Xamarin Studia OSX pro všechny edice, vyšší edice a funkčnost se „odemyká“ on-line, aktivací z portálu MSDN.
Jak kompilovat?
Co je třeba ke kompilaci multiplatformních mobilních aplikací s Xamarinem?
Životní cyklus a nástroje pro podporu multiplatformních aplikací založených na Xamarinu je podobný jako u jiných mobilních technologií. Je zřejmé, že to jsou vývojářské knihovny Xamarin pro „jablka, droidy a okna“ a IDE, kde se programuje a ladí (VStudio nebo Xamarin Studio OSX). Jelikož se ale jedná o multiplatformní technologie, tak si např. uživatelé Visual Studia, kteří chtějí kompilovat iOS aplikaci, nevystačí s PC, ale potřebují se dostat alespoň vzdáleně na Mac (např. MacInCloud.com), kde proběhne nativní kompilace aplikace. Knihovny a SDK pro Android jsou dostupné pro Win i Mac, a tak build může proběhnout lokálně nebo třeba i vzdáleně v rámci Visual Studio Team Services. Pozor na skutečnost, že na Mac OSX nezbuildujete pomocí Xamarin Studio OSX svou aplikaci pro Windows.
A co ještě?
Testování, beta distribuce Android, iOS a Windows aplikací, telemetrie… Mobile DevOps je další oblastí, kde můžete použít novinky společnosti Microsoft pro podporu tvorby, testování a nasazení mobilních aplikací. V oblasti běžného testování najdete ve Visual Studio Android Emulátor a připravuje se iOS Simulátor pro Windows a také pěkná vychytávka iOS USB Remoting for Visual Studio. Chcete-li automatizovaně testovat na tisících reálných mobilních zařízení a nezáleží na tom, jak je aplikace napsaná, vyzkoušejte Xamarin Test Cloud. Pro ulehčení automatizace testování se připravuje Xamarin Test Recorder.
Potřebujete-li zajistit průběžnou beta distribuci svých mobilních aplikací k „lidským“ testerům dříve, než je nasadíte do komerčních storů, crash reporting, sběr zpětné vazby, telemetrii atd., pak připojte ke své aplikaci SDK HockeyApp. Firmu HockeyApp koupil Microsoft před rokem. SDK existuje pro Android, iOS, OS X, Windows, Cordovu, React Native, Unity a Xamarin. Jak zapadá do celého subsystému, který může, ale nemusí být řízen např. pomocí Visual Studio Team Services, je vidět na obrázku.
Kde mám začít a jak vše vyzkoušet?
Přečtěte si anglický whitepaper „Microsoft platform and tools for mobile application development“. Software najdete ke stažení na adrese www.visualstudio.com a studovat Xamarin lze v rámci Xamarin University. Služby Visual Studio Team Services jsou pro jednotlivce a malé týmy zdarma.
Jiří Burian a kolegové | Microsoft DX