Finalisten beim Microsoft Hackathon – Wie man einmal „schnell“ eine App entwickelt

Können Sie eben mal schnell… eine mobile App entwickeln? Die erste Hälfte des Satzes haben sicherlich viele von uns schon mal gehört – oder zu jemandem gesagt! In diesem Zusammenhang gibt es die unterschiedlichsten Szenarien. Vor allem jedoch scheint es, dass besonders zu den Begrifflichkeiten „mobile App entwickeln“ und „schnell“ ein Paradoxon besteht. Welche Tools stehen uns als Entwickler also in der heutigen Welt zur Verfügung dieses doch zu wiederlegen?

Eine Vielzahl neuer Technologien lassen die Palette der digitalen Werkzeuge ständig steigen. Dabei wird ein breites Spektrum angeboten: Von mächtigen Tools, die ausschließlich in Langzeit Projekten Wert erzeugen, bis hin zu schlanken Produkten, die einen schnellen Mehrwert versprechen. Laut Microsofts aktueller Produktpalette sollen sehr viele Bausteine, aber auch Komplettlösungen verfügbar sein. Eine besonders interessante Aufgabenstellung erhielten wir hier auf Einladung von Microsoft. Innerhalb von 36 Stunden hatten wir, Dennis und Stanislav, die Möglichkeit beim „PowerApp your Teams – Hackathon“ einen eigenen Use Case mit Tools des Herstellers zu realisieren.

Die Veranstaltung fand in Microsofts Hallen in München statt. Dabei ging es nach einer kurzen Einführung in die Power Plattform von Microsoft recht schnell ans Eingemachte. Über 150 Teilnehmer waren in mehr als 20 Teams aufgeteilt. Zu zweit wurden wir mit anderen, uns bis dahin unbekannten Teilnehmer in ein Team aus sechs neugierigen und willigen Hackern zusammengewürfelt.

Die Power Plattform

Da die Teammitglieder unterschiedliche technische Expertise hatten, haben wir uns zunächst gemeinsam einen Überblick über die Power Plattform verschafft. Diese besteht aus drei Komponenten – Power Apps, Power Automate und Power BI.

Power Apps ist eine No-Code-App-Entwicklungsumgebung, bei der man sich schnell eine App zusammenklicken kann. Es erinnert stark an PowerPoint und bietet eine begrenzte Funktionspalette. Beispielsweise lässt sich mit dem Kamera-Plugin ein Bild schießen und mit Power Automate weiterverarbeiten.

Mit Power Automate lassen sich sogenannte Flows umsetzen. Flows bestehen aus verschiedenen Konnektoren, die nacheinander oder parallel ausgeführt werden. Es ist zum Beispiel möglich ein Service Ticket per Knopfdruck zu erstellen, parallel dazu eine Bestätigungsmail an das ganze Team zu schicken, dabei noch den Chef per SMS zu informieren… und vieles mehr! Die Vielzahl der bereitgestellten Konnektoren können viele denkbare und genutzte Systeme ansprechen. Die erstellten Flows können dann in eine Power Apps-App eingebunden werden.

Power BI kann aus verschiedenen Datenquellen Daten visualisieren und analysieren.

Alle drei Tools können dabei auch mit Teams, Office 365, Dynamics 365 und den Azure Cloud Services interagieren. Das Microsoft Multiversum eben.

Insgesamt kann man sagen, dass die Power Plattform die Möglichkeit bietet, als Einsteiger recht schnell an ein vorgegebenes Ziel zu kommen. Dabei kommt man mit wenig selbst geschriebenem Code aus. Mit der Power Plattform wird man auch als Nicht-ITler schnell produktiv.

Neue und alte Bekannte:

Innerhalb des SVA-IoT-Teams setzen wir schon seit einiger Zeit auf Microsofts Teams. Teams ist ein sehr umfangreiches Kollaborationstool. Neben Standardfunktionalitäten, wie einer Chat-Funktion, Online Meetings oder Screensharing kann es durch viele zusätzliche Programme, wie beispielsweise einem Planning Board, einer Poll Group oder einer ganz eigener (Power)App, beliebig erweitert werden.

Darüber hinaus stellt MS Teams einen zentralen Knotenpunkt zwischen der Power Plattform, der D365 und O365 Suite sowie den Azure Cloud Services dar. Es verbindet nicht nur Menschen, sondern auch Tools!

Der Use Case

Schnell konnten wir die Vorteile einer Cloudlösung nutzen: Da wir nicht eine einzige Software installieren mussten, hatten wir genug Zeit uns über diverse Use-Cases auszutauschen. Wir haben uns dazu entschlossen eine ganzheitliche Applikation zu entwickeln, die Menschen in Not helfen soll, optimal Erste-Hilfe zu leisten. Unser Ansporn war in den 36 Stunden nicht nur ein Konzept zu entwickeln, sondern auch bereits funktionierende Teile der Lösung umsetzen.

