Course Purpose

To equip learners with the knowledge, theory, and practical skills of mobile application development using Flutter and Dart, including the design and implementation of modern cross-platform mobile applications, their architectural foundations, and their deployment to real-world production environments.

 

 

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