Die Wahl der Plattform beeinflusst die gesamte Entwicklung einer App. Android, iOS und Sailfish OS bieten unterschiedliche Ansätze. Hier ist eine Gegenüberstellung in fünf Kategorien.
Android:
„Flexibel, dominant und weltweit verbreitet.“
Programmier-Sprache
Android unterstützt Kotlin und Java. Kotlin wird als moderner und effizienter angesehen. Java bleibt jedoch eine solide Option für viele Entwickler.
Entwicklungstools
Android Studio ist die zentrale IDE für Android-Apps. Es bietet Tools für Design, Code, Testing und Debugging. Plugins und Erweiterungen machen es anpassbar.
Pakettyp
Apps werden als APK (Android Package) oder AAB (Android App Bundle) erstellt. AAB ist effizienter und für den Play Store bevorzugt. APK ist für direkten Download ideal.
Buildvorgang
Der Build läuft über Gradle, ein leistungsstarkes Build-System. Es bietet eine hohe Flexibilität, benötigt aber Einarbeitung. Automatisierung und Anpassung sind problemlos möglich.
Auslieferung
Das Deployment erfolgt meist über den Google Play Store. Alternativ können APKs direkt auf Geräte geladen werden. Debugging geht unkompliziert über USB (Universal Serial Bus).
iOS:
„Geschlossen, dafür hoch optimiert und edel.“
Programmier-Sprache
iOS-Apps werden mit Swift oder Objective-C geschrieben. Swift ist moderner und bietet einfache Syntax. Objective-C bleibt eine Option für ältere Projekte.
Entwicklungstools
Xcode ist Apples offizielle Entwicklungsumgebung. Sie enthält alles: Code-Editor, Simulator, Interface Builder und Debugging-Tools. Die Integration mit macOS sorgt für einen reibungslosen Ablauf.
Pakettyp
iOS verwendet IPA (iOS and iPadOS Application Zip Archive) Dateien für Apps. Diese Dateien müssen signiert und verifiziert sein. Sie sind für den App Store oder TestFlight gedacht.
Buildvorgang
Der Build läuft direkt über Xcode und ist meist einfach. Apple fordert jedoch Zertifikate und ein Provisioning-Profile. Der Build-Prozess erstellt eine .ipa-Datei für die Auslieferung.
Auslieferung
Apps gelangen über den App Store auf die Geräte. TestFlight ermöglicht Beta-Tests. Geräte müssen für Debugging oder Tests registriert sein.
Sailfish:
„Überraschend – für Individualisten und Linux-Fans.“
Programmier-Sprache
C++ und QML (Qt Modeling Language) sind die Hauptsprachen für Sailfish Apps. Beim bezeichneten C++ handelt es sich natürlich um die moderne Form. QML ermöglicht schnelles Prototyping mit einer deklarativen Syntax. C++ sorgt für Performance und Backend-Logik. Die verfügbare Hardware kann maximal ausgeschöpft werden und gibt dem Entwickler die ganze Power.
Entwicklungstools
Die Entwicklung von Sailfish Apps basiert auf der Sailfish IDE. Diese enthält bereits den passenden Qt Creator. Er läuft auf Linux, Windows und macOS. Ein Emulator für Tests ist enthalten. Eine extra fitte Hardware ist dafür aber zwingend notwendig.
Pakettyp
Sailfish verwendet RPM (Redhat Package Manager) Pakete, ähnlich wie Linux-Distributionen. Diese Pakete sind leicht zu verwalten und anpassbar. Sie eignen sich besonders für Open-Source-Entwicklung. Jedes RPM von OpenRepos kann installiert werden. Meine Empfehlung aber, zuerst mit Sailfish-Versionen zu starten. Mit eingeschalteter Android-Unterstützung können portierte APK (Android Packages) installiert werden zu finden auf F-Droid. Nach installation von Open-G(oogle)App-Project können sogar herkömmliche AAB (Android App Bundle) installiert werden, wie sie auf dem Google Playstore zu finden sind.
Buildvorgang
Die Sailfish SDK Build Engine kommt zusammen mit qmake auf einem Docker-Image daher. Daher läuft sie sowohl auf Linux, Windows und macOS. Ich empfehle aber den Betrieb auf einem leistungsstarken Ubuntu-Rechner. Automatisierung ist möglich, aber komplexer als bei Android und iOS.
Auslieferung
Das Deployment kann direkt über das Terminal erfolgen. Entwickler können Apps per SCP (Secure Copy Protocol) direkt auf die Geräte übertragen und anschliessend installieren. Alternativ gibt es den Jolla App Store für offizielle Apps.
Fazit
Jede Plattform hat ihre Stärken: Android ist flexibel, iOS optimiert und Sailfish offen. Die Wahl hängt von den Projektanforderungen und dem verfügbaren Entwickler-Knowhow ab. – Welche Plattform passt zu deiner App-Vision?