Rychlý a efektivní vývoj mobilních aplikací pro více platforem není jednoduchá ani levná záležitost. Vývojáři k tomuto účelu mohou využívat celou řadu nástrojů. V eManu jsme vsadili na Xamarin, který zrovna před několika dny spadl pod křídla Microftu. V tomto seriálu vám tento nástroj postupně podrobně představíme.
Xamarin: Představujeme nástroj pro multiplatformní vývoj mobilních aplikací (díl 1)
Po představení prvního iPhonu v roce 2007 a následném vzniku AppStoru se otevřel zcela nový business: vývoj mobilních aplikací. K systému iOS se brzy připojila platforma Android, kterou následovaly vylepšené mobilní Windows a další více nebo méně úspěšné mobilní systémy. S novým hardwarem se postupně vylepšují nejen aplikace samotné, ale i způsob jejich vývoje.
K základním programovacím jazykům Objektive-C (iOS) a Java (Android) začala být doplňována různá nová řešení. Jejich hlavní motivací bylo pomoci vývojářům urychlit vývoj zahrnující možnost vytváření základní společné logiky až po psaní společného grafického rozhraní aplikací (UI). Tato „multiplatformní řešení“ se rozlišují podle technologií, na kterých jsou postavená, např. HTML, CSS nebo JS. Náš seriál se bude věnovat v současnosti nejrozšířenějšímu z nástrojů ‑ Xamarinu. Než se o Xamarinu dozvíte více, podívejte se s námi na příklady dalších frameworků:
- PhoneGap – technologie založená na HTML, CSS, JS
- Apache Cordova – další technologie založená na webových technologiích
- Fuse – relativně nový framework kombinující JS a C#
- RoboVM – framework založený na psaní iOS a Android aplikací v Javě (pozn. nyní patří pod Xamarin)
Xamarin umožnuje vývojářům jak vytvořit aplikace pro všechny tři nejrozšířenější platformy (iOS, Android i Windows), tak využít znalostí prostředí C# např. pro psaní různých druhů aplikací ve Visual Studiu nebo využití stávajících knihoven dostupných třeba na Nugetu.
Hlavní součásti Xamarinu
Srdce Xamarinu je postaveno na opensource projektu zvaném Mono, jehož “otcem” je Miguel de Icaza. Původně byl spravován společností Novell, pak Xamarin působil jako samostatný subjekt. 24. února 2016 byl Xamarin koupen Microsoftem. Mono je založené na ECMA standardech pro C# a Common Language Infrastructure a umožňuje psaní crossplatformních aplikací.
Mezi součásti Mono patří:
- C# compiler (pozn.: v současné době přechází na nový .NET kompilátor Roslyn)
- Mono-Runtime poskytující jak Just in Time (dále JIT), tak i Ahead of time (dále AOT) kompilaci
- .NET systém pro Garbage Collector
- Systém pro zpracování chování vláken
- Base class libraries, které jsou kompatibilní s .NET, rozšířené o Mono class libraries pro speciální případy
V roce 2009 se ke stávajícím knihovnám Mono připojila možnost vytvářet iOS aplikace, které se na rozdíl od klasických knihoven kompilovaly do strojového kódu cíleného na iOS aplikace.
Xamarin.iOS (dříve monotouch) se skládá z následujících prvků:
- Kompilátor
- C# mono compiler
- Third-party compilery jako RemObject’s Oxygene dokáží cílit také na Xamarin.iOS
- Vývojové SDK
- Linker ‑ nástroj pro údržbu kódu a redukci velikosti aplikace
- mTouch ‑ nativní kompiler a nástroj pro nahrání na reálné zařízení
- Integrační nástoje
- Knihovny nabindované do nativních CocoaTouch API
- Core .NET knihovny
Zanedlouho po iOS přibyla i možnost vyvíjet aplikace pro Android (pojmenovaný monodroid). Zde se využívá jiný druh kompilace než u iOS (JIT kompilace).
Xamarin.Android se skládá z těchto celků:
- Mono runtime + Android UI designer
- Knihovny
- Core .NET knihovny
- Nabindované nativní Android/Java API
- SDK nástoje pro zabalení, debug a deploying
Co dále
Xamarin framework se od doby vzniku značně rozšířil ‑ od roku 2011 ho aktivně využívá již přes milion developerů. V poslední době (momentálně je dostupná verze 4. generace) k němu také přibývají další nástroje k vývoji. Mezi ně patří Xamarin Insights (pro monitoring), Xamarin Test Cloud (pro Unit i UI testy), Xamarin Profiler (pro monitoring paměti) a další. Tyto nástroje umožňují vývojáři či firmě nabídnout kompletní řešení pro vytváření aplikací.
V následujících článcích se postupně dozvíte všechny důležité informace ohledně Xamarin Frameworku, od vývoje aplikací v obou dostupných IDE: Xamarin a Visual studiu přes techniku psaní společného aplikačního jádra a UI až po možnosti monitoringu a nasazení aplikace před a po jejím vydaní. V neposlední řadě se zaměříme i na Unit testování.