-
-
Notifications
You must be signed in to change notification settings - Fork 1
Technologien und Infrastruktur
Als übergreifende Sprache wird Flutter verwendet. Flutter bietet die Möglichkeit cross-plattform zu entwickeln anhand der selben Codebasis. Der Build selbst wird durch Dart realisiert, welches zwischen Dev-Builds und Production-Builds unterscheidet.
Basis für das Design ist Material, welches voll mit Flutter integriert werden kann. Theming erfolgt in Meilenstein 3.
Die Sprache des Servers ist Node.js, wahrscheinlich auf einem Lightsail-Server oder innerhalb einer anderen AWS/Firebase/Azure Umgebung. Da der Server erst in Meilenstein 5 kommt, wird die Entscheidung dann (mit mehr Flutter-Erfahrung) getroffen.
Solange das Projekt allein entwickelt wird, ist der vollständige Gitflow zu umfangreich. Daher wird er vereinfacht, sodass der Master-Branch den aktuellen Abschluss eines Meilensteins (stable) beinhaltet und der Dev-Branch als Standard-Branch für die Entwicklung gilt. Wenn nötig wird noch ein Hotfix-Branch hinzugenommen, der dann nachträglich in den dev und den master gemerged wird. Ein Merge wird nur per PR erlaubt.
Flutter bietet eine eigene mitgelieferte Test-Suite, die sich in CI/CD-Tools einbinden lässt. Ein Test-Driven-Development ist noch nicht sicher, daher wird in der ersten (und kritischen) Phase TDD ausprobiert und dann eine Entscheidung getroffen, ob es dauerhaft Teil des Projektes wird oder keinen Einzug findet.
Als CI-Tool wird Github Actions verwendet, zusammen mit dem Dart-Build-Workflow. Dieser enthält ein flutter analyze
, flutter test
und flutter build
. Der Build wird bei jedem Push auf dev (für Web) und master (für Web, Android, iOS, Mac, Linux und Windows), sowie jedem PR von dev auf master ausgeführt.
Die Webversion wird via Github Pages mit dem Github Pages-Plugin deployed. Das Deployment wird bei jedem Push auf master und jedem PR in master ausgeführt. Der Server wird in einem späteren Verlauf genauer konzipiert und dann auf einen Cloud-Service deployed.
Ziele und Plattformen
Features und Zyklen
Architektur
Screens und Klickwege
Technologien und Infrastruktur
Design Grundlagen
App Icon
Hauptmenü
Trainingsmodus
Liste der Trainingsspiele
Übersicht nach Trainingsspiel
Liste der Trainingspläne
Trainingsplan erstellen
Zwischen Trainingsspielen
Übersicht nach Trainingsplan
Adaptives Design
Regeln für Trainingsspiel
Statistiken
Startscreen
Tutorial
Einstellungen
About
Trainingsplan Empfehlungen
Cloud Funktionen
Projektstruktur und Deployment
Datenstrukturen
Spiel und Spielmodus
Rechtliche Grundlagen Donation
Veröffentlichungskanäle
Beschreibungstexte (evtl. nicht notwendig)