Alles, was Sie wissen müssen, bevor Sie mit der Xamarin-Entwicklung beginnen [Ausgabe 2020]

 Shankar Madeshvaran
Shankar Madeshvaran

Folgen

2. Dezember 2019 · 12 min Lesezeit

Planen Sie eine plattformübergreifende Android-, iOS- oder Windows-App zu erstellen? Bevor Sie in die Xamarin-Entwicklung eintauchen, sollten Sie sich die verschiedenen Funktionen ansehen, die das Entwicklungsframework zu bieten hat.

Xamarin ist eines der ältesten verfügbaren plattformübergreifenden Frameworks. Die 2011 gegründete Xamarin-Community ist auf 1,4 Millionen Entwickler in 120 Ländern angewachsen. Das Projekt wurde 2016 von Microsoft übernommen und wurde Teil seiner Visual Studio-IDE.

Die Technologie wird hauptsächlich in Unternehmensumgebungen eingesetzt und hat im Laufe der Jahre viele positive Bewertungen erhalten. Xamarin wird von über 15.000 Unternehmen in Bereichen wie Energie, Transport, Gesundheitswesen und anderen eingesetzt.

2) Was ist Xamarin?

Xamarin ist eine Open-Source-Plattform zum Erstellen moderner und performanter Anwendungen für iOS, Android und Windows mit .NET. Xamarin ist eine Abstraktionsschicht, die die Kommunikation von gemeinsam genutztem Code mit dem zugrunde liegenden Plattformcode verwaltet. Xamarin wird in einer verwalteten Umgebung ausgeführt, die Annehmlichkeiten wie Speicherzuweisung und Speicherbereinigung bietet.

Xamarin – Single Code Base für iOS-, Android- und Windows-Anwendungen

Xamarin-Anwendungen können auf PC oder Mac geschrieben und in native Anwendungspakete wie an kompiliert werden .apk-Datei auf Android, oder ein .ipa-Datei auf iOS.

C # und XAML

  • Xamarin ist eine Plattform zum Erstellen von Multi-OS-Apps
  • Sie können eine einzelne Anwendung erstellen, die auf iOS, Android und Windows Phone funktioniert.
  • Um diese Anwendungen zu entwickeln, verwenden Sie C# und XAML.
  • XAML fungiert als Markup- und Datenbindungssprache für die Telefon-App, und C # fungiert als serverseitige Sprache.

3) Funktionsweise von Xamarin

Mit Xamarin können Entwickler native Anwendungen für Android-, iOS- und Windows Phone-Plattformen mit einer einzigen Codebasis, dh C#, und einer einzigen IDE, dh Visual Studio, entwickeln . So kann ein Entwickler native mobile Anwendungen entwickeln, ohne Java, Kotlin, Objective-C oder Swift zu kennen. Das bedeutet, dass der gesamte C # -Code konvertiert werden muss, damit er auf diesen drei separaten Plattformen funktioniert.

Xamarin-Versprechen:

  • Xamarin bietet eine native Benutzeroberfläche.
  • Xamarin bietet nativen API-Zugriff.
  • Xamarin bietet native Leistung.

Xamarin-Forms Architecture

Mit Xamarin können Sie auf jeder Plattform native Benutzeroberflächen erstellen und Geschäftslogik in C # schreiben, die plattformübergreifend gemeinsam genutzt wird. In den meisten Fällen können 80% des Anwendungscodes mit Xamarin gemeinsam genutzt werden.

Xamarin übersetzt oder kompiliert Ihren gesamten C # -Code in den entsprechenden plattformspezifischen Code

Xamarin basiert auf Mono, einer Open-Source-Version von .NET Framework, die auf den .NET ECMA-Standards basiert.

Mono existiert fast so lange wie das .NET Framework selbst und läuft auf den meisten Plattformen, einschließlich Linux, Unix, FreeBSD und macOS. Die Mono-Ausführungsumgebung übernimmt automatisch Aufgaben wie Speicherzuweisung, Garbage Collection und Interoperabilität mit zugrunde liegenden Plattformen.

