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:
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.