IOM Sudan

Designed and developed an offline-first mobile application in Kotlin to extend the functionality of the RIMS (Response Information Management System) Web Application for IOM Sudan. The app was built to support caseworkers in the field operating under limited or no internet connectivity, enabling seamless data collection and synchronization once online. RIMS is a custom-built platform that streamlines data collection, processing, and reporting across IOM Sudan’s diverse programs.

  • Architecture: Implemented using the MVVM design pattern and repository pattern to promote code modularity, testability, and separation of concerns.
  • Offline Capability: Leveraged Room(DAOs) for local data persistence and WorkManager for robust background synchronization.
  • Dependency Injection: Utilized Dagger Hilt to enhance maintainability, scalability, and code readability.
  • Integration: Fully integrated with the RIMS Web Application through a JSON:API-compliant backend (Drupal).
  • Data Encryption & Security: To make it more secure, the Mobile App would timeout after sometime and require the user to enter the PIN to resume operation. The little data that was saved locally was encrypted.
  • To further protect sensitive information and deter reverse engineering, I stored the cryptographic keys securely using Android’s Native Development Kit (NDK) and obfuscation tools.