Inspiration
I studied Agricultural Extension and Management and Agricultural Technology, and I served my NYSC year at the Ministry of Agriculture in Abeokuta. I saw how many farming decisions come down to simple numbers: how much fertilizer to buy, how far apart to plant, and whether a season will actually make a profit. Many farmers decide by guesswork because clear tools are hard to find, and they are rarely in the farmer's own language or units. I wanted to put those tools in a farmer's pocket.
What it does
FarmMate is a global farming toolkit for Android. It gives farmers:
- Crop Intelligence: guides with spacing, fertilizer, growing period, water, soil, temperature and season for [number] crops.
- Calculators: farm profit, fertilizer needs and plant spacing, in metric or imperial units (hectares or acres, centimetres or inches, kilograms or pounds).
- Livestock and fish farming guides.
- History: saved calculations stay on the phone.
- Languages: English, French, Spanish and Hindi.
- Accounts are optional: farmers can use the app as a guest or sign up with email.
How I built it
I built FarmMate as a native Android app in Kotlin with Jetpack Compose and Material 3, using Android Studio and Gradle. Firebase Authentication handles sign-up, email verification, login, password reset and account deletion. Google AdMob shows the ads. Saved history, language and unit choices are stored on the device with SharedPreferences and JSON. I drew custom vector icons for the dashboard, and added a side menu and a notification bell. I built the website on Google sites: I used an AI assistant to help me write and debug parts of the code, and I reviewed and tested the result myself.]
Challenges I ran into
- Going global: the first version was Nigeria-first. Supporting other countries meant adding unit conversion (metric and imperial), a language system, and more currencies.
- Translating the app: I needed a way to translate every screen without rewriting each one, so I built a small translation layer that falls back to English when a text isn't translated yet.
- Build errors: a long app file, a memory crash in Gradle, and mismatched data files taught me to read compiler errors carefully and fix them one at a time.
- Store rules: Google Play requires a privacy policy, an account-deletion page, a Data safety form, an Advertising ID declaration and a testing period for new accounts.
- Safe ads: test ads in debug builds so I never click my own live ads.
Accomplishments that I'm proud of
- I took an idea from my agricultural background to a working app with accounts, ads, calculators and guides.
- The app works in four languages and two unit systems.
- I prepared it for real release: signed builds, privacy policy, data deletion and store listing.
- I did it myself as a first-time Android developer.
What I learned
- How to structure an app in Jetpack Compose: screens, navigation, state and saved data.
- How Firebase sign-in works end to end, including email verification and deleting an account.
- How localization and unit conversion work in a real product.
- How to prepare an app for Google Play: release builds, signing, privacy rules, ads policies and testing tracks.
- That the work after the code is as big as the code itself.
What's next for FARMMATE
- Publish on Google Play and collect feedback from real farmers.
- Translate the crop, livestock and fish guide details, not just the interface.
- Add more languages such as Hausa, Yoruba, Igbo, Swahili and Portuguese.
- Sync saved calculations to the cloud so they follow a farmer to a new phone.
- Add weather, local market prices and planting-calendar reminders.
- Build an iPhone version and a simple web version.
Built With
- android
- android-studio
- firebase-authentication
- google-admob
- google-sites
- gradle
- jetpack-compose
- json
- kotlin
- material-3
- sharedpreferences
- xml
Log in or sign up for Devpost to join the conversation.