Imagine if you could change the lives of farmers using Android. We did that! This is the story of how Apollo Agriculture relies on two Android apps, both fully written in Kotlin, are offline first and heavily rely on Server Side Driven UI to render the UI components.

We’ll take a deep dive into the challenges we face when developing apps for devices with low memory, low internet bandwidth, offline-first approach and some of the key lessons we’ve learnt so far. This talk will show how our server-side UI approach works, and some of the reasons that made us adapt this. Additionally, the talk covers the tools we use to make this possible: an internal tool called “Choice Expressions” and an implementation of JsonSchema, both used to build UIs from a set of conditions.

Lastly, we’ll talk about some of our future plans, including but not limited to adopting Jetpack Compose in the apps.