WhatsLeft is a crowd-sourced solution to see which items grocery stores have left in stock.
Die iOS-App verwendet SwiftUI und Combine und wurde in weniger als 48 Stunden als Teil von #WirvsVirusHack geschrieben, einem Hackathon, der von der deutschen Regierung organisiert wurde, um eine Lösung für die Probleme in der Coronakrise zu finden.
Ein Like auf unser Youtube-Video würde uns sehr helfen:
Unsere App ist nach MVVM aufgebaut. Dabei findet die Anbindung zum View Model über @ObserverdObjects statt. Dies ermöglicht uns nicht nur eine saubere Trennung von Objekt-Stukturen, Logik und View-Code sondern Live Updates der UI sobald neue Daten vorliegen.
Die Views sind in zwei verschiedene Typen aufgeteilt, MainViews und SubViews. SubViews, auch Components genannt, stellen hierbei Views da, die ausschließlich in einer anderen View verwendet werden. Also bei einer Liste ist die Liste die MainView und die Listenelemente sind die SubViews.
Die ViewModels spiegeln die HauptViews wieder. Jede HauptView hat ein eigenes ViewModel, ausgenommen von dieser Regel sind die Detail-, Filter- und Einkaufsliste-View.
Die Kommunikation mit den Backend findet über eine REST-API statt, diese wird durch das Framework Combine ermöglicht. Combine erlaubt es uns, asynchron die Daten zu laden und anschliend durch ein ViewModel die View zu aktualisieren.
Bei der MacOS-App handelt es sich um eine Catalyst-App. Catalyst ist ein Framework, welches es uns ermöglicht eine iOS-App als native App unter MacOS laufen zu lassen.