Um eine qualifizierte Anamnese abzubilden, sind Geräte und Knowhow notwendig. Ärzte messen beispielsweise Blutdruck, Temperatur, Puls oder den Sauerstoffgehalt im Blut. Dafür nehmen wir ein simuliertes Emergency Kit. Wir haben die Vitalwerte des Kits an eine IoT Plattform geschickt, um diese dem Rettungsdienst live bereitzustellen. Zusätzlich wurden durch den Ersthelfer vom Patienten geschossene Fotos mittels künstlicher Intelligenz (KI) analysiert, um neben der Schwere der Verletzung auch das ungefähre Alter, Geschlecht und den Gemütszustand festzustellen. Mit Hilfe einer weiteren KI sollte dann anhand der gesammelten Daten eine medizinische Handlungsempfehlung abgegeben werden. Diese Aufgabe erfordert spezielles Knowhow, weswegen wir die Handlungsempfehlungs-KI sehr rudimentär gehalten haben.

 Die Umsetzung

Für die nächsten 36 Stunden saßen wir als Team mit Kaffee und Cola an den verschiedenen „Baustellen“ und tüftelten an der Herangehensweise. Es stellten sich viele technische Herausforderungen in den einzelnen Diensten und deren Verknüpfung. Wir nutzten die Produkte von Azure – Azure IoT Central als IoT-Plattform und die Azure Face API aus der Palette der Azure Cognitive Services. Diese Produkte lassen sich nach Anmeldung im Azure-Portal per Klick bereitstellen:

Für die Entwicklung der Power Apps steht ein Webbasiertes Portal zur Verfügung. Dort lassen sich nach dem PowerPoint Prinzip einzelne App-Bausteine zusammenbringen:

Mit Power Automate (ebenfalls Webbasiert) lassen sich Abläufe unter anderem aus einer Power AppsApp triggern:

Dort stehen bereits sehr viele Konnektoren bereit, die man parallel oder in Reihe vernetzen kann:

Auf das Smartphone kommen die Apps dank der Power Apps App – das Betriebssystem spielt keine Rolle, es sollte lediglich aktuell sein. Von dort aus lassen sich auch die vertrauten Ressourcen des Smartphones, z. B. GPS oder Kamera nutzen. Auch lassen sich die Power Apps in einer dedizierten Windows Anwendung starten. Das spannendere zum Vernetzen ist jedoch die einfache Einbindung in MS Teams:

Letztendlich hatten wir so zwei Power Apps entwickelt – eine App für eine nicht mit Erster-Hilfe vertraute Person und eine für einen Rettungssanitäter in der Rettungszentrale. Im Hintergrund liefen mehrere Flows, die entweder für die Kommunikation, die Datenverwaltung, die IoT- und KI-Services uvm. zuständig waren.

Bei einem Notfall erhält der Benutzer mit Hilfe seiner Power App erste Anweisungen, wie z. B. den Anschluss seines Emergency Kits, mit dem die Vitalwerte erfasst und übertragen werden können. Außerdem werden grundlegende vitale Eigenschaften der betroffenen Person, wie z.B. das Bewusstsein oder die Atmung abgefragt. Danach können erste Bilder von der Situation geschossen werden, um dem Rettungsdienst möglichst viele Informationen bereitzustellen.

Auf der anderen Seite schaut sich die Rettungsleitstelle diese Daten in der in MS Teams eingebetteten Power App an und kann dann entweder den Ersthelfer kontaktieren oder in ernsten Situationen Verstärkung alarmieren. Dank GPS weiß er dann genau, wo der Einsatz notwendig ist und mit den Daten des Emergency Kits sehen wie eilig es ist.

Die Krönung

Nach der Vorstellung unserer Lösung haben wir als Team ruhmreich den Einzug in die Siegerehrung geschafft und wurden sogar Finalisten. Was als Freizeitausgleich anfing, wurde zu viel mehr. Neben den neuen Bekanntschaften konnten wir das Wissen um Microsofts Technologien erweitern. Die geschaffene Lösung konnte aktiv noch kein Menschenleben retten, doch die Kreation des Konzepts sowie erste Schritte zu dessen Umsetzung sind für zwei Tage mehr als befriedigend. So konnten wir „mal eben schnell“ zwei mobile Apps entwickeln und wurden überzeugt, dass Sie als Leser Ihre eigenen Ideen auch mit wenig IT-Erfahrung umsetzen können. Verbinden Sie Ihre Technologien und Kollegen – wir unterstützen Sie gern dabei!

Co-Autor: Dennis Gugel