Xamarin Forms Architektur

Xamarin.Android-Architektur

Für Android nutzt Xamarin die JIT-Kompilierung (Just In Time), um eine optimierte ausführbare Datei zu erstellen.

Xamarin.Android-Anwendungen werden in der Mono-Ausführungsumgebung ausgeführt. Diese Ausführungsumgebung wird Seite an Seite mit der virtuellen Maschine Android Run Time (ART) ausgeführt.

Beide Laufzeitumgebungen werden auf dem Linux-Kernel ausgeführt und stellen APIs dem Code zur Verfügung, der den Zugriff auf das zugrunde liegende System ermöglicht.

Xamarin.Android-Anwendungen enthalten auch die aufrufbaren Android-Wrapper (ACW), mit denen Android verwalteten Code aufrufen kann.

Verwaltete aufrufbare Wrapper (MCW) werden immer dann verwendet, wenn verwalteter Code Android-APIs aufrufen muss.

Diagramm von Mono und ART über dem Kernel und unter .NET / Java + Bindings

Xamarin.iOS-Architektur

Für iOS bietet Xamarin eine vollständig kompilierte (AOT — Ahead of Time) Binärdatei, die direkt auf Ihrem Gerät ausgeführt wird, um native Leistung bereitzustellen.

Xamarin.iOS stellt eine C # / CIL-Bindung für die Cocoa Touch-API bereit und bietet außerdem Zugriff auf ECMA CIL-APIs und verschiedene andere .NET-APIs.

Xamarin.iOS wird in der Mono-Ausführungsumgebung ausgeführt und verwendet die vollständige AOT-Kompilierung, um C # -Code in Assemblersprache zu kompilieren. Dies läuft Seite an Seite mit der Objective-C-Laufzeit. Beide Laufzeitumgebungen werden auf einem UNIX-ähnlichen Kernel, insbesondere XNU, ausgeführt und stellen dem Benutzercode verschiedene APIs zur Verfügung, mit denen Entwickler auf das zugrunde liegende native oder verwaltete System zugreifen können.

Xamarin.iOS verwendet stattdessen einen AOT-Compiler (Ahead of Time), um den verwalteten Code zu kompilieren. Dadurch wird eine native iOS-Binärdatei erstellt, die optional mit LLVM für Geräte optimiert ist und auf dem ARM-basierten Prozessor von Apple bereitgestellt werden kann.

4) Systemanforderungen

  • Betriebssystem — macOS Mojave (10.14)
  • Entwicklungsumgebung — Visual Studio für Mac
  • Xamarin.iOS – Ja und iOS 12 SDK empfohlen
  • Xamarin.Android – Ja und Android 6.0 / API Level 23 empfohlen
  • Xamarin.Formulare – (sowohl iOS als auch Android) — Xamarin.Forms-Apps, die auf macOS erstellt wurden, können iOS-, Android- und macOS-Projekte enthalten, vorbehaltlich der oben genannten SDK-Anforderungen. Xamarin.Forms-Projekte für Windows / UWP können nicht unter macOS
  • Xamarin erstellt werden.Mac – Ja und macOS Mojave (10.14) SDK empfohlen

Windows-Anforderungen:

  • Entwicklungsumgebung – Visual Studio
  • Xamarin.iOS – Ja (mit Mac)
  • Xamarin.Android – Ja
  • Xamarin.Formulare – Android, Windows / UWP (iOS mit Mac-Computer)
  • Xamarin.Mac – Projekt öffnen & nur kompilieren

