Will man plattformspezifische Funktionen in Android- und iOS-Apps nutzen, gibt es immer wieder Fälle, in denen die Cross-Plattform-Entwicklung an ihre Grenzen stößt und Geräteunterschiede deutlich werden. Ein Beispiel hierfür sind Push-Nachrichten, da der Empfang von Push-Nachrichten vom Smartphone selbst und nicht von der App übernommen wird. Andernfalls könnten Push-Nachrichten nicht empfangen werden, wenn die App geschlossen ist.
Die Unterschiede zeigen sich bereits bei der Authentifizierung. Apple (APNS) bietet die Möglichkeit, sich per Zertifikat oder Token zu authentifizieren. Google (GCM/FCM) hingegen verlangt einen API-Schlüssel. Die Apps müssen auch für den Empfang von Push-Nachrichten konfiguriert werden. Bei Apple muss die App für die Nutzung von Push Notifications registriert werden. Die Android App hingegen benötigt entsprechende Google Firebase Einstellungen.
Neben all den Vorteilen, die die plattformübergreifende Entwicklung mit Flutter, React Native oder Xamarin.Forms/MAUI mit sich bringt, gibt es Dinge wie die Implementierung von Push-Nachrichten, die mit den nativen Pendants wie Siwft/SwiftUI oder Kotlin/Jetpack Compose eleganter sind. Denn bei plattformspezifischen Themen können die IDEs XCode und Android Studio ihre Stärken voll ausspielen.
Daher ist es sehr zu begrüßen, dass Microsoft Azure mit dem Microsoft Azure Notification Hubs eine einheitliche Schnittstelle für den Nachrichtenversand zur Verfügung stellt. Microsoft Azure Notification Hubs kann für Geräte von Amazon, Apple, Google und natürlich Windows genutzt werden.
Neben dem eigentlichen Versand übernimmt Microsoft Azure Notification Hubs auch die Registrierung der empfangenden Geräte. Hier sind im Free Plan bis zu 1 Million Push-Nachrichten und 500 Geräte möglich. Im Basic Plan sind 10 Millionen Push-Nachrichten und 1 Million Geräte möglich. Im Standard Plan wird das Gerätelimit auf 10 Millionen Abonnenten erhöht.
Nachrichten können an bestimmte Benutzer, Gruppen oder Abonnenten bestimmter Themen gesendet werden. Push-Nachrichten können sofort, zu einem bestimmten Zeitpunkt oder mit Hilfe von Azure-Funktionen bei bestimmten Ereignissen ausgelöst werden. Sehr komfortabel sind die plattformübergreifend kumulierten Reports über den Versand von Push-Nachrichten. Hier sieht man auf einen Blick, wann wie viele Push-Nachrichten versendet wurden oder wo es Probleme gibt.
Für die plattformübergreifende Entwicklung mit MAUI, Xamarin.Forms, React Native und Flutter bietet Microsoft entsprechende Unterstützung an. Besonders interessant wird das Ganze mit einer ASP.NET Core API, für die entsprechende nuget Pakete zur Verfügung stehen.
Es gibt mehrere Alternativen zu Microsoft Azure Notification Hubs, die für den Versand von Push-Benachrichtigungen in plattformübergreifenden Entwicklungen verwendet werden können.
Ein Beispiel ist das bereits erwähnte Firebase Cloud Messaging (FCM), ein von Google entwickelter Dienst, der eine plattformübergreifende Push-Benachrichtigungslösung bietet. Er unterstützt sowohl Android- als auch iOS-Plattformen und bietet eine robuste Infrastruktur für den Nachrichtenversand und die Geräteregistrierung.
Oder Amazon Simple Notification Service (SNS), ein Dienst von Amazon Web Services (AWS), der verschiedene Nachrichtentypen unterstützt, darunter Push-Benachrichtigungen für mobile Plattformen wie iOS, Android und Kindle Fire. Er bietet außerdem Funktionen wie themenbasierte Nachrichtensysteme und die Integration mit anderen AWS-Diensten.
Ähnliche Funktionen bieten auch der weniger bekannte Oracle Mobile Cloud Service und IBM Cloud Push Notifications.
Wir beraten Sie gerne, welcher Dienst für Sie und Ihr Projekt am besten geeignet ist.