
Indonesien rangiert weltweit an 2. Stelle bei der Katastrophenanfälligkeit mit einem Wert von 43,5 %, doch es gibt eine kritische Lücke zwischen rohen Regierungs-Katastrophendaten und umsetzbaren persönlichen Warnungen. Die meisten Menschen, die in katastrophengefährdeten Gebieten leben, haben keine zuverlässige, personalisierte Möglichkeit zu wissen, wann eine Überschwemmung, ein Erdrutsch oder ein Erdbeben bevorsteht, und noch weniger, wenn ihre Internetverbindung abbricht.
Die Herausforderung bestand darin, eine vollständige Android-Anwendung von Grund auf neu zu entwickeln, die diese Lücke schließt: Echtzeitdaten von BMKG, BNPB, USGS und PetaBencana zu aggregieren, ML-Vorhersagemodelle darauf auszuführen, Push-Benachrichtigungen vor dem Eintreten von Ereignissen zu liefern und die volle Funktionalität auch offline aufrechtzuerhalten.
Als einziger Android-Entwickler habe ich die gesamte mobile Anwendung End-to-End mit Jetpack Compose und moderner Android-Architektur entworfen und gebaut.
Kern-App & Architektur
- Die vollständige Android-Anwendung mit Jetpack Compose, Material 3, Hilt für die Abhängigkeitsinjektion und Navigation Compose für das Bildschirm-Routing erstellt
- Die App um eine saubere MVVM-Architektur mit klar getrennten UI-, Domänen- und Datenschichten strukturiert
Dashboard & Echtzeitdaten
- GPS-basierte Standortbestimmung über FusedLocationProviderClient implementiert
- Ein farbcodiertes Risiko-Dashboard erstellt, das KI-Risikobewertungen vom FastAPI-Backend konsumiert und Überschwemmungen, Erdrutsche und Erdbeben abdeckt
- Auto-Refresh alle 5 Minuten, Pull-to-Refresh, Shimmer-Ladezustände und Offline-Cache-Fallback über Room hinzugefügt
Offline-First-Karte
- MapLibre Android SDK mit Offline-MBTiles-Unterstützung integriert, sodass Evakuierungsrouten und Notunterkunftsmarker ohne Internet funktionieren
- Eine Vollbildkarte mit Ebenen-Umschaltern (Banjir / Longsor / Gempa / Laporan), Bottom-Sheet-Markerdetails und Offline-Bannererkennung erstellt
Community-Berichte
- Den Flow zur Übermittlung von Community-Berichten mit Gefahrentyp-Auswahl, NLP-verifizierter Badge-Anzeige, anonymer Geräte-ID (UUID) und Rate-Limit-Countdown-UX erstellt
- Berichts-Markierungsfunktion mit 3-Flaggen-Auto-Hide-Logik integriert
Push-Benachrichtigungen & Hintergrundaufgaben
- Firebase Cloud Messaging (FCM) für Push-Benachrichtigungen vor Katastrophenereignissen konfiguriert
- WorkManager für stille Hintergrund-Risiko- und Alarmprüfungen alle 15 Minuten eingerichtet, die Geräteneustarts über RECEIVE_BOOT_COMPLETED überleben
Alarmhistorie & Paginierung
- Cursor-basierte paginierte Alarmhistorie mit Paging 3 + Compose erstellt, gruppiert nach Datum mit farbcodierten Schweregradindikatoren
Einstellungen & Präferenzen
- Benachrichtigungs-Umschalter pro Gefahr implementiert, die in DataStore gespeichert werden Offline-Karten-Download-Trigger über WorkManager und FCM-Token-Lebenszyklusmanagement hinzugefügt
Tech Stack: Kotlin, Jetpack Compose, Material 3, Hilt, Retrofit, Room, MapLibre, WorkManager, Firebase Cloud Messaging, Paging 3, DataStore, Coil, Python, FastAPI, Neon PostgreSQL
Eine vollständig integrierte Multi-Katastrophen-Android-App mit einem echten FastAPI-Backend und ML-Vorhersagemodellen geliefert. Die App verarbeitet Echtzeit-Risikodaten, Offline-Kartenzugriff, Community-Crowdsourcing mit NLP-Verifizierung und FCM-Push-Benachrichtigungen.