5) Um Xamarin beherrschen zu können, müssen Sie

  • C # -Sprache lernen: Es ist eine sehr einfach zu erlernende Sprache, die Sie sowieso nicht beherrschen müssen. Es sollte nicht lange dauern.
  • Mobile Entwicklung: Beginnen Sie mit einem (iOS oder Android). Sie müssen verstehen, wie die Plattform funktioniert, wie Sie Controller verwenden, wie Sie Dateien auf dem Gerät speichern und wie Sie alle großartigen Funktionen eines Smartphones nutzen. Es ist ein nie endender Weg, aber selbst die richtigen Grundlagen zu finden, dauert lange und ist schwierig.
  • Architektur: Um das Beste aus Xamarin herauszuholen, sollten Sie so viel Code wie möglich freigeben und Ihre Code & -Lösung richtig gestalten. Es ist viel schwieriger als eine einzelne Anwendung oder zwei verschiedene Codebasen für iOS & Android (obwohl es auf lange Sicht viel besser ist). Ein guter Anfang ist ein tiefes Verständnis von POO und Mustern wie MVC & MVVM.

6) Die Vorteile der Wahl von Xamarin

Hier sind einige der größten Vorteile der Wahl von Xamarin:

  • Ein einziger Tech—Stack für schnellere Entwicklung – Xamarin-basierte Apps wurden mit Visual Studio erstellt und werden in einer einzigen Sprache entwickelt: C #. Xamarin-Apps verwenden C # und gemeinsam genutzte Codebasen, die bis zu 90% der spezifischen Sprache, APIs und Datenstruktur jeder Plattform abdecken und sie in eine .NET-Schicht einschließen, die plattformübergreifende Entwicklung ermöglicht. Durch die Entwicklung in C # und die Möglichkeit von Xamarin, plattformübergreifende Implementierungen durchzuführen, können Entwicklungsteams mit weniger Aufwand viel mehr erreichen.
  • Rapid Prototyping: Mit Xamarin.Darüber hinaus haben Entwickler Zugriff auf ein vollständiges plattformübergreifendes UI-Toolkit, um Schnittstellen zu erstellen, die auf jedem Gerät funktionieren. Dies ermöglicht die Erstellung einer einzigen Benutzeroberfläche für alle Geräte, sodass Entwickler mehr Code freigeben können, ohne die Benutzeroberfläche für jede Plattform ändern zu müssen.
  • Native Leistung und Benutzererfahrung: In Xamarin ist es möglich, auf jede native API zuzugreifen, sodass vollständig native Benutzeroberflächen, Bluetooth, SDKs usw. verwendet werden können. Da Xamarin die system- und hardwarespezifischen APIs voll ausnutzen kann, werden Apps, die mit der Software erstellt wurden, ebenso ausgeführt wie Apps, die in der bevorzugten Sprache jeder Plattform kompiliert wurden. Benutzer können den Unterschied zwischen Ihrer App und einer nativen App nicht erkennen, da es keine gibt.
  • Native Leistung und Benutzererfahrung: In Xamarin ist es möglich, auf jede native API zuzugreifen, sodass vollständig native Benutzeroberflächen, Bluetooth, SDKs usw. verwendet werden können. Da Xamarin die system- und hardwarespezifischen APIs voll ausnutzen kann, werden Apps, die mit der Software erstellt wurden, ebenso ausgeführt wie Apps, die in der bevorzugten Sprache jeder Plattform kompiliert wurden. Benutzer können den Unterschied zwischen Ihrer App und einer nativen App nicht erkennen, da es keine gibt.
  • Verkürzte Markteinführungszeit: Durch das Erstellen von Apps mit gemeinsamen Codebasen entfällt die Zeit, die normalerweise für das Übersetzen, Umschreiben oder Neukompilieren von Code aufgewendet wird, um auf verschiedenen Plattformen zu arbeiten. Dies verkürzt den Entwicklungszyklus um Wochen, Monate und möglicherweise Jahre, sodass Apps für alle drei großen Plattformen gleichzeitig entwickelt werden können. Und weil diese Apps zusammen gebaut werden, bedeutet dies, dass die Feature—Parität nicht langsam von Ihrer beliebtesten Plattform auf Ihre am wenigsten herunterkommt – sie sind bereit für die Bereitstellung auf allen Ihren Plattformen gleichzeitig.
  • Weniger Wartung: Die Wartung und Aktualisierung von Apps, die mit Xamarin erstellt wurden, erfordert weniger Arbeit. Sobald Sie Änderungen an unserer Quelldatei vorgenommen haben, können diese direkt auf Ihre Apps angewendet werden, sodass Sie den Quellcode Ihrer Apps nicht mehr einzeln aktualisieren müssen, falls Updates, Fehlerbehebungen oder neue Funktionen erforderlich werden.
  • Apps für alle Plattformen: Was passiert, wenn Sie eine Killer-Desktop-App haben, die eine mobile Version benötigt oder umgekehrt? Mit Xamarin ist das kein Problem — Entwickler können Apps für mobile und Desktop-Erlebnisse gleichzeitig erstellen. Dies hilft auch den Entwicklungsteams, sich nicht mehr entscheiden zu müssen, ob sie nur für eine einzige Plattform entwickeln möchten, da Android, iOS und Windows gleichzeitig gehandhabt werden können.
  • Einfach zu aktualisieren. Xamarin nutzt native Frameworks und normalerweise dauert es 1-3 Tage für iOS- und Android-Plattformen, um die neuesten Funktionen zu erhalten. Aus diesem Grund können neue plattformspezifische Funktionen sofort in Ihre App eingeführt werden, sobald Xamarin aktualisiert wurde.

