The client
JAMI, marketed under the public-facing brand "Tripura Bhumi Seva", is an Android app for citizens of Tripura who need to interact with the state's revenue and land-records systems. The engagement was driven by the need to surface official state records — land parcels, mutation status, tax dues, encumbrance history — in a form ordinary users could actually navigate on a mid-range Android phone. The traditional web portal works, but it assumes a desktop browser and a level of digital familiarity many land-record users in Tripura do not have.
The challenge
Four constraints shaped the project from day one. First, integration. The existing state land-records system was the source of truth, and we could not change it; we had to consume its APIs as they were, including their quirks. Second, offline resilience. Mobile connectivity in rural Tripura is uneven, and a user pulling up their land record at a revenue office could lose signal halfway through the lookup. The app had to cache sensibly and degrade gracefully. Third, device diversity. Most target users run Android 8 through 12 on 2 GB to 4 GB of RAM. A React Native bundle would have been too heavy; a Jetpack Compose-only app would have excluded older devices. Fourth, the multilingual requirement — Bengali, Kokborok, and English at minimum.
What we built
JAMI is a native Java Android app targeting SDK 24 through SDK 34. The architecture is MVVM with Android Architecture Components, Room for local persistence, and a Retrofit-based client for the state API. Firebase handles authentication via phone OTP, push messaging, remote config for feature-flag rollouts, and Crashlytics for production triage. Images and certificate PDFs are fetched on demand and cached in device storage with a TTL policy, so a user who has pulled up a record once can re-view it without a network round-trip.
The UI uses the older View system with Material Components — chosen specifically for compatibility on older devices — and reaches Compose only for a few surfaces where it makes sense. Navigation uses Jetpack Navigation with deep-link support so a link from SMS or WhatsApp opens the exact record inside the app. Localisation is handled with Android's resource system, and translations are sourced and reviewed with state revenue-department staff.
Technology stack
- Language: Java (primary), with a few Kotlin modules for greenfield surfaces.
- Architecture: MVVM, Android Architecture Components, Hilt for DI.
- Networking: Retrofit, OkHttp, Gson.
- Data: Room (local), secured SharedPreferences for tokens.
- Backend services: State land-records API, Firebase Auth (phone OTP), Firebase Cloud Messaging, Firebase Remote Config, Crashlytics.
- Build: Gradle, GitHub Actions for CI, Fastlane for Play Console upload.
Outcome
JAMI is published to Google Play and maintained under an ongoing support retainer. The app is discoverable on Google Play and integrates with the state's public-facing land-records infrastructure. Post-launch stability is strong — crash-free rate has held above 99% since the second production release, tracked via Firebase Crashlytics — and the team continues to ship incremental feature updates quarterly. For Anoint Tech, JAMI is the canonical example of what a government-integration Android app from our studio looks like: native, offline-aware, multilingual, and built to run on the devices people actually own.
Related
- Service: Native Android App Development
- Service: Firebase & Google Cloud Consulting
- Case study: With Joyful Lips — Christian Hymn App
- Case study: Bible Daily — Catholic Readings