Herausforderung mobiler Anwendungen mit dem MDK meistern
Überblick
Steht man vor der Herausforderung mobile Anwendungen für seine Anwender bereitzustellen, gibt es einige Hürden zu meistern. Möchte man die App für Android und iOS zur Verfügung stellen, werden Entwickler benötigt, die Java und Swift können. Außerdem gibt es einen doppelten Aufwand, da pro Plattform eine App entwickelt werden muss. SAP stellt hier eine alternative Möglichkeit zur Verfügung, das Mobile Development Kit (MDK).
Ausgangspunkt ist ein oData– oder seit neustem ein REST-Service. Auf der NEO-Plattform wird in der Web IDE, auf Cloud Foundry mit dem Business Application Studio entwickelt. Da die Web IDE keine Debugging-Möglichkeit zur Verfügung stellt, kann zusätzlich Visual Studio Code mit dem MDK-Plugin Verwendung finden, hier steht dann die Möglichkeit zum Debuggen zur Verfügung.
Was ist nun der Unterschied zwischen MDK und einem nativen Ansatz? Beim MDK kann die komplette Oberfläche der App mit einem WYSIWYG-Editor erstellt werden, das Layout wird automatisch vom Framework übernommen. Daraus werden Metadaten erzeugt, die auch im Editor visualisiert werden. Um zusätzliche Funktionalitäten umzusetzen, können Regeln erstellet werden, auch hier gibt es einen grafischen Editor für die Javascript-Regeln. Man kann aber auch direkt eine JS-Datei erstellen und ausprogrammieren. Die App wird dann auf SAP Cloud Platform Mobile Services deployed. Es kann dann jeweils ein Client für Android und iOS erstellt werden. Der Client ist im Grunde nur eine leere Hülle, die mit dem SCPMS-Endpoint verbunden ist. Der Client lädt beim Start die Metadaten der SCPMS und interpretiert diese zur Laufzeit, d.h. die Oberfläche wird vom Client zur Laufzeit anhand der Metadaten erzeugt. Dies hat den Vorteil, dass somit die App nur einmal entwickelt werden muss und automatisch auf Android und iOS lauffähig ist. Es entsteht ein natives „look and feel“ und insgesamt wird hier ein „low code“-Ansatz verfolgt.
Ist der oData-Service fertig, kann innerhalb weniger Minuten eine App erzeugt werden. Die Editoren stellen nämlich die Funktionalität zur Verfügung, sich das Projekt anhand einer Vorlage generieren zu lassen, inklusive CRUD. Hier wird dann auf der Hauptseite eine Übersicht aller Entitätsmenge erzeugt.
Zusätzlich wird pro Entitätsmenge eine Tabellenansicht der einzelnen Entitäten erzeugt (List), eine Detail– und Editierseite, sowie eine Seite für Neuanlagen.
Das MDK stellt zusätzlich die Option einer Offline-App zur Verfügung. Die App beinhaltet diese Funktionalitäten automatisch, übernimmt also die Erzeugung der Offline-Datenbank, ohne dass sich um die konkreten oData-Aufrufe gekümmert werden müsste. Dies wird alles direkt erzeugt und auch hier nur über Metadaten beschrieben.
Das MDK wird ständig von SAP weiterentwickelt, die Version 3 gab es z.B. März 2019, die aktuelle Version ist 5.0.1 und am 16.11.2020 erschienen. Diese beinhaltet viele Neuerungen. Hier eine kleine Auswahl. Es wurde ein neues Layout Master Detail Page ergänzt, welches einen Splitscreen zur Verfügung stellt. Auf der linken Seite kann man ein Objekt auswählen und bekommt auf der rechten die Detaildaten angezeigt. Außerdem steht nun auch ein Passwort-Eingabefeld zur Verfügung. Zusätzlich ist es nun möglich den Fokus auf ein Feld zu setzen. Es gibt jetzt auch, wie man es aus vielen Apps kennt, ein Pulldown-Event, um z.B. die Seite zu aktualisieren, wenn man die Seite nach unten zieht. Seit Release 5.0 ist es ebenfalls möglich einen REST-Service anzubinden.
Demo
Zu guter Letzt noch eine kleine Anleitung, wie Sie zu Ihrer ersten App kommen. Zuerst muss auf der SCPMS ein MDK-Eintrag erstellt werden.
Dort wird unter „Mobile Konnektivität“ die Verbindung zum oData-Service hinterlegt. In dem Beispiel verwende ich die den öffentlichen Northwind-Service von oData.org
Im Business Application Studio legt man dann z.B. ein neues MDK-CRUD-Template-Projekt an.
Im nächsten Schritt geben wir dann die zuvor angelegte Service-Destination an.
Hier wird auch die Entscheidung getroffen, ob Offline-Funktionalität zur Verfügung stehen soll.
Am Ende werdem dann noch die gewünschten Entitätsmengen gewählt und die App wird komplett generiert. Diese muss dann nur per Rechtsklick auf Application.app und dem Punkt MDK:Deploy und der darauffolgenden Auswahl Mobile Services entsprechend deployed werden.
Normalerweise würde im nächsten Schritt für Android oder iOS ein Client generiert werden, ejedoch gibt es von SAP in den Stores die App „Mobile Svcs“. Diese reicht für unsere Demo aus. Nach dem Start wird der QR-Code aus SCMPS unter dem Reiter APIs gescannt. Dies würde bei einem eigenen Client entfallen. Und schon ist das Ergebnis auf dem Smartphone sichtbar. Hier ein paar Screenshots.