• Noser.com
facebook
linkedin
twitter
youtube
  • NOSERmobile
    • Android
    • HTML 5
    • Hybrid Apps
    • iOS
    • Windows Phone
  • NOSERembedded
    • Medizintechnik
  • NOSERprojektmanagement
  • NOSERtesting
  • NOSERlifecycle
    • .NET Allgemein
    • Application Lifecylce Management
    • Apps
    • Architektur
    • ASP.NET
    • Azure
    • Cleancode
    • Cloud
    • Silverlight
    • Visual Studio / Team Foundation Server
    • Windows 8
    • Windows Presentation Foundation
  • NOSERinnovation
    • Big Data
    • Cloud
    • IoT
    • Operations Research
    • Augmented Reality
    • RFID, NFC, Bluetooth LE

Native Cross Plattform Apps mit Xamarin

22. Juni 2017
Rehmann Christoph
0

Nach der Idee eine mobile Applikation zu entwickeln stellt sich schnell die Frage, wie man diese auf die unterschiedlichen Plattformen zur Verfügung stellen kann. Dabei gibt es unterschiedliche Lösungsansätze. Unter anderem:

  • Native Entwicklung bzw. eine App pro Plattform
  • Hybrid: eine App für alle Plattformen mit HTML und JavaScript
  • Xamarin

Falls man eine App für mehrere Plattformen entwickeln möchte, ist die native Variante ist mit viel Aufwand verbunden. Der Grund dafür liegt auf der Hand – pro Plattform muss man die App komplett neu entwickeln. Dabei braucht es pro Plattform spezifisches Knowhow. Dies bedeutet oft, dass auch mehrere Entwicklungsteams benötigt werden.

Hybride Apps locken mit dem versprechen die App nur einmal schreiben zu müssen und diese dann auf all den Plattformen zur Verfügung zu haben. Hybride Apps setzen hierfür auf eine hohe Abstraktion der Plattformen. Native Features einer Plattform kann man zwar einbinden, dafür wird jedoch jeweils ein Plugin benötig. Dies kann zu Performance Problemen führen. Hybride Plattformen werden deshalb oft für Apps verwendet, welche nicht oder nur bedingt native Eigenschaften benötigen.

Mit Xamarin hat man die Möglichkeiten sich vom Besten der beiden Welten zu bedienen. Zum einen werden Apps mit einer einzigen Programmiersprache für die jeweiligen Plattformen implementiert. Zusätzlich handelt es sich aber um vollwertige native Applikationen. So ist es möglich auf alle Bibliotheken und Features der jeweiligen Plattformen zuzugreifen. Dabei kann man grosse Teile der Business Logik zwischen den einzelnen Plattformen teilen und wiederverwenden.

Schneller Einstieg mit Xamarin.Forms

Mit Xamarin.Forms ist es möglich, dass man neben der Business Logik auch die UI Implementation zwischen den Apps teilen kann. Erreicht wird dies, indem man das UI in einer XAML-basierten Sprache entwickelt. Anschliessend wird es automatisch in native UI Komponenten übersetzt. Das bedeutet noch schnellere Entwicklungszeit und geringere Kosten. Besonders UWP/WPF Entwickler können dabei von einem schnellen Einstieg profitieren, da sie die Konzepte hinter XAML bereits kennen. Aber auch Entwickler, welche noch keine Erfahrung in der Entwicklung von Apps haben, werden sich schnell zurechtfinden. Sie müssen nämlich nicht noch zuerst die unterschiedlichen UI Ansätze der verschiedenen Plattformen erlernen, sondern können direkt mit Xamarin.Forms loslegen.

Vergleich von Xamarin Native zu Xamarin.Forms

Die Abbildung zeigt auf, wie mit Hilfe von Xamarin.Forms noch mehr Code geteilt werden kann und der plattformspezifische Code weiter reduziert wird.

 

Xamarin.Forms glänzt dabei vor allem bei der Implementierung von einfachen Apps oder Prototypen. Es ist beeindruckend wie schnell man eine App damit erstellen kann.

Volle Kontrolle mit Xamarin Native

Die Vorteile von Xamarin.Forms gegenüber Xamarin Native schwinden, sobald man ein aufwändiges UI implementieren möchte. Denn durch die zusätzliche Abstraktion von Xamarin.Forms kann es besonders bei komplexen Layouts zu Performance-Einbussen kommen. Mit Xamarin Native hat man volle Kontrolle über die spezifischen UI Eigenheiten und SDK Funktionalitäten der verschiedenen Plattformen. Weiter lassen sich die gleichen Tools für die Entwicklung des UI einsetzen, wie bei den nativen Apps.

Xamarin iOS, Android und Forms

Unabhängig ob man Xamarin Native oder Forms verwendet, kann man C# für die Entwicklung einsetzen. Zwar sind Objective-C, Swift und Java grossartige Programmiersprache, jedoch hat sich C# in den letzten Jahren bemerkenswert weiterentwickelt. So ist es zum Beispiel Dank LINQ, Async/Await oder etwa Closures möglich, grossen Boilerplate Code zu vermeiden und saubereren und leserlicheren Code zu schreiben.

