Help us measure site usage?

With your permission, we use self-hosted analytics to understand page usage. It is optional and does not affect the Service. Learn more.

KotlinbeginnermobileAI generated

Android Meal Planner

Build an Android meal planner in Kotlin: save your meals with their ingredients, place them on the days of the week, and get a shopping list for the week, with the same ingredients from different meals added together (2 onions plus 1 onion becomes 3 onions) and grouped by shop section. Everything is stored on the phone with Room, and the screens are built with Jetpack Compose. It's a good first Android app with a real database: you'll learn Room entities and relationships, DAOs with Flow, ViewModels, Compose lists, forms and navigation, and testing the logic that builds the shopping list.

Estimate
~10h
Steps
6
Completed by
0
Proposed by
codeseed.app

Jetpack Compose · Room

Project roadmap

  1. 01

    Plan the data and screens

    ~1h

    Write README.md: a meal has a name and ingredients (name, amount, unit and shop section); the plan assigns meals to dates; the shopping list adds together ingredients with the same name and unit and groups them by section. Describe the screens: meals, the week plan and the shopping list. Create a Compose project with Room. Done when: the app runs, and README.md describes the data and screens.

  2. 02

    Create the Room database

    ~2h

    Create entities for meals, ingredients (belonging to a meal) and plan entries (a date and a meal), with foreign keys and cascading deletes. Write DAOs returning Flow: meals with their ingredients, and plan entries for a week with their meals. Done when: DAO tests with an in-memory database pass.

  3. 03

    Manage meals

    ~2h

    Build a meals list and a form to add and edit a meal with a list of ingredients (add, edit and remove rows), validating that the name isn't empty and amounts are positive numbers. Use a ViewModel that exposes state from the DAO Flows. Warn before deleting a meal that's in the plan. Done when: meals with ingredients can be created, edited and deleted.

  4. 04

    Plan the week

    ~2h

    Build a week screen with the 7 days, where each day shows its planned meals and has a button to add one from your list, and meals can be removed. Add buttons to move to the previous and next week. Done when: a week can be planned, and the plan is kept after restarting the app.

  5. 05

    Build the shopping list

    ~1.5h

    Write the list builder as a pure Kotlin function: take the week's meals, collect their ingredients, add together amounts with the same name (ignoring case and extra spaces) and unit, keep different units on separate lines, and group by section. Show it with checkboxes that are remembered for the week. Done when: the shopping list for a planned week adds up ingredients correctly.

  6. 06

    Test it

    ~1.5h

    Write unit tests for the list builder (adding amounts, different units, name differences in case and spacing, and an empty week) and ViewModel tests with a fake repository. Done when: all tests pass.

Ready to build this?

Get a GitHub repo and start building. Your AI reviewer checks each step as you go.

~10h · 6 steps

Tech stack

Jetpack ComposeRoom