Am Puls von Microsoft

DuoBahn, das Entwicklertagebuch, Teil 2: Ab ans Reißbrett!

DuoBahn, das Entwicklertagebuch, Teil 2:  Ab ans Reißbrett!

Seit dem ersten Teil meines neuen Bastelprojekts „DuoBahn“, einer experimentellen App für das Surface Duo, verging nun etliche Zeit. Dies ist jedoch kein Grund, das Projekt gleich zu beerdigen, wie es so mancher Konzern gerne mal macht.

DuoBahn wird unsere erste gemeinsame App, welche aus mehr als nur einer Komponente besteht. Dies bedeutet, dass man hier, auch wenn es in der Freizeit stattfindet und vorrangig Spaß bereiten soll, etwas geplanter und durchdachter vorgehen sollte als bei unseren vorigen Projekten, wie beispielsweise unsere Surface Duo App #rTsd, wo man einfach in den Tag hinein entwickeln konnte.

Für alle Mitlesenden, denen diese Artikelreihe noch unbekannt ist: Das habt ihr bislang verpasst, könnt euch aber natürlich nachträglich einlesen:

Planänderung: Xamarin.Forms raus, Kotlin und Jetpack Compose rein

Die wohl größte Änderung seit dem ersten Teil besteht wohl in der Ersetzung des Xamarin.Forms Techstack durch Kotlin in Kombination mit Jetpack Compose.

Dies hat mehrere Gründe. Einerseits hat mich, wie Dr. Windows berichtete, die Verschiebung von .NET MAUI kalt erwischt, da es damals geplant war, mit einem simplen Xamarin Projekt zu beginnen und sobald es „ernst“ wird auf .NET MAUI zu migrieren. Da dies nun in nicht planbarer Zukunft für dieses Pet-Projekt liegt, und weil Kotlin beziehungsweise Jetpack Compose für mich die moderneren Ansätze in der App-Entwicklung bieten, habe ich mich entschlossen, die App auf dieser neuen Grundlage zu starten.

Das Microsoft Surface Duo DX Team hat dafür gesorgt, dass sich auch Entwickler, welche explizit für das Duo Apps entwerfen möchten, Jetpack Compose ohne irgendwelche Nachteile nutzen können.

Jetpack Compose

In den Microsoft Docs finden Interessierte eine Menge von Beispielprogrammen und deren Quelltexte dafür, wie man die einzigartigen Funktionen des Surface Duo mit Compose ausnutzen kann. Das Team hat zudem etliche Live-Streams auf Twitch zum Thema Mehrbildschirmgeräten und Jetpack Compose in englischer Sprache veranstaltet.

Hiermit möchte ich jedoch in keiner Weise die Langlebigkeit und Daseinsberechtigung von Xamarin in Frage stellen. Ich finde weiterhin, dass, wenn es darum geht, das in Teams eine Austauschbarkeit der Positionen von Frontend zu Backenden zu App-Entwickler gegeben sein soll, der Xamarin Stack unantastbar ist. Weiter ist Xamarin (Forms) ein gesetztes Framework, welches sich über Jahre weiterentwickeln konnte und Zugriff auf das unschlagbar große .NET Ökosystem besitzt.

Kotlin als auch Jetpack Compose stehen dagegen noch sehr am Anfang und erst die Zeit wird zeigen, ob diese halten können, was sie versprechen.

Ab ans Reißbrett

Da unser neues Bastelprojekt aus mehr als nur einer App besteht, habe ich mich entschlossen, erst einmal eine Konzeptphase zu starten, um zu prüfen und zu planen, wie sich beispielsweise die Datenquelle des Bundes so anzapfen und verarbeiten lässt, um daraus für die mobile Applikation ein monolithisches JSON (Datei mit allen benötigten Daten) zu erstellen.

