Apps mit Xamarin entwickeln

Es ist einer der ersten Schritte, wenn wir unsere Kunden beraten: Die Auswahl der Technologie, mit der die App entwickelt werden soll. Eine dieser Technologien ist Xamarin. Die Technologie von Microsoft hat ihre Stärken – vor allem für Apps, die nicht nur für eine einzige Plattform entwickelt werden sollen.

 

von: Benjamin Broll
Geschäftsführer,
bb@next-munich.com

Inhaltsverzeichnis:

  1. Xamarin – was ist das eigentlich?

  2. Was bedeutet Cross-Plattform-Entwicklung mit Xamarin?

  3. Warum wird die Programmiersprache C# verwendet?

  4. Eignet sich Xamarin nur für mobile Betriebssysteme?

  5. Wo genau liegen die Vorteile von Xamarin? 

  6. Gibt es Abhängigkeiten in Bezug auf Know-how, Lizenzen oder Systemsupport?

  7. Werden neue native Funktionen rechtzeitig unterstützt?

  8. Wie hoch sind die faktischen Einsparungen gegenüber einer nativen Entwicklung?

  9. Ist es möglich, die Plattformen iOS und Android unabhängig voneinander zu planen?

  10. Hat Xamarin Auswirkungen auf die Performance meiner App?

  11. Kann Xamarin auf alle nativ angebotenen Funktionen uneingeschränkt zugreifen?

  12. Kann eine Xamarin-App Probleme beim Apple-Store oder Play Store bekommen?

Pro Xamarin

Xamarin hat einen großen Vorteil: Mit dieser Technologie lassen sich große Teile der Entwicklungsergebnisse für alle Plattformen verwenden. Diese Teile müssen daher nur einmal programmiert werden und reduzieren damit den Umfang bei der Programmierung und der Weiterentwicklung einer App.

Contra Xamarin

Es gibt Reibungsverluste, die in der notwendigen engen Abstimmung zwischen geteiltem Code und dem Plattform-spezifischen Code leicht entstehen können. Außerdem führt iOS und Android immer mehr Technologien ein, bei denen Xamarin sich schwer tut, diese zu unterstützen. Allgemein könnte sich dadurch ein Problem für den Einsatz in der Zukunft ergeben.

Im Folgenden sollen die häufigsten Fragen rund um Xamarin beantwortet werden.

 

FAQ's zu Xamarin

Xamarin – was ist das eigentlich?

Xamarin ist ein Startup, das 2016 von Microsoft gekauft wurde. Es wurde mit dem Ziel gegründet, die von Microsoft entwickelte Programmiersprache C# und die dazugehörigen APIs des .NET-Frameworks auch auf mobilen Plattformen nutzbar zu machen.

Was hat es mit Cross-Plattform-Entwicklung auf sich?

Eine Cross-Plattform-Entwicklung macht es möglich, für unterschiedliche Plattformen zu entwickeln. Xamarin ist eine solche Cross-Plattform-Technologie. Sie ermöglicht es, Apps in C# zu programmieren und sowohl unter iOS als auch Android zu veröffentlichen.

Warum wird die Programmiersprache C# verwendet?

C# ist eine elegante, aktiv in Entwicklung befindliche Programmiersprache, die es erleichtert, Anforderungen in Programmcode leicht umzusetzen. Durch ihre große Verbreitung gibt es auch eine große Anzahl an Entwicklern, die mit der Sprache umgehen können.

Eignet sich Xamarin nur für mobile Betriebssysteme?

In der Tat ist Xamarin nicht auf die Verwendung in mobilen Betriebssystemen wie iOS oder Android beschränkt. Mit der gleichen Technologie lassen sich beispielsweise auch Applikationen für macOS realisieren.

Wo genau liegen die Vorteile von Xamarin?

Die Vorteile von Xamarin ergeben sich aus zwei Elementen:

  1. Die Verwendung einer einzigen Programmiersprache zur Umsetzung von Apps für iOS und Android.
  2. Die Möglichkeit, Programmcode zwischen iOS- und Android-Apps zu teilen.

Durch die Verwendung der gleichen Programmiersprache wird es für das Team leichter, sich in allen Bereichen des Projekts zurechtzufinden und dort Änderungen vorzunehmen. So versteht auch ein auf die Android-Entwicklung fokussierter Entwickler den unter iOS verwendeten Programmcode.

Natürlich ist hierfür ein Verständnis der APIs der jeweiligen Plattform notwendig. Es ist aber nicht mehr notwendig, eine neue Programmiersprache zu lernen, um in der jeweiligen Plattform produktiv sein zu können.

Dementsprechend kann der Programmcode also im Team geteilt werden. Das hilft an mehreren Stellen des Projekts weiter. Zunächst muss der jeweilige Code nur einmal entwickelt werden. Und ist geplant, die App langfristig zu pflegen und weiterzuentwickeln, so greifen diese Vorteile natürlich ebenfalls bei jeder neuen Version.

Ein weiterer Vorteil ist, dass der geteilte Code für das gleiche Verhalten der Apps auf beiden Plattformen sorgt. Auch Änderungswünsche oder gefundene Fehler müssen so nur einmal bearbeitet werden. Der Abstimmungsaufwand zwischen zwei sonst separat voneinander agierenden Teams ist somit erheblich kleiner.

Um die Vorteile genießen zu können, braucht es selbstverständlich eine durchdachte Software-Architektur. Wir verfügen als App-Agentur über viele Jahre Erfahrung im Einsatz mit Xamarin. 

Gibt es Abhängigkeiten in Bezug auf Know-how, Lizenzen oder Systemsupport?

Für die professionelle Arbeit mit Xamarin muss eine Lizenz von Visual Studio erworben werden. Zum Testen genügt jedoch bereits die Visual Studio Community Edition, die kostenfrei heruntergeladen werden kann.

