Sdílet prostřednictvím


Shrnutí kapitoly 1. Xamarin.Forms Jak se hodí?

Poznámka:

Tato kniha byla publikována na jaře roku 2016 a od té doby nebyla aktualizována. Existuje mnoho v knize, která zůstává cenná, ale některé materiály jsou zastaralé a některá témata už nejsou zcela správná nebo úplná.

Jednou z nejvíce nepříjemných úloh při programování je přenos základu kódu z jedné platformy do druhé, zejména pokud tato platforma zahrnuje jiný programovací jazyk. Při přenosu kódu k refaktoringu je také lákavé, ale pokud je nutné udržovat obě platformy paralelně, pak rozdíly mezi těmito dvěma základy kódu ztěžují budoucí údržbu.

Vývoj mobilních řešení napříč platformami

Tento problém je běžný při cílení na mobilní platformy. V současné době existují dvě hlavní mobilní platformy, řada iPhonů Apple a iPadů s operačním systémem iOS a operační systém Android, který běží na různých telefonech a tabletech. Další významnou platformou je Univerzální platforma Windows Microsoftu (UPW), která umožňuje jednomu programu cílit na oba Windows 10.

Dodavatel softwaru, který chce cílit na tyto platformy, se musí zabývat různými paradigmaty uživatelského rozhraní, třemi různými vývojovými prostředími, třemi různými programovacími rozhraními a (možná nejšikovněji) třemi různými programovacími jazyky: Objective-C pro iPhone a iPad, Java pro Android a C# pro Windows.

Řešení C# a .NET

Přestože objective-C, Java a C# jsou všechny odvozeny z programovacího jazyka C, vyvinuly se velmi různými cestami. Jazyk C# je nejnovější z těchto jazyků a byl velmi užitečnými způsoby. Kromě toho je jazyk C# úzce spojený s celou programovací infrastrukturou nazvanou .NET, která poskytuje podporu pro matematiku, ladění, reflexi, kolekce, globalizaci, vstupně-výstupní operace souborů, sítě, zabezpečení, vlákno, webové služby, zpracování dat a čtení a zápis XML a JSON.

Xamarin v současné době poskytuje nástroje pro cílení nativních rozhraní MAC, iOS a Android API pomocí C# a .NET. Tyto nástroje se nazývají Xamarin.Mac, Xamarin.iOS a Xamarin.Android, souhrnně označované jako platforma Xamarin. Jedná se o knihovny a vazby, které vyjadřují nativní rozhraní API těchto platforem pomocí idiomů .NET.

Vývojáři můžou pomocí platformy Xamarin psát aplikace v jazyce C#, které cílí na Mac, iOS nebo Android. Když ale cílíte na více než jednu platformu, je pro sdílení kódu mezi cílovými platformami hodně smysl. To zahrnuje oddělení programu na kód závislý na platformě (obecně zahrnující uživatelské rozhraní) a kód nezávislý na platformě, který obecně vyžaduje pouze základní rozhraní .NET Framework. Tento kód nezávislý na platformě se může nacházet buď v knihovně přenosných tříd (PCL), nebo ve sdíleném projektu, který se často označuje jako projekt sdíleného prostředku nebo SAP.

Poznámka:

Přenosné knihovny tříd byly nahrazeny knihovnami .NET Standard. Veškerý vzorový kód z knihy byl převeden na použití standardních knihoven .NET.

Uvedení Xamarin.Forms

Při cílení na více mobilních platforem Xamarin.Forms umožňuje ještě více sdílení kódu. Jeden program napsaný pro Xamarin.Forms tyto platformy může cílit na tyto platformy:

  • iOS pro programy, které běží na iPhonu, iPadu a iPodu touch
  • Android pro programy, které běží na telefonech a tabletech s Androidem
  • Univerzální platforma Windows pro cílení na Windows 10

Poznámka:

Xamarin.Forms už nepodporuje Windows 8.1, Windows Phone 8.1 nebo Windows 10 Mobile, ale Xamarin.Forms aplikace běží na stolním počítači s Windows 10. K dispozici je také podpora verze Preview pro platformy Mac, WPF, GTK# a Tizen .

Hromadná Xamarin.Forms část programu existuje v knihovně nebo SAP. Každá z platforem se skládá z zástupných procedur malé aplikace, která volá do tohoto sdíleného kódu.

Rozhraní Xamarin.Forms API se mapují na nativní ovládací prvky na jednotlivých platformách, aby každá platforma zachovala svůj charakteristický vzhled a chování:

Trojitý snímek obrazovky se sdílením vizuálů platformy

Snímky obrazovky zleva doprava zobrazují iPhone a telefon s Androidem:

Na každé obrazovce stránka obsahuje Xamarin.FormsLabel text pro zobrazení textu, Button akce pro zahájení, Switch volbu hodnoty zapnuto/vypnuto a Slider pro zadání hodnoty v rámci souvislého rozsahu. Všechny čtyři z těchto zobrazení jsou děti StackLayout na .ContentPage

K stránce je Xamarin.Forms také připojen panel nástrojů skládající se z několika ToolbarItem objektů. Jsou viditelné jako ikony v horní části obrazovky iOS a Androidu a v dolní části obrazovky Windows 10 Mobile.

Xamarin.Forms podporuje také JAZYK XAML, jazyk Extensible Application Markup Language vyvinutý v Microsoftu pro několik aplikačních platforem. Všechny vizuály výše uvedeného programu jsou definovány v XAML, jak je znázorněno v ukázce PlatformVisuals.

Program Xamarin.Forms může určit, na jaké platformě běží, a odpovídajícím způsobem spouštět jiný kód. Efektivněji můžou vývojáři psát vlastní kód pro různé platformy a spouštět tento kód z Xamarin.Forms programu nezávisle na platformě. Vývojáři můžou také vytvářet další ovládací prvky tím, že zapisují renderery pro každou platformu.

I když Xamarin.Forms je vhodné řešení pro obchodní aplikace nebo pro vytváření prototypů nebo vytvoření rychlé ukázky testování konceptu, je méně ideální pro aplikace, které vyžadují vektorovou grafiku nebo složitou interakci s dotykovým ovládáním.

Vaše vývojové prostředí

Vaše vývojové prostředí závisí na platformách, na které chcete cílit, a na počítačích, které chcete použít.

Pokud chcete cílit na iOS, budete potřebovat Mac s Xcode a nainstalovanou platformou Xamarin. Podpora Androidu také vyžaduje instalaci Javy a požadovaných sad SDK. Pak můžete cílit na iOS i Android pomocí Visual Studio pro Mac.

Instalace sady Visual Studio umožňuje na počítači, na který cílíte na platformy iOS, Android a všechny platformy Windows. Cílení na iOS ze sady Visual Studio ale stále vyžaduje Mac s Xcode a nainstalovanou platformou Xamarin.

Programy můžete testovat buď na skutečném zařízení připojeném přes USB k počítači, nebo na simulátoru.

Instalace

Před vytvořením a sestavením Xamarin.Forms aplikace byste se měli pokusit vytvořit a sestavit samostatně aplikaci pro iOS, aplikaci pro Android a aplikaci pro UPW v závislosti na platformách, na které chcete cílit, a na vývojovém prostředí.

Weby Xamarin a Microsoft obsahují informace o tom, jak to udělat:

Jakmile můžete vytvářet a spouštět projekty pro tyto jednotlivé platformy, neměli byste mít žádný problém s vytvořením a spuštěním Xamarin.Forms aplikace.