7) Die Nachteile der Wahl von Xamarin

  • Es ist teuer für Unternehmen. Xamarin ist für Einzelpersonen und kleine Unternehmen kostenlos, Unternehmen müssen jedoch eine Lizenz für Microsoft Visual Studio erwerben. Für den Bare-Bones-Zugriff auf Visual Studio ohne erweiterte Azure DevOps-Funktionen oder Cloud-Dienste beginnen Einzelbenutzerlizenzen bei 499 US-Dollar. Unternehmensbenutzer, die alle Schnickschnack benötigen, zahlen bis zu 2.999 US-Dollar für ein Jahresabonnement für Visual Studio Enterprise.
  • Kompliziert, alle Open-Source-Bibliotheken zu verwenden. Während Xamarin die meisten unterstützt.Net-Bibliotheken, es unterstützt nicht alle verfügbaren 3rd-Party-Bibliotheken für Android und iOS ohne spezifische Wrapper.
  • Nicht geeignet für Apps mit starker Grafik. Jede Plattform verfügt über eine andere Methode zum visuellen Auslegen von Bildschirmen.Wenn die Anwendung über eine reichhaltige UX / UI verfügt, sollte sie nativ implementiert werden.
  • Größere App-Größe. Xamarin fügt 3-5 Megabyte für die Veröffentlichung und rund 20 Megabyte für Debug-Builds hinzu.

8) Xamarin Vergleich mit anderen Cross-Plattformen (Xamarin vs Flutter vs React NativeApp)

App-Geschwindigkeit ist immer ein Anliegen für die App-Besitzer, so dass es schnell und reaktionsschnell sein muss. Flutter bietet eine schnellere App-Entwicklung mit einer schnelleren App-Geschwindigkeit am Ausgang. Andere Plattformen wie React Native und Xamarin schneiden auch in der App-Geschwindigkeit besser ab, sind jedoch im Vergleich zum Flattern etwas langsamer. Die App-Geschwindigkeit hängt auch vom Entwicklungsprozess, den Funktionen, Features und anderen Begriffen ab, so dass es schwierig ist, sie sofort zu vergleichen, aber wir können The Flutter als schnelleres plattformübergreifendes App-Entwicklungsframework abschließen.

Community-Support:

