VOLEJTE 725 517 597

Skeleton Software Facebooku Skeleton Software na Twitteru Skeleton Software na LinkedIn

Xamarin: Úvod do Xamarin Forms

Blog - Xamarin

Teoretické seznámení s nástrojem Xamarin. Jeho výhody, ale i nevýhody a na co je potřeba dát si pozor. Obsahuje také základní popis frameworku Xamarin.Forms a jeho odlišností od klasického Xamarinu.

1. března 2017 Roman Fischer

Článek je určen vývojářům, kteří se chtějí s tímto nástrojem seznámit nebo firmám rozhlížejícím se po technologii, kterou by mohli použít k vývoji mobilních aplikací pro všechny tři hlavní mobilní platformy.

Xamarin

Xamarin je nástroj pro tvorbu mobilních aplikací, umožňující vyvíjet pro všechny tři hlavní platformy Android, iOS a Windows Mobile v C# a přímo ve Visual Studiu. Stejnojmennou společnost, která tento nástroj vyvinula, koupil počátkem roku 2016 Microsoft a začal ho poskytovat všem vývojářům zdarma, jako součást Visual Studio Community Edition. Od té doby se Xamarin stal velmi zajímavým a snadno dostupným nástrojem pro tvorbu mobilních aplikací.

Jeho velikou výhodou je to, že oproti nativnímu vývoji pro jednotlivé platformy lze mezi těmito platformami sdílet kód. Zároveň však, na rozdíl například od PhoneGapu, zůstává zachována 100% dostupnost nativního API daného OS. Výstupem kompilování v Xamarinu je úplně stejný soubor jako při nativním vývoji. Xamarin tedy nemá negativní vliv na výkon výsledné aplikace.

Nevýhodou je ovšem velikost balíčku. Při vývoji můžete používat .NET Framework, který není součástí Androidu ani iOS. Z toho důvodu musí být použité knihovny tohoto nástroje součástí vaší aplikace. Další nevýhoda se objevuje v případě potřeby použít knihovnu třetích stran. Jak jsem již zmínil, v Xamarinu je dostupné kompletní nativní API. Problém představuje používání například nějaké služby, ke které poskytovatel dává k dispozici knihovnu pro její konzumaci jen pro Javu nebo Objective-C. Tento problém je však řešitelný. Xamarin poskytuje tzv. Bindings Library projekty, pomocí kterých lze takovou knihovnu do C# napojit.

Sdílení kódu

Na obrázku níže vidíte, jak vypadá sdílení kódu pomocí Xamarinu. Ve společném (sdíleném) projektu Shared Code definujete komunikaci s webovými službami, práci s databází, business vrstvu a datové modely. Z této knihovny potom vystavíte jednoduché API, které používají jednotlivé projekty definující frontend vaší aplikace na konkrétních platformách – iOS app, Android app a Windows Phone app.

Xamarin(1) - PCL

Máte například aplikaci pro vyhledávání dopravních spojení. Stahování jízdních řádů, jejich aktualizaci a vyhledávání tras napíšete pouze jednou ve společné knihovně. Z této knihovny vystavíte dvě metody „Synchronize“ a „FindLinks“. Velká výhoda této možnosti nespočívá jen v ušetřeném času při vytváření aplikace, ale i v její údržbě. Pokud během existence aplikace provádíte její rozšiřování nebo úpravu práce s daty, realizujete to pouze jednou a váš produkt zůstává na všech třech platformách konzistentní. Další výhodou je, že vás tato struktura vede k větší čistotě návrhu. Prakticky vás nutí oddělit business logiku a presentační vrstvu.

Xamarin.Forms

Xamarin.Forms je framework, určený pro rychlou tvorbu GUI, který jde ve sdílení kódu ještě dál než základní Xamarin. Je zde přes 30 komponent (abstraktních modelů), pomocí kterých můžete ve společné knihovně definovat GUI. Tyto modely jsou potom za běhu aplikace mapovány na nativní komponenty, takže použití technologie Xamarin.Forms nemá na design výsledné aplikace vliv. Váš produkt vypadá na každé platformě jako nativní aplikace.

Xamarin(1) - Princip

Na obrázku je vidět, jak mapování funguje. Na jedné straně je abstraktní model, na straně druhé nativní komponenta. O konvertování mezi nimi se stará třída Renderer. Renderery musí být vždy tři – pro každou platformu jeden. Ke komponentám, které Xamarin.Forms obsahuje, už jsou samozřejmě renderery hotové a právě jejich rozšířením můžete přidávat do existujících komponent další vlastnosti. Případně můžete vytvořením nových rendererů vytvářet vlastní komponenty.


//Mapování modelu na nativní komponentu
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
    base.OnElementChanged(e);
    if (e.OldElement == null)
    {
        var control = new NativeButton(this.Context, this.Element.Underline);
        this.SetNativeControl(control);

        this.Control.Command = this.Element.Command;
        this.Control.Text = this.Element.Text;
        this.Control.SetTextColor(this.brushConverter.Convert(this.Element.TextColor));
        this.Control.SetBackgroundColor(this.brushConverter.Convert(this.Element.BackgroundColor));
    }
}

Xamarin vs Xamarin.Forms

Nabízí se otázka, zda použít Xamarin nebo Xamarin.Forms. Díky vlastním rendererům je možné v Xamarin.Forms dosáhnout téměř jakéhokoliv chování. Pokud ovšem vaše aplikace využívá velké množství nativního API a je pro vás důležité, aby se chovala velmi nativně, tak vám Xamarin.Forms přinesou více starostí než užitku. Obecně platní, že je to framework určený pro aplikace, kde je sdílení kódu důležitější než libovolné UI. Typicky formulářové aplikace napojení na centrální informační systém apod. Je to také velmi užitečný nástroj pro prototypování.

Jak začít?

Pro začátek stačí stáhnout Visual Studio Community Edition (nebo vyšší) a při instalaci zaškrtnout, že chcete nainstalovat i Xamarin. Pokud máte Visual Studio již nainstalované a chcete jen doinstalovat Xamarin, musíte se zaregistrovat a stáhnout ho. Ihned po instalaci můžete začít s vývojem pro Android a Windows Phone. Pokud ovšem chcete vyvíjet i pro iOS (iPhone) musíte mít k dispozici MAC, na který je potřeba Xamarin také nainstalovat a následně propojit s vaším PC - návod. Pak už vám nic nebrání pustit se do vývoje.

Užitečné zdroje

  • https://developer.xamarin.com – Velké množství užitečných informací o Xamarinu. Od rozsáhlých návodů, přes praktické ukázky až po konkrétní příklady i s odkazy na zdrojové kódy
  • https://blog.xamarin.com – Články o vývoji Xamarinu nebo různých šikovných funkcích a možnostech, které se hodí znát.
  • https://components.xamarin.com - Seznam komponent pro Xamarin. Je zde spousta užitečných a snadno použitelných nástrojů, které ulehčí práci.

Závěr

příštím článku ukážeme jak pomocí Xamarin.Forms rychle a jednoduše vytvořit aplikaci pro Android, iOS a Windows Phone.

Nabídka práce

job_mobile

.NET programátor mobilních aplikací

Více informací

Vyjádření našich klientů

The App was simple and worked well. We are satisfied with it and would repeat it next year.

Cairo International Film Festival
Mohamed Hefzy - Festival President

Více citací

Facebook

Úvod | Služby | Produkty | Reference | Kontakty | Přihlásit |

 Zpracování osobních údajů

Copyright © 2019 Skeleton Software s.r.o. | Všechna práva vyhrazena.