Für die Entwicklung von Apps für Android, iOS und diverse andere Plattformen verwenden wir Xamarin, welches in Visual Studio bereits integriert ist.
Mit Xamarin kann man sämtliche Logik in .NET (C#) entwicklen und als nativem Code auf den jeweiligen Geräten ausführen.
Xamarin bietet hierbei die Möglichkeit entweder plattformabhängige Elemente (Xamarin.iOS, Xamarin.Android, Windows Phone, Windows RT, WIndows UWP etc.) oder plattformunabhängige Elemente (Xamarin.Forms) zu benutzen.
Falls Ihr euch fragt welches Ihr für euer neues Projekt verwendet möchtet, hier ein kurzer Überblick:
Xamarin.Forms:
Geeignet für
- Prototypen
- Proof-of-Concepts
- Apps, die wenig plattformabhängige Funktionen benötigen
- Apps, wo code sharing wichtiger ist als die Optik
- Dateneingabe-Apps
Vorteile
- Eine Codebasis / UI (PCL) für alle Plattformen (einige Sonderfunktionen wie z.B. Push-Benachrichtigungen müssen dennoch plattformspezifisch implementiert werden)
- dadurch schnelle Releasezyklen für alle Plattformen möglich
- Zur Auswahl stehen sehr einfache Controls für alle Plattformen (Buttons, Textfelder, Spinner usw)
- kein Overhead nötig um die nativen UI Frameworks zu studieren
- Anpassung / Erweiterung der Standardcontrols mittels CustomRenderer
Nachteile
- relativ neues Framework, mit vielen Bugs
- Performance langsamer als Xamarin.Native
- CustomRenderer sind fast garnicht dokumentiert und dadurch begrenzt an Möglichkeiten, Aufwand sehr hoch
Xamarin.Native:
Geeignet für
- Apps die spezielle Interaktionen und plattformspezifische API´s benötigen (z.B. 3D-Touch für iOS)
- Apps mit optimierter Oberfläche
- Apps, dessen Optik wichtiger ist als code sharing
Vorteile
- Pro Plattform eigene individuelle UI erstellen
- Anpassung der Controls leichter und gut Dokumentiert
- kurz: mit den plattformspeziellen Controls kann man das meiste aus der UI herausholen.
Nachteile
- Overhead zum Erlernen des jeweiligen Platform Frameworks nötig
- Releasezyklen addieren sich pro Platform
- Gefahr doppelten Code für jeweilige Plattformen zu schreiben sehr hoch
Entwicklung / Bereitstellung
Für die Entwicklung auf iOS benötigt man ein Entwicklerzertifikat von Apple und ein Mac zum kompilieren/signieren der App für die Veröffentlichung.
Zum Bereitstellen der Apps während der Entwicklungsphase benutzen wir zur Zeit diawi und AirWatch. Nach Fertigstellung werden die Apps über die jeweiligen Stores veröffentlicht.