Mein erster Gedanke fiel dabei auf zwei Funktionen von GitHub. Mit den so genannten Actions lassen sich in periodischen Abständen beispielsweise Skripte ausführen, welche die resultierende Datei wieder in ein öffentlich zugängliches Repository pushen, worauf dann schlussendlich die App freien Zugriff hat.

In welcher Sprache das Skript erstellt, wird kann ich zurzeit noch nicht sagen. Falls sich nun eine Person angesprochen fühlt und genau darin Spaß sieht, aus einer relativ kruden Eingangslage eine gut benutzbare Ausgangsdatei zu schaffen, darf sie sich gerne melden, ich heiße jede Hilfe sehr willkommen. Persönlich sehe ich hier Bash als wahrscheinlich an. Ein reines Kotlin Projekt, also Skript und App in der von JetBrains entwickelten Sprache zu erreichen, wäre auf der anderen Hand auch etwas sehr Spannendes. Der einzige Knackpunkt ist allein, dass es beispielsweise auf GitHub Actions lauffähig ist.

Zu diesem Zweck, und auch damit keine Gedankengänge verloren gehen, habe ich ein Concept Draft bezüglich der Datenherkünfte als auch resultierenden Datenstrukturen im GitHub Repository hinterlegt.

Der Herausgeber der Bundes-API, bund.dev, stellt eine Swagger Instanz sowie  ein openapi.yaml bereits zur Verfügung, mit welchen sich die Daten und dessen Strukturen vorab bequem ansehen lassen

Danke für euer Design Feedback

In Teil #1 dieser Beitragsreihe habe ich aufgerufen, Feedback zu meinen ersten App Designs zu geben. Unser langjähriges Dr. Windows Community Mitglied „Agredo“ hat bereits erste Ideen mit uns allen geteilt. Seine Gestaltungskonzepte findet ihr in den Kommentaren des ersten Artikels zur DuoBahn App. Da ich auch weiterhin keine explizite Expertise in UI und UX habe, sind solche Feedback-Kommentare gern gesehen.

Wie geht es weiter?

Das erste Ziel ist natürlich, dass die ersten theoretischen Gedanken und Konzepte Realität werden. In meiner Ordnung steht erst einmal das oben erwähnte Script zum Bereitstellen der Daten an oberster Stelle. Zeitgleich beziehungsweise danach habe ich mir selbst die Einarbeitung in Kotlin und Compose auf meine Liste geschrieben.

Da dies immer noch ein reines Freizeit-, Spaß- und Lernprojekt ist, kann sich diese Priorisierung natürlich des Öfteren noch ändern.

Macht mit, es macht wirklich Spaß!

Wie ihr nun mehrfach gelesen habt, lebt diese App dank eurer Mithilfe. Seien es nun Meinungen zu Design und Funktionen, Fehlerberichte und technisches „unter die Arme greifen“.

Dies zeigt auf, dass man kein Entwickler sein muss, um ein Teil von Open Source Projekten zu werden! Jede/r ist herzlich eingeladen, Feedback zu geben, Quelltextverbesserung via Pull Request einzureichen oder einfach seine Meinung in den Kommentaren zum Beitrag kundzutun.

Bei offenen Fragen rund um das Mitwirken an der App mailt mir an [email protected] oder erstellt beziehungsweise schnappt euch gleich ein Issue auf GitHub, wo der komplette Quelltext der App liegt.

Lasst uns weiterhin gemeinsam dieses spannende Bastelprojekt weiterführen. Auf das nächste Dutzend! Vielen Dank für eures stetes Interesse.

Über den Autor

Tobias Scholze

Tobias Scholze

Bayrischer Open Source- und Community-Enthusiast, Verfechter des neuen Microsoft und Wandler zwischen den Betriebssystemwelten. #communityrocks Von Herzen ein Nerd mit der festen Überzeugung, dass man gemeinsam und durch den Einsatz von moderner IT die Welt für jeden ein Stückchen besser machen kann.

Anzeige