Community-Support wurde entwickelt, um Unterstützung zu geben und auf Probleme im Zusammenhang mit dem Framework hinzuweisen. Während wir über Community-Support sprechen, hat Xamarin im Wettbewerb verloren, weil es nur begrenzte Community-Unterstützung hat. Auf der anderen Seite haben React Native und Flutter eine bessere Community, um Probleme zu lösen und es für die Benutzer besser zu machen. Laut GitHub hat React Native im Vergleich zum Flutter mehr Stars und Follower. Wir können also sagen, dass React Native der klare Gewinner in Bezug auf die Unterstützung durch die Community ist.

Sicherheit:

Die Sicherheit des Quellcodes und der Anwendung ist ein Muss, weshalb die Sicherheit in der Prioritätsaktion für alle plattformübergreifenden Entwickler aufgeführt ist. Wie bereits erwähnt, unterstützt React Native Plugins von Drittanbietern und verfügt nicht über robuste Sicherheitsunterstützung. Reagieren Native verlieren das Rennen der Sicherheit, so lassen Sie uns über andere Cross-Plattformen sprechen. Flutter- und Xamarin-basierte Apps sind robust und mit Security Access kompatibel.

Anpassung:

Wie wir wissen, ermöglicht React Native Plugins von Drittanbietern, was einfach bedeutet, dass die Anpassung mit React Native einfach und mit Flux kompatibel ist. Die Hot Reload-Funktion von Flutter und die Xamarin Live Reload-Funktion ermöglichen beiden Plattformen Live-Änderungen in der laufenden Entwicklung. Flutter und Xamarin verfügen über vorinstallierte Layoutelemente, die einfach die Freiheit der Anpassung bei der plattformübergreifenden App-Entwicklung anzeigen.

Benutzerfreundlichkeit durch Entwickler:

Der Xamarin basiert auf dem C #, das einfach und leicht zu erlernen ist. Flutter arbeitet an Dart, einer objektorientierten Programmierung, die auch für Anfänger leicht zu erlernen ist. React Native in Java codiert, die in jeder Entwicklung am weitesten verbreitet ist, so dass die Arbeit an Java für jeden Entwickler ein Kinderspiel ist. Am Ende sind Xamarin und React Native das am einfachsten zugängliche plattformübergreifende App-Entwicklungsframework.

Beliebtheit:

Laut Xamarin wird das plattformübergreifende Tool von über 1,4 Millionen Entwicklern weltweit verwendet. Darüber hinaus werden Xamarin-Produkte von über 15.000 Unternehmen aus über 120 Ländern in verschiedenen Branchen wie Medien, Transport, Finanzen, Gesundheitswesen und Gaming eingesetzt. Aufgrund seiner Fähigkeit, nativen UI-Code für die App-Entwicklung zu schreiben, verwenden viele beliebte Marken Xamarin für die Erstellung ihrer Anwendung. Xamarin entwickelt native Codes, ist jedoch nicht kostenlos und wird daher für Premium-Benutzer in Betracht gezogen. Da die meisten Entwickler Xamarin verwenden, verlassen sich dennoch viele Entwickler auf Flutter und React Native.

Beliebte Apps, die React Native, Xamarin und Flutter verwendeten

  • Walmart
  • SoundCloud
  • Bloomberg
  • Instagram

Xamarin-Plattform

  • Storyo
  • Überriese Spiele
  • Die Weltbank
  • APX
  • Schädel der Shogun

Flattern Plattform

  • Alibaba
  • Hamilton Musical
  • Google AdWords
  • App-Baum
  • Google Greentea

9) Warum Xamarin für die App-Entwicklung gegenüber React Native & Flutter wählen?

