Část 3 – Nastavení multiplatformních řešení Xamarinu
Bez ohledu na to, jaké platformy se používají, všechny projekty Xamarin používají stejný formát souboru řešení (formát souboru sady Visual Studio .sln ). Řešení se dají sdílet napříč vývojovými prostředími, i když se jednotlivé projekty nedají načíst (například projekt Windows v Visual Studio pro Mac).
Při vytváření nové multiplatformní aplikace je prvním krokem vytvoření prázdného řešení. Tato část vysvětluje, co se stane dál: nastavení projektů pro vytváření mobilních aplikací pro různé platformy.
Sdílení kódu
Podrobný popis implementace sdílení kódu napříč platformami najdete v dokumentu Možnosti sdílení kódu.
.NET Standard
Projekty .NET Standard poskytují snadný způsob sdílení kódu napříč platformami a vytvářejí sestavení, která se dají používat napříč platformami Windows, Xamarin (iOS, Android, Mac) a Linuxem. Toto je doporučený způsob sdílení kódu pro řešení Xamarin.
Další možnosti
Xamarin používal knihovny přenosných tříd (PCLS) a sdílené projekty. Pro nové projekty se nedoporučuje žádná z těchto možností; a měli byste zvážit migraci stávajících aplikací, aby používaly .NET Standard.
Naplnění řešení
Bez ohledu na to, jakou metodu se používá ke sdílení kódu, by celková struktura řešení měla implementovat vrstvenou architekturu, která podporuje sdílení kódu. Přístup Xamarin je seskupit kód do dvou typů projektů:
- Základní projekt (nebo "Sdílený") – na jednom místě můžete napsat opakovaně použitelný kód, který se má sdílet na různých platformách. Pomocí principů zapouzdření skryjte podrobnosti implementace, kdykoli je to možné.
- Projekty aplikací specifické pro platformu – Spotřebujte opakovaně použitelný kód s co nejmenším párováním. Na této úrovni se přidávají funkce specifické pro platformu, které jsou postavené na komponentách vystavených v projektu Core.
Základní projekt
Základní projekty, které sdílejí kód, by měly být .NET Standard a pouze referenční sestavení, která jsou k dispozici na všech platformách – tj. společné obory názvů rozhraní jako System
a System.Core
System.Xml
.
Základní projekty by měly implementovat co nejvíce funkcí bez uživatelského rozhraní, které by mohly zahrnovat následující vrstvy:
- Datová vrstva – kód, který se stará o fyzické úložiště dat, např. SQLite-NET nebo dokonce xml soubory. Třídy datové vrstvy se obvykle používají pouze vrstvou přístupu k datům.
- Vrstva přístupu k datům – definuje rozhraní API, které podporuje požadované operace s daty pro funkce aplikace, jako jsou metody pro přístup k seznamům dat, jednotlivé datové položky a také vytvářet, upravovat a odstraňovat.
- Vrstva přístupu ke službám – volitelná vrstva pro poskytování cloudových služeb aplikaci. Obsahuje kód, který přistupuje ke vzdáleným síťovým prostředkům (webové služby, stahování imagí atd.) a případně ukládání výsledků do mezipaměti.
- Obchodní vrstva – definice tříd modelu a tříd Façade nebo Manager, které zpřístupňují funkce pro aplikace specifické pro platformu.
Projekty aplikací pro konkrétní platformu
Projekty specifické pro platformu musí odkazovat na sestavení potřebná k vytvoření vazby k sadě SDK každé platformy (Xamarin.iOS, Xamarin.Android, Xamarin.Mac nebo Windows) a také k projektu .NET Standard.
Projekty specifické pro platformu by měly implementovat:
- Aplikační vrstva – funkce specifické pro platformu a vazby /převod mezi objekty obchodní vrstvy a uživatelským rozhraním.
- Vrstva uživatelského rozhraní – obrazovky, vlastní ovládací prvky uživatelského rozhraní, prezentace logiky ověřování.
Odkazy na projekty
Odkazy na projekt odrážejí závislosti pro projekt. Základní projekty omezují odkazy na běžná sestavení tak, aby se kód snadno sdílel. Projekty aplikací specifické pro platformu odkazují na projekt .NET Standard a všechna další sestavení specifická pro platformu, která potřebují využívat výhod cílové platformy.
Konkrétní příklady strukturování projektů jsou uvedeny v případových studiích.
Přidání souborů
Akce sestavení
Pro určité typy souborů je důležité nastavit správnou akci sestavení. Tento seznam ukazuje akci sestavení pro některé běžné typy souborů:
- Všechny soubory jazyka C# – akce sestavení: Kompilace
- Obrázky v Xamarin.iOS a Windows – akce sestavení: Obsah
- Soubory XIB a Storyboard v Xamarin.iOS – Akce sestavení: InterfaceDefinition
- Obrázky a rozložení XML v Androidu – Akce sestavení: AndroidResource
- Soubory XAML v projektech Windows – akce sestavení: Stránka
- Soubory XAML Xamarin.Forms – akce sestavení: EmbeddedResource
Obecně platí, že integrované vývojové prostředí (IDE) rozpozná typ souboru a navrhne správnou akci sestavení.
Rozlišování malých a velkých písmen
Nezapomeňte, že některé platformy mají systémy souborů s rozlišováním velkých a malých písmen (např. iOS a Android), proto nezapomeňte použít konzistentní standard pojmenování souborů a ujistěte se, že názvy souborů, které používáte v kódu, přesně odpovídají systému souborů. To je zvlášť důležité pro obrázky a další prostředky, na které odkazujete v kódu.