Von Anfang an haben wir von unserem Partner die Anforderung erhalten, dass jedes Medizinprodukt als Symbiose aus Hardware (Schnelltest) und Software (unser Teil) eine eigene App haben sollte. Vor allem, um die Dokumentation im Hinblick auf den Verwendungszweck zu erleichtern.
Unsere Idee war es daher, modulare Komponenten zu bauen, die in verschiedenen Anwendungen verwendet werden können. Da es sich um eine Produktfamilie handelt, haben wir schließlich Feature-Toggles implementiert, so dass jedes Produkt abgesehen von seinen Feature-Toggles im Grunde gleich ist. Ein Vorteil ist, dass alle Verbesserungen und Fehlerkorrekturen gleichzeitig in alle Produkte einfließen, die das Feature verwenden. Die tatsächliche Veröffentlichung hängt von den internen Veröffentlichungszyklen ab, da es sich schließlich um ein medizinisches Produkt handelt. Ein Nachteil ist aus offensichtlichen Gründen, dass, wenn wir einen Fehler einführen und dieser nicht frühzeitig erkannt wird, dieser möglicherweise auch auf andere Anwendungen übertragen wird.
Im Laufe der Zeit und aufgrund der Verbesserungen von Kotlin/Native und des Engagements von JetBrains haben wir uns entschieden, bei Kotlin zu bleiben, um plattformübergreifend nutzbare sogenannte Multiplattform-Frameworks zu bauen. Dies half uns, Code-Duplizierung von Geschäftslogik zu reduzieren und Apps noch schneller und sicherer zu entwickeln. Zusammengefasst haben wir die Geschäftslogik von jeder nativen App-Implementierung getrennt und kleine Module erstellt, die in allen Apps der SmarTest®-Familie und über alle Plattformen hinweg verwendet werden können.
Eine zweite Anforderung war es, einen konsistenten Benutzerfluss in den Apps zu schaffen, der beide Anwendungsarten, sowohl die private Nutzung (durch Laien) als auch die professionelle Nutzung (nur durch medizinisches Personal), unterstützen sollte. Daher haben wir eine animierte Anleitung für Laien entwickelt, die von Fachleuten übersprungen werden kann. Abgesehen von den textlichen Komponenten bleibt der größte Teil der Anwendung für beide Gruppen gleich.