Architecture Mobile Offline First (Android/Kotlin)

Malgré les avancées en terme de couverture réseau, de nombreux utilisateurs se retrouve sans accès à Internet. Comment architecturer son application mobile pour fournir une expérience utilisateur optimale même en offline ?