🥖🥖This app is still baking under the hood🥖🥖
Keeping up with the latest Android trends is always a challenge. One of the techniques I use is to always have a reference app handy. These apps should showcase the latest Android architecture and patterns for the following areas:
- UI and Biz Logic Separation
- Navigation UX and Theme
- Data and Image Retrieval
- Threading
- Dependency Injection
- Testing
The latest incarnation of my reference app is called Recipes.
Since I love a good double entendre, this app conflates Meal and Code Recipes, creating a UX to demonstrate the techniques it describes.
One data source for this app is from the excellent (and free) TheMealDB which has nice amount of categorized data with textual and visual information describing a semi-complex process (aka, a Meal Recipe). The other data source was my 🧠 and describes the code used to build the app in the form of Code Recipes (sprinkled in amongst the Meal Recipes)
Code Recipes: 👉👉 assets/code-recipes 👈👈
The goal was to brush up on the the latest Android tech stack components and pack as many features as I could into an app created in 3 ??? weekends of watching sports on the couch. Junie and Claude (and Gem3) actually did a lot of work, and once again came through in frontend design and impl, dependency management, and kicking off new features. This time the data model was a huge AI win as I prompted Junie with the TheMealDB API url, a reference to Ktor, and in less than 5 minutes the API layer materialized in my git status staged log.
Another reason this app came together so nicely is due to the plethora of free and easy to use Android Tools and Libraries supplied by both Big-Biz (hello GOOGLE and JETBRAINS), and the Android Community ICs toiling away on GitHub and Medium. The Code Recipes mostly originate from these sources and describe the wiring and plumbing used to create a visually compelling Android Application.
| Dark Mode | Light Mode |
|---|---|
pull-to-refresh.mp4 |
search.mp4 |
Detail Screens
| Dark Mode | Light Mode |
|---|---|
meal-detail.mp4 |
code-detail.mp4 |
This app integrates Koog AI Agents to provide an intelligent cooking assistant powered by Google's Gemini models. The AI agent can help users with recipe suggestions, cooking tips, and navigation through the app.
- AI-Powered Chat: Interactive cooking assistant that understands recipe-related queries
- Multi-Model Support: Supports Gemini 2.5 Pro, Flash, and Flash Lite models
- Tool Integration: AI agent can execute tools and provide contextual responses
- Function Calling: Advanced agentic behavior with tool registry support
To use the AI features, you need a Google Gemini API key:
- Obtain a Gemini API key from Google AI Studio
- Create a
local.propertiesfile in the project root (if it doesn't exist) - Add your API key to the file:
GEMINI_API_KEY=your_api_key_here - The key will be automatically loaded into
BuildConfigduring build
Note: The local.properties file is gitignored and should never be committed to version control.
| Dependency | Description |
|---|---|
| android-youtube-player | YouTube Player library for Android |
| Coil | Image Loader for Jetpack Compose |
| Compose Adaptive | Adaptive Layouts for Jetpack Compose for mutliple screensize and form factor detection |
| Compose Adaptive Navigation Suite | Adaptive Navigation Suite for Material 3 for Navigation widget screensize support |
| Compose Material3 | Material Design Components for Jetpack Compose |
| Compose Material3 Expressive | Expressive APIs for Material 3 for new widets and dynamic motions |
| Compose Navigation3 | Navigation Component for Jetpack Compose |
| Haze | Chris Banes 'glassmorphism' blur library for Compose. |
| Hilt | Dependency Injection for Android |
| KmLogging | Kotlin Multiplatform logging library. |
| Koog AI Agents | AI Agent framework with Gemini integration |
| Ktor | HTTP Client for Android |
| Markdown Renderer | Mike Penz Multiplatform Markdown Renderer |
| TheMealDB | Free, easy to use, API for Food Recipes |
| Truth | Google Assertion Library used for Testing |
| Turbine | Coroutine Flow Testing Library from CashApp |