Abseits davon benötigt es Erfahrung in der Arbeit mit C# und den .NET APIs. Außerdem braucht es Wissen rund um die bei beiden Plattformen iOS und Android bereitstehenden APIs, um die plattform-spezifischen Code-Anteile einer App erstellen zu können.

Vorteil NEXT Munich: Solltest du uns mit der Entwicklung einer App mit Xamarin beauftragen, so bringen wir sowohl die benötigten Lizenzen, als auch das langjährige Know-How im Umgang mit der Technologie und den beiden Plattformen ein.

Werden neue native Funktionen rechtzeitig unterstützt?

Xamarin ermöglicht, die plattformspezifischen APIs in C# anzusprechen. Deswegen muss Xamarin für diese nativen APIs sogenannte C#-Bindings bereitstellen. Wenn nun Apple oder Google neue Versionen ihrer Betriebssysteme veröffentlichen, so muss Xamarin neue C#-Bindings erzeugen. Sie stellen dann die neuen Funktionen der Betriebssysteme ebenfalls in C# bereit.

Microsoft bemüht sich an dieser Stelle immer, schnellstmöglich auf Aktualisierungen von Apple und Google zu reagieren. Die Erfahrung der letzten Jahre zeigt dabei, dass die neuen C#-Bindings immer rechtzeitig zur Verfügung stehen. So kann damit weit vor der offiziellen Veröffentlichung der neuen Betriebssystemversionen gearbeitet werden.

Wie hoch sind die faktischen Einsparungen gegenüber einer nativen Entwicklung?

Die Einsparungen sind natürlich ganz vom jeweiligen Projekt abhängig. Am meisten profitieren solche Projekte von Xamarin, bei denen es viel Kommunikation mit Drittsystemen bedarf.

Apps, die rein von ihrer grafischen Darstellung leben, werden eher kleinere Synergien im Rahmen des Code-Sharings realisieren können.

Eine Ausnahme hiervon ist der Einsatz von Xamarin Forms, einer auf Xamarin aufbauenden Technologie. Sie ermöglicht es, auch den Code für den Aufbau und die Verwaltung des User Interfaces plattformübergreifend zu entwickeln. Da dieser Entwicklungsansatz kein plattformspezifischen Anpassungen des User Interface erlaubt, arbeiten wir bislang nicht mit dieser Technologie. Wir halten es für einen zentralen Aspekt der User Experience, dass die App die Gestaltungs- und Navigationsparadigmen der jeweiligen Plattform (iOS bzw. Android) respektiert.

Ist es möglich, die Plattformen iOS und Android unabhängig voneinander zu planen?

In der Umsetzung einer App mit Xamarin lassen sich Apps für unterschiedliche Plattformen unabhängig voneinander konzeptionieren und gestalten. Technisch gibt es an dieser Stelle keine Einschränkungen. Es ist in diesem Fall aber nicht mit den gleichen Code-Sharing-Vorteilen zu rechnen.

Hat Xamarin Auswirkungen auf die Performance meiner App?

Xamarin funktioniert als eine Schicht, die sich zwischen das Betriebssystem der Plattform und die in Xamarin entwickelte App legt. Theoretisch hat Xamarin damit einen Einfluss auf die Performance. Der Grund: es muss die in der App vorgesehenen Anweisungen erst an das Betriebssystem weiterreichen. Erst dann kann das Betriebssystem die Anweisungen selbst ausführen.

In der Praxis nehmen wir keine Nachteile in der Geschwindigkeit beim Einsatz von Xamarin wahr.

Kann Xamarin auf alle nativ angebotenen Funktionen uneingeschränkt zugreifen?

Ja, alle der von den Betriebssystemen der Plattformen zur Verfügung gestellten Funktionen stehen über die bereitgestellten C#-Bindings auch zur Verwendung in Xamarin zur Verfügung.

Wie unterscheidet sich Xamarin von anderen Cross-Plattform Ansätzen wie Phone Gap oder ReactNative?

Xamarin setzt bei der Technologie auf C# und das .NET-Framework, um Code-Sharing-Vorteile zu ermöglichen. Das User Interface wird dabei aber von den auf der jeweiligen Plattform zur Verfügung stehenden Komponenten umgesetzt. Dadurch sieht die App nativ aus und verhält sich auch exakt so wie eine mit nativen Technologien entwickelte App.

PhoneGap setzt im Gegensatz dazu auf eine Umsetzung der gesamten App mittels Web-Technologien wie HTML, CSS und JavaScript. Dadurch können in PhoneGap entwickelte Anwendungen noch mehr Code-Sharing-Synergien realisieren. Solche Apps sehen dann aber auch nicht wie native Apps aus und fühlen sich in der Bedienung auch nicht so an. 

Der Vergleich einer in PhoneGap mit einer in Xamarin oder einer nativ umgesetzten App zeigt: Sie ist am User Interface und der behäbigen Bedienung leicht zu erkennen.

Grundsätzlich ist ReactNative eine gute Option für die Umsetzung von Apps, die Cross-Plattform-Synergien realisieren wollen.

Kann eine Xamarin-App Probleme beim Apple-Store oder Play Store bekommen?

Nein, an dieser Stelle sind keine Einschränkungen zu befürchten.

Referenzen für Xamarin-Apps von NEXT Munich:

OSRAM Sales Portal
Betty Bossi
Headache Hurts
SCOUP - Deine Shopping App
MyMcDonald's
Bosch Smart Cameras
OLB Banking
CarwashApp

Solltest du darüber hinaus Fragen haben: Ich freue mich schon jetzt auf einen spannenden Gedankenaustausch! Gerne via Email unter bb@next-munich.com.