-
Notifications
You must be signed in to change notification settings - Fork 0
Technologieauswahl
Aus dem Anwendungsszenario der Anwendung ergibt sich, dass sie als mobile Anwendung umgesetzt werden muss. Daher wurden die Wireframes für mobile Endgeräte umgesetzt. Im Folgenden werden verfügbare Technologien zur Umsetzung der PoCs auf Smartphones aufgelistet und verglichen. Daraufhin wird eine Technologie ausgewählt, in welcher die PoCs und auch die spätere Anwendung umgesetzt werden sollen. Zur Auswahl einer Technologie werden Architectural Decision Records, kurz ADRs verwendet, die dazu dienen verschiedene Lösungen anhand ihrer Vorteile für ein Projekt gegeneinander abzuwägen, um so eine Entscheidung treffen zu können. Als Vorlage wird das Markdown Architectural Decision Records (MADR) verwendet und auf Deutsch übersetzt.
Durch die in Systemarchitektur vorgestellte Struktur sind Frontend und Backend getrennt. Daher werden für das Frontend und das Backend zwei unabhängige ADRs erstellt.
- Status: akzeptiert
- Entscheider: Svend Becker, Alexander Strutz, Miriam Wiedmann
- Datum: 14.07.2021
- Flutter
- Kotlin
- Swift
- JavaScript
- React Native
Gewählte Option: Flutter
- Eine Codebasis kann für verschiedene Betriebssysteme (Android, iOS) wiederverwertet werden
- Der Code kann auch als Web-Client verwendet werden
- Durch "Hot Reload" wird die Entwicklungszeit verlängert
- Testframeworks sind verfügbar
- Nicht alle Teammitglieder sind damit vertraut
Flutter ist ein UI-Framework für die Programmiersprache Dart. Flutter ermöglicht es mit einer Codebasis Anwendungen für verschiedene Plattformen wie Android, iOS, Windows, Linux und den Browser zu erstellen.
- Gut, weil verschiedene mobile Plattformen addressiert werden können
- Gut, weil die Design Frameworks Material Design (Android) und Cupertino (iOS) integriert sind
- Gut, weil für iOS entwickelt werden kann, ohne dass ein Apple-Gerät notwendig ist
- Gut, weil verschiedene Entwicklungshilfen, wie Hot Reload, verfügbar sind
- Schlecht, weil die verfügbaren Module noch begrenzt sind
Kotlin ist eine plattformübergreifende objektorientierte Sprache, die auf Java basiert und auf die Entwicklung von Android spezifiziert ist.
- Gut, weil sie gut dokumentiert ist
- Gut, weil sie für Android einen umfangreichen Support bietet
- Schlecht, weil sie nur für Android nutzbar ist
- Schlecht, weil sie große Ressourcen auf der Entwicklungsmaschine benötigt
Swift ist eine von Apple entwickelte Sprache, die ausschließlich für die Entwicklung von iOS-Geräten verwendet werden kann
- Gut, weil sie Open-Source ist
- Schlecht, weil sie ein iOS-Gerät zur Entwicklung benötigt
- Schlecht, weil sie nur für iOS nutzbar ist
- Schlecht, weil sie die Entwicklungsumgebung vorgibt
JavaScript ist eine Programmiersprache zur Entwicklung von Web-Frontends im Browser.
- Gut, weil sie einfache Unterstützung für HTTP-Requests bietet
- Schlecht, weil sie langsamer ist
- Schlecht, weil sie nur im Browser ausgeführt werden kann
- Schlecht, weil sie nicht Offline nutzbar ist
React Native ist eine auf React.js basierende Web-Programmiersprache, die zur Entwicklung von nativen Anwendungen verwendet werden kann.
- Gut, weil verschiedene mobile Plattformen addressiert werden können
- Schlecht, weil keine Design-Frameworks vorhanden sind
- Schlecht, weil sie nicht Open-Source ist, sondern von Facebook betreut wird
- Schlecht, weil sie langsamer als Flutter (als vergleichsbare cross-plattform Sprache) ist
- Status: akzeptiert
- Entscheider: Svend Becker, Alexander Strutz, Miriam Wiedmann
- Datum: 14.07.2021
- Node.js
- C#
- PHP
- Kotlin (Ktor)
Gewählte Option: Node.js
- Einüben von Frameworks, die für andere Projekte relevant sind
- Keine explizite Schulung, da die Technologien gängig sind
- Testframeworks verfügbar
- Gängige Technologien werden wiederverwendet, anstatt neue Technologien auszuprobieren
- Nicht alle Teammitglieder sind damit vertraut
Node.js ist ein Server-seitiges JavaScript Web Framework zur Erstellung von HTTP Servern und REST APIs.
- Gut, weil es einen eigenen Package Manager gibt
- Gut, weil die erweiterbar ist
- Gut, weil es wenig "Boilerplate-Code" gibt
- Gut, weil sie einfach gehostet oder in der Cloud genutzt werden kann
- Schlecht, weil sie große Projektdateien erzeugt
C# ist eine objektorientierte Sprache, die HTTP Server in Kombination mit dem ASP.NET Core-Webframework bereitstellt.
- Gut, weil sie eine stabile Sprache ist
- Schlecht, weil sie Overhead erzeugt
- Schlecht, weil sie typspezifisch ist
- Schlecht, weil sie dem Team unbekannt ist
PHP ist eine serverseitige Sprache zum Einrichten von HTTP-Webservern.
- Gut, denn die Dokumentation ist gründlich und vollständig
- Gut, weil sie eine stabile Sprache ist
- Gut, weil sie einfach gehostet oder in der Cloud genutzt werden kann
- Schlecht, weil es viel "Boilerplate-Code" gibt
Ktor ist ein von JetBrains entwickeltes Framework zum Erstellen von Webanwendungen in Kotlin, das Co-Routinen für eine hohe Skalierbarkeit verwendet und eine idiomatische API bietet.
- Schlecht, weil sie typspezifisch ist
- Schlecht, weil es nur einen kleinen Paketmanager bietet
System zur Verringerung von Food Waste - Medieninformatik Master, Technische Hochschule Köln erstellt von: Svend Becker (SvendB1996) | Alexander Strutz (astrutz) | Miriam Wiedmann (miwiedmann)
Nutzungsproblem
Marktrecherche
Domänenmodell
Prozessmodell
Stakeholderanalyse
User Profiles
Persona
Ziele
Vision und SWOT-Analyse
Evaluationsleitfaden
Risikoanalyse
Erfordernisse
Szenarien
Anforderungen
Use Cases
Content Model
Navigation Model
Systemcharakter
Interaction Design
Evaluation anhand der Ziele
Evaluation anhand Claimsanalyse
Technologieauswahl
Systemarchitektur
Spezifikation der PoC
Implementierte PoC