Course Purpose
Course Learning Outcomes
Discuss fundamental concepts used in mobile application development, including the Flutter framework, Dart language, and cross-platform architect
Implement core Flutter development techniques, state management patterns, and device hardware integration, as demonstrated in the Jirani Connect project
Create production-quality mobile application solutions using Flutter that address real-world problems in the Kenyan and East African context
Evaluate mobile application solutions for security, performance, testability, and compliance with Kenya's Data Protection Act (2019)
Course Content
Mobile Development Foundations: Flutter ecosystem and architecture; Dart programming language; Null safety; Object-oriented and functional programming in Dart; Flutter widget system; Material Design 3
UI Development: StatelessWidget and StatefulWidget; Flutter three-tree architecture; Layout widgets (Column, Row, Stack, ListView, GridView); Navigation patterns (Stack, Bottom Tab, Drawer); Forms and validation
State Management: Local state with setState(); Global state with Riverpod (Provider, StateProvider, StateNotifierProvider, StreamProvider); Consumer widgets; Prop drilling and its solutions
Data Persistence: SharedPreferences; SQLite with sqflite; Hive NoSQL storage; Offline-First architecture; Connectivity detection; Sync queue implementation
Web Services and APIs: Asynchronous Dart (Future, async/await, Stream); REST API integration with dio; JSON parsing with json_serializable; Error handling and retry logic; API security with flutter_dotenv; Introduction to GraphQL
Device Hardware Integration: Runtime permissions with permission_handler; GPS and Google Maps with geolocator and google_maps_flutter; Camera integration with image_picker; Biometric authentication with local_auth; Accelerometer and gyroscope with sensors_plus
Cloud Backend and Real-Time Features: Firebase Authentication (email/password, Google OAuth); Cloud Firestore real-time CRUD; Firebase Security Rules; Firebase Cloud Storage; Firebase Cloud Messaging (FCM); M-PESA Daraja STK Push API; Supabase as an alternative backend; Kenya Data Protection Act (2019) compliance
Security, Testing and Deployment: OWASP Mobile Top 10; flutter_secure_storage; Unit testing with flutter_test and mockito; Widget testing; Integration testing with Patrol; Android app signing and keystores; GitHub Actions CI/CD; Google Play Store submission