{"type":"video","version":"1.0","html":"<iframe src=\"https://www.loom.com/embed/7a5a5c7c4a4440bea6336fb4595aeb59\" frameborder=\"0\" width=\"1920\" height=\"1440\" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>","height":1440,"width":1920,"provider_name":"Loom","provider_url":"https://www.loom.com","thumbnail_height":1440,"thumbnail_width":1920,"thumbnail_url":"https://cdn.loom.com/sessions/thumbnails/7a5a5c7c4a4440bea6336fb4595aeb59-486c3b3fa9ae4789.gif","duration":1744.415,"title":"HabitFlow Flutter App Architecture Overview 🙂","description":"In this Loom, we explain our Flutter Habit Tracker app and how the files work together. I covered the Home and Progress logic, loading and refreshing habits, computing completion percentage, showing empty states, and dynamically building the habit list with delete and checkbox completion. Nohanilo explained Navigation.dart as the main controller, including loading from storage and fetching from the API, then saving and updating the UI. Ahtifat presented StorageService using SharedPreferences to persist habits, and Bamra Fouadif presented APIService with HTTP, JSON conversion, and error handling. There was no specific action requested from viewers."}