Case Study

Building Cross-Platform Mobile Apps with Flutter: Ihuriro Case Study

CD
Cyatangabo Didier
August 18, 2024 11 min read
No Image

How I built Ihuriro, a community safety reporting app with Flutter, covering architecture decisions, state management, and real-time features.

Why Flutter?

For Ihuriro, a community safety reporting app, I needed to ship on both Android and iOS quickly. Flutter's single codebase approach and excellent location/maps support made it the ideal choice.

App Architecture

I used a clean architecture approach with three layers:

  • Presentation - Flutter widgets with Provider for state management
  • Domain - Business logic and use cases
  • Data - Repository pattern with Firebase and REST API

Key Features Implementation

Location-Based Reporting

The app captures the user's GPS coordinates when submitting a report, displaying the incident location on Google Maps for authorities.

Real-Time Notifications

Firebase Cloud Messaging pushes status updates to users when their reports are being processed or resolved.

Offline Support

Reports can be drafted offline using local storage (Hive database) and automatically sync when connectivity returns.

Lessons Learned

Flutter's hot reload dramatically speeds up UI development. However, platform-specific features like background location tracking still require native code via platform channels.

Share this article

Tags

Flutter Dart Mobile Development Firebase

Related Articles