Omówienie tworzenia aplikacji międzyplatformowych
W tym przewodniku przedstawiono najpierw platformę Xamarin. Omówi on sposób tworzenia architektury aplikacji międzyplatformowej w celu zmaksymalizowania ponownego użycia kodu. Na koniec, jak zapewnić wysokiej jakości środowisko natywne na platformach mobilnych iOS i Android.
Podejście używane w tym dokumencie może służyć zarówno dla aplikacji zwiększających produktywność, jak i aplikacji do gier, jednak koncentruje się na produktywności i narzędziu (aplikacje inne niż gry). Zobacz Visual Studio Tools for Unity , aby uzyskać wskazówki dotyczące tworzenia gier międzyplatformowych.
Fraza "write-once, runwhere" jest często używana do wychwytywać zalety pojedynczej bazy kodu, która działa niezmodyfikowane na wielu platformach. Chociaż ma ona korzyść z ponownego użycia kodu, takie podejście ma wady. Dwie typowe wady to aplikacje, które mają najniższy wspólny mianownik zestawu funkcji, oraz ogólny interfejs użytkownika, który nie pasuje ładnie do żadnej z platform docelowych.
Platforma Xamarin nie jest tylko "jednorazowym zapisem, uruchamiana wszędzie", ponieważ jedną z jego zalet jest możliwość implementowania natywnych interfejsów użytkownika przeznaczonych specjalnie dla każdej platformy. Jednak z przemyślanym projektem nadal można udostępniać większość kodu interfejsu użytkownika i uzyskać najlepsze z obu światów. Zapisz raz magazyn danych i kod logiki biznesowej oraz przedstawić natywne interfejsy użytkownika na każdej platformie. W tym dokumencie omówiono ogólne podejście architektoniczne do osiągnięcia tego celu.
Oto podsumowanie najważniejszych punktów tworzenia aplikacji międzyplatformowych platformY Xamarin:
- Korzystanie z języka C# — pisanie aplikacji w języku C#. Istniejący kod napisany w języku C# można łatwo przenosić do systemów iOS i Android przy użyciu platformy Xamarin i używać ich w aplikacjach systemu Windows.
- Korzystanie z wzorców projektowych MVC lub MVVM — twórz interfejs użytkownika aplikacji przy użyciu wzorca Model/View/Controller. Utwórz architekturę aplikacji przy użyciu podejścia model/widoku/kontrolera lub podejścia Model/Widok/Model/ViewModel, w którym istnieje wyraźna separacja między modelem a resztą. Ustal, które części aplikacji będą używać natywnych elementów interfejsu użytkownika każdej platformy (iOS, Android, Windows, Mac), i użyj jej jako wskazówek, aby podzielić aplikację na dwa składniki: "Core" i "User-Interface".
- Tworzenie natywnych interfejsów użytkownika — każda aplikacja specyficzna dla systemu operacyjnego udostępnia inną warstwę interfejsu użytkownika (zaimplementowaną w języku C# przy użyciu natywnych narzędzi projektowych interfejsu użytkownika):
- W systemie iOS użyj interfejsów API zestawu UIKit, aby utworzyć aplikacje z wyglądem natywnym przy użyciu scenorysów dla warstwy prezentacji utworzonej w środowisku Xcode.
- W systemie Android użyj funkcji Android.Views, aby utworzyć aplikacje w wyglądzie natywnym, korzystając z projektanta interfejsu użytkownika platformy Xamarin.
- W systemie Windows będziesz używać języka XAML na potrzeby warstwy prezentacji utworzonej w programie Visual Studio lub projektancie interfejsu użytkownika programu Blend.
- Na komputerze Mac użyjesz scenorysów dla warstwy prezentacji utworzonej w środowisku Xcode.
Projekty platformy Xamarin.Forms są obsługiwane na wszystkich platformach i umożliwiają tworzenie interfejsów użytkownika, które można udostępniać na różnych platformach przy użyciu języka XAML zestawu narzędzi Xamarin.Forms.
Ilość ponownego użycia kodu będzie zależeć w dużej mierze od ilości kodu przechowywanego w udostępnionym rdzeniu i ilości kodu specyficznego dla interfejsu użytkownika. Podstawowy kod to wszystko, co nie współdziała bezpośrednio z użytkownikiem, ale zamiast tego udostępnia usługi dla części aplikacji, które będą zbierać i wyświetlać te informacje.
Aby zwiększyć ilość ponownego użycia kodu, można wdrożyć międzyplatformowe składniki, które zapewniają wspólne usługi we wszystkich tych systemach, takich jak:
- SQLite-net dla lokalnego magazynu SQL,
- Wtyczki platformy Xamarin do uzyskiwania dostępu do funkcji specyficznych dla urządzenia, w tym aparatu, kontaktów i geolokalizacji,
- Pakiety NuGet zgodne z projektami platformy Xamarin, takie jak Json.NET,
- Korzystanie z funkcji platformy .NET Framework dla sieci, usług internetowych, operacji we/wy i innych.
Niektóre z tych składników są implementowane w analizie przypadku Tasky .
Oddzielanie kodu wielokrotnego użytku do podstawowej biblioteki
Postępując zgodnie z zasadą rozdzielenia odpowiedzialności przez warstwowanie architektury aplikacji, a następnie przeniesienie podstawowych funkcji, które są niezależne od platformy do podstawowej biblioteki wielokrotnego użytku, można zmaksymalizować udostępnianie kodu na różnych platformach, jak pokazano na poniższym rysunku:
Analizy przypadków
Istnieje jedna analiza przypadku, która towarzyszy temu dokumentowi — Tasky Pro. Każda analiza przypadku omawia implementację pojęć opisanych w tym dokumencie w rzeczywistym przykładzie. Kod jest typu open source i dostępny w witrynie github.