Xamarin ist mit robusten Emulatoren ausgestattet, die für verschiedene mobile Plattformen geeignet sind, und dies ist ein wichtiger Grund, warum sich viele Unternehmen auf dieses plattformübergreifende App-Entwicklungsframework verlassen. Xamarin bietet mehrere Optionen zum Debuggen mit der Freiheit, vom Desktop, Emulator oder direkt auf dem Gerät aus zu überprüfen. Hier sind einige der bemerkenswerten Funktionen dieses Frameworks, die Entwickler genießen.

  • Leistung: Das Leistungsniveau von Apps ist im Vergleich zu hybriden oder anderen plattformübergreifenden Entwicklungstools sehr wettbewerbsfähig. Das Laden von Bildern ist im Vergleich zu anderen Plattformen um 14% schneller und die Bildspeichergeschwindigkeit ist ebenfalls superschnell.
  • Entwicklungsgeschwindigkeit: Xamarin enthält eine Bibliothek mit Vorlagen, die die Verwendung von Standardschnittstellenelementen ermöglicht. Entwickler genießen es, wenn der Übergang zur Entwicklungsgeschwindigkeit mit Xamarin schneller ist.
  • Gemeinsam nutzbarer Code: Entwickler sind mit der Funktion ausgestattet, C # -Code zu schreiben, der plattformübergreifend ausgeführt werden kann. PCL (Portable Class Libraries), freigegebene Projekte und .Net-Standardbibliotheken erleichtern die gemeinsame Nutzung von Code. Hinzufügen von mehr Wert auf diese Funktion, die Xamarin.forms Framework macht es möglich, den gleichen Code auf mehreren anderen Plattformen zu teilen.
  • Native UX: Es ist mit verschiedenen Betriebssystemen kompatibel und ermöglicht Entwicklern ein natives Aussehen, unabhängig davon, ob sie die App für Android oder iOS entwickeln.
  • Open Source: Xamarin ist ein kostenloses Open-Source-Tool, das mit Microsofts Entwicklungsumgebung Visual Studio geliefert wird. Es gibt Ihnen die Freiheit, integrierte Tools für die manuelle Anpassung zusammen mit einer Option zur Wiederverwendung der Codes zu verwenden.
  • Einfallsreich: Entwickler können in die Tiefe gehen, wenn sie verstehen wollen, wie genau die Plattform funktioniert. Xamarin gehört Microsoft und die Plattform konzentriert sich auf die Vereinfachung des plattformübergreifenden App-Entwicklungsprozesses.

Xamarin enthält eine Zusammenstellung von Tools wie Xamarin.mac, Xamarin.insights und Xamarin.in: testcloud.

Sie haben die volle Freiheit, Mac-Apps zu erstellen, Apps anhand von Erkenntnissen zu analysieren und automatisierte Tests mit der Xamarin Test Cloud durchzuführen.

10) Warum ist Xamarin ein Gewinn?

Wenn Sie ein Entwickler sind, der eine Ahnung davon hat, dass Apps für mehrere Plattformen entwickelt werden müssen, ist Xamarin eines der besten verfügbaren Tools, um Ihnen das Leben zu erleichtern.

Xamarin bietet eine Reihe umfangreicher Funktionen. In Verbindung mit einer ständig wachsenden Community von Entwicklern ist es zu einem persönlichen Favoriten erfahrener und neuer Entwickler geworden, wenn es um die Verwendung eines plattformübergreifenden Entwicklungsframeworks geht.

Dank der leistungsstarken C # -Umgebung von Xamarin, nativen und plattformübergreifenden Bibliotheken und APIs sowie der einfachen Bereitstellung ist es die beste Wahl, um Android-, iOS- und Windows-Apps synchron zu halten. Dies wiederum reduziert die Gesamtzeit der Entwicklung und bringt Ihren Benutzern neue Funktionen schneller.

Der Ansatz ist so einfach wie write once run anywhere . Sie können die Entwicklungsphasen während enger Fristen überspringen.Es wird erwartet, dass die Community viele Anwendungsupdates von Xamarin erhält.

Unternehmen können dieses Framework übernehmen, da keine nativen iOS- und Andriod-Plattformen erforderlich sind.Dieses Tool kann die App-Entwicklung auf die nächste Ebene erweitern und ist leicht zugänglich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.