Weiter ermöglicht Xamarin auch den Einsatz von nativen Third-Party Bibliotheken. So kann man bereits bekannte Java oder Objective-C Bibliotheken wiederverwenden. Dies bewerkstelligt man mit Hilfe von sogenannten Binding Projekten. Oftmals findet man im Xamarin Component Store oder auf Github bereits entsprechende Bindings und es bleibt einem erspart, diese selber zu generieren.

Fazit

Xamarin ermöglicht es native Apps für iOS und Android zu entwickeln und dabei alle Funktionaltäten der Plattformen zu nutzen. Durch die Verwendung einer Programmiersprache (C#) ist es ausserdem möglich grosse Teile der Business Logik zwischen den Apps zu teilen. Dadurch verringert sich die Entwicklungszeit und man kann eine kürzere Time-to-Market erreichen. Aber nicht nur die Entwicklungszeit und die Kosten kann man durch effizientes Code Sharing minimieren, sondern auch die Anzahl möglicher Fehler. Denn generell kann die Aussage gemachen werden, dass die Anzahl von Fehlern im Code sinkt, wenn weniger Code geschrieben werden muss.

Xamarin Partner Summit

17. Februar 2017
Rehmann Christoph
0
Xamarin, Xamarin Partner Summit

Wir durften am 26. Januar dieses Jahr am Xamarin Partner Summit 2017 in Amsterdam teilnehmen. Das diesjährige Motto war «The next mobile frontier».

Neben aktuellen Fokus Themen wurde die Zusammenführung des Xamarin Partner Programm mit dem Microsoft Partner Network (MPN) angesprochen.

Xamarin Partner Summit 2017

Aktuelle Themen

In den nächsten Jahren werden die Themen Cloud, IoT und VirutalReality immer mehr an Bedeutung gewinnen. Es ist entsprechend zu Erwarten, dass es zu grosse Innovationen in diesen Bereichen kommen wird.

Die App Stores beinhalten Millionen von Apps pro Plattform. Entsprechend wird es immer wichtiger, dass sich eine App von der Konkurenz abheben kann. Insbesondere durch zusätzliche Funktionalität, welche z.B. durch Cloud und IoT ermöglicht werden.

Wie man eine App kreieren kann, welche sich von anderen Absetzt wurde am Beispiel von der Delta Air Lines App aufgezeigt. Diese informiert einen Reisenden laufend per Notifications über den Verladestatus seines Gepäcks. Sei das beim Check-in oder Verladen. Am Zielflughafen angekommen wird man automatisch von der App informiert über die aktuelle Gepäcksausgabestelle.

Closing Thoughts

Der diesjährige Xamarin Partner Summit bot viele spannende Einblicke in die kommende Zukunft. Der Event bot viele spannende Diskussionen unter den Partnern und mit Xamarin. Dabei kamen auch technische Themen wie etwa Memory Management und das Bait and Switch Pattern zur Sprache.

 

Technical Track

Technical Track

 

Wir freuen uns auf weitere Events wie etwa die Microsoft Build im Mai.

1234567

Tag Cloud

.NET android Angular AngularJs app Arduino ASP.Net automated testing Azure Big Data C# C++ Cloud continuous integration Elm Embedded gRPC Internet of Things IoT Java Javascript M2M OWASP Projektmanagement protobuf Python Raspberry Pi Reactive Programming REST Scrum Security Softwarequalität SPA Testen testing Testmanagement Teststrategie Visual Studio WebAPI windows WPF Xamarin Xamarin.Android Xamarin.Forms Xamarin.iOS

Archive

Current Posts

  • Virtual pty/tty uart listener: Pitfalls on linux socat
  • Akzente setzen mit der Android Splash Screen API unter .NET MAUI
  • Do You have Your Personal Space?
  • Automated provisioning with ARM Templates
  • Asynchrone Beobachtungen und Versprechungen in Angular

Last Comments

  • Hans Reinsch bei Der Safety-Plan: Die wichtigsten Antworten mit Checkliste
  • George H. Barbehenn bei Modeling Optocouplers with Spice
  • Noser Blog Touch-Actions in Xamarin.Forms - Noser Blog bei Mach mehr aus Animationen in Xamarin.Forms mit SkiaSharp
  • Noser Blog Focus on the Secure Storage service of Trusted Firmware (TFM) - Noser Blog bei First run of the Trusted Firmware (TFM) application
  • Noser Blog First run of the Trusted Firmware (TFM) application - Noser Blog bei Focus on the Secure Storage service of Trusted Firmware (TFM)

Popular Posts

Xamarin.Android Code Obfuscation

6 Comments

ManuScripts: Wenn jemand eine Reise tut... Funktionale Programmierung mit Elm - Teil 1 - Aufbruch

5 Comments

ManuScripts: Wenn jemand eine Reise tut... Funktionale Programmierung mit Elm - Teil 2 - Kein Picknick

4 Comments

Contact us

  1. Name *
    * Please enter your name
  2. Email *
    * Please enter a valid email address
  3. Message *
    * Please enter message
© 2013 NOSER ENGINEERING AG. All rights reserved. Datenschutz | Cookie-Richtlinie