Udostępnij za pośrednictwem


Podsumowanie rozdziału 1. W jaki sposób Xamarin.Forms pasuje?

Uwaga

Ta książka została opublikowana wiosną 2016 roku i od tego czasu nie została zaktualizowana. Jest wiele w książce, która pozostaje cenna, ale niektóre materiały są nieaktualne, a niektóre tematy nie są już całkowicie poprawne ani kompletne.

Jednym z najbardziej nieprzyjemnych zadań w programowaniu jest przenoszenie bazy kodu z jednej platformy do innej, szczególnie jeśli ta platforma obejmuje inny język programowania. Istnieje pokusa podczas przenoszenia kodu do refaktoryzacji, ale jeśli obie platformy muszą być obsługiwane równolegle, różnice między dwiema bazami kodu utrudnią przyszłą konserwację.

Programowanie aplikacji mobilnych dla wielu platform

Ten problem jest typowy podczas określania docelowych platform mobilnych. Obecnie istnieją dwie główne platformy mobilne, rodzina urządzeń iPhone i iPad firmy Apple z systemem operacyjnym iOS oraz system operacyjny Android działający na różnych telefonach i tabletach. Inną znaczącą platformą jest platforma uniwersalna systemu Windows firmy Microsoft (UWP), która pozwala jednemu programowi na korzystanie z systemu Windows 10.

Dostawca oprogramowania, który chce kierować te platformy, musi radzić sobie z różnymi paradygmatami interfejsu użytkownika, trzema różnymi środowiskami programistycznymi, trzema różnymi interfejsami programowania i — być może najbardziej niezręcznie — trzema różnymi językami programowania: Objective-C dla urządzeń iPhone i iPad, Java dla systemu Android i C# dla systemu Windows.

Rozwiązanie C# i .NET

Mimo że język Objective-C, Java i C# pochodzą z języka programowania C, ewoluowały one przez bardzo różne ścieżki. Język C# jest najnowszym z tych języków i dojrzewa w bardzo przydatny sposób. Ponadto język C# jest ściśle skojarzony z całą infrastrukturą programowania o nazwie .NET, która zapewnia obsługę obliczeń matematycznych, debugowania, odbicia, kolekcji, globalizacji, operacji we/wy plików, sieci, zabezpieczeń, wątków, usług internetowych, obsługi danych oraz odczytu i zapisu w formacie XML i JSON.

Platforma Xamarin udostępnia obecnie narzędzia przeznaczone dla natywnych interfejsów API dla komputerów Mac, iOS i Android przy użyciu języków C# i .NET. Te narzędzia są określane zbiorczo jako platforma Xamarin.Mac, Xamarin.iOS i Xamarin.Android. Są to biblioteki i powiązania, które wyrażają natywne interfejsy API tych platform za pomocą idiomów platformy .NET.

Deweloperzy mogą używać platformy Xamarin do pisania aplikacji w języku C# przeznaczonych dla komputerów Mac, iOS lub Android. Jednak w przypadku kierowania na więcej niż jedną platformę warto udostępnić część kodu na platformach docelowych. Obejmuje to rozdzielenie programu na kod zależny od platformy (zazwyczaj obejmujący interfejs użytkownika) i niezależny od platformy kod, który zazwyczaj wymaga tylko podstawowej platformy .NET Framework. Ten niezależny od platformy kod może znajdować się w bibliotece klas przenośnych (PCL) lub w projekcie udostępnionym, często nazywanym projektem udostępnionego zasobu lub oprogramowaniem SAP.

Uwaga

Biblioteki klas przenośnych zostały zastąpione przez biblioteki .NET Standard. Cały przykładowy kod z książki został przekonwertowany w celu używania bibliotek standardowych platformy .NET.

Przedstawiamy Xamarin.Forms

W przypadku kierowania na wiele platform Xamarin.Forms mobilnych umożliwia jeszcze większe udostępnianie kodu. Pojedynczy program napisany dla programu może być przeznaczony dla Xamarin.Forms następujących platform:

  • System iOS dla programów uruchamianych na telefonach iPhone, iPad i iPod Touch
  • System Android dla programów uruchamianych na telefonach i tabletach z systemem Android
  • platforma uniwersalna systemu Windows docelowy system Windows 10

Uwaga

Xamarin.Forms nie obsługuje już systemu Windows 8.1, Windows Phone 8.1 lub Windows 10 Mobile, ale Xamarin.Forms aplikacje działają na pulpicie systemu Windows 10. Dostępna jest również obsługa wersji zapoznawczej dla platform Mac, WPF, GTK# i Tizen .

Większość Xamarin.Forms programu istnieje w bibliotece lub oprogramowaniu SAP. Każda z platform składa się z małego wycinku aplikacji, który wywołuje ten udostępniony kod.

Interfejsy Xamarin.Forms API są mapowe na kontrolki natywne na każdej platformie, dzięki czemu każda platforma zachowuje swój charakterystyczny wygląd i działanie:

Zrzut ekranu przedstawiający udostępnianie wizualizacji platformy

Zrzuty ekranu od lewej do prawej pokazują telefon iPhone i telefon z systemem Android:

Na każdym ekranie strona zawiera Xamarin.FormsLabel element do wyświetlania tekstu, a Button do inicjowania akcji, do Switch wybierania wartości włączonej/wyłączonej oraz do Slider określania wartości w zakresie ciągłym. Wszystkie cztery z tych widoków są dziećmi StackLayout obiektu na .ContentPage

Również dołączony do strony jest paskiem Xamarin.Forms narzędzi składającym się z kilku ToolbarItem obiektów. Są one widoczne jako ikony w górnej części ekranów systemów iOS i Android oraz w dolnej części ekranu systemu Windows 10 Mobile.

Xamarin.Forms Obsługuje również język XAML, rozszerzalny język znaczników aplikacji opracowany w firmie Microsoft dla kilku platform aplikacji. Wszystkie wizualizacje programu pokazanego powyżej są zdefiniowane w języku XAML, jak pokazano w przykładzie PlatformVisuals .

Program Xamarin.Forms może określić, na jakiej platformie działa, i odpowiednio wykonać inny kod. Wydajniej deweloperzy mogą pisać niestandardowy kod dla różnych platform i uruchamiać ten kod z poziomu programu w sposób niezależny od Xamarin.Forms platformy. Deweloperzy mogą również tworzyć dodatkowe kontrolki, pisząc programy renderowane dla każdej platformy.

Chociaż Xamarin.Forms jest dobrym rozwiązaniem dla aplikacji biznesowych lub tworzenia prototypów lub szybkiego pokazu weryfikacji koncepcji, jest to mniej idealne rozwiązanie dla aplikacji wymagających wektorowej grafiki lub złożonej interakcji dotykowej.

Środowisko projektowe

Środowisko programistyczne zależy od platform docelowych i maszyn, których chcesz użyć.

Jeśli chcesz kierować do systemu iOS, musisz mieć komputer Mac z zainstalowanym oprogramowaniem Xcode i platformą Xamarin. Obsługa systemu Android wymaga również zainstalowania języka Java i wymaganych zestawów SDK. Następnie można kierować do systemów iOS i Android przy użyciu Visual Studio dla komputerów Mac.

Zainstalowanie programu Visual Studio umożliwia korzystanie z komputera docelowego dla systemów iOS, Android i wszystkich platform systemu Windows. Jednak kierowanie do systemu iOS z programu Visual Studio nadal wymaga komputera Mac z zainstalowanym programem Xcode i platformą Xamarin.

Programy można testować na rzeczywistym urządzeniu podłączonym przez usb do komputera lub w symulatorze.

Instalacja

Przed utworzeniem i utworzeniem Xamarin.Forms aplikacji należy spróbować utworzyć i skompilować oddzielnie aplikację dla systemu iOS, aplikację systemu Android i aplikację platformy UWP w zależności od platform docelowych i środowiska projektowego.

Witryny internetowe platformy Xamarin i firmy Microsoft zawierają informacje na temat tego, jak to zrobić:

Po utworzeniu i uruchomieniu projektów dla tych poszczególnych platform nie powinno być problemu z tworzeniem i uruchamianiem Xamarin.Forms aplikacji.