Android · ITI training · 3 min read

Healthy Habit / Food Planner

“What’s for dinner this week?” Recipes from around the world, planned, reminded, and available offline.

I built Healthy Habit / Food Planner, a recipe and meal-planning Android app with weekly plans, reminders, and offline access, published to Google Play as part of my ITI training.

My role
I built the Android application end to end during the ITI Android track.
Context
ITI Android track project (2023), published to Google Play as part of the training
Period
2023
Status
Published · ITI training
Platform
Android

Published · ITI training

  • Android (Java)
  • MVP
  • Retrofit
  • Room
  • Firebase Auth
  • WorkManager

Roles: Android Developer.

The problem

Deciding what to cook is a recurring, low-stakes decision that still eats up time every week: what’s in season, what a household already knows how to make, what will actually get eaten instead of left in the fridge. Recipe content on its own doesn’t solve that; it needs to be searchable from more than one angle and it needs to connect to a plan a person will actually follow.

A recipe app that only lets someone search by name assumes they already know what they want to cook. Most of the time, that’s not true: someone wants to cook something new from a country they like, or use up an ingredient sitting in the fridge, or just see what’s popular this week. The planning problem starts before the recipe is chosen, not after.

Who it was for

Anyone planning meals for the week who wants recipes they can search by country, ingredient, or category, and a plan that reminds them rather than relying on memory. That includes someone cooking for a household who wants variety without starting from a blank search box every time, and someone newer to cooking who wants a video alongside the steps rather than text alone.

My role

I built the Android application end to end during the ITI Android track, from the recipe browsing and search flows through the weekly plan, reminders, and the optional sign-in. As part of the ITI Android training, the app was later published to Google Play as a required deliverable of the track, not as a separately commissioned client product.

What I built

  • Meal of the day

    A featured meal greets a user on open, instead of an empty search box.

  • Search by country, ingredient, or category

    Recipes can be found from three different starting points, depending on what a user already knows they want.

  • Popular meals by country

    Browsing by country surfaces what's popular there, for someone who wants to cook something new rather than search for something specific.

  • Recipe details with video

    Each recipe page shows ingredients, steps, and a video, so a cook isn't left guessing at a technique from text alone.

  • Favourites and weekly plan

    Recipes save to favourites or slot into a weekly plan, kept separately from the recipe content itself.

  • Reminders

    Scheduled reminders nudge a user back to the plan they made, instead of leaving it to be forgotten.

  • Firebase sign-in or guest mode

    A user can sign in with Firebase or skip that step entirely and use the app as a guest.

Search by country, ingredient, or category all lead to the same recipe detail screen, so a user can start from whichever angle fits how they’re thinking about dinner that day. Favourites and the weekly plan are both user-owned data, kept apart from the recipe content pulled from TheMealDB, so a plan doesn’t break if a recipe changes and a recipe doesn’t disappear if a plan is cleared. Guest mode means a user can plan meals before ever deciding whether to create an account.

Popular meals by country sit alongside the search paths as a way to browse rather than search, for someone who wants inspiration more than a specific answer. Reminders close the loop between planning and cooking: a weekly plan is only useful if something nudges a person back to it, rather than leaving it as a list they made once and forgot.

How it works

Views talk to a presenter that keeps remote recipe content and locally stored, user-owned data on separate paths, with reminders scheduled around the plan that results.

Views talk to a presenter that separates remote recipe content from the user-owned data stored locally and reminders scheduled around it. Relationships: Views to Presenter; Presenter to Repository; Repository to TheMealDB API; Repository to Room; Presenter to Firebase Auth; Presenter to Reminders.

Decisions that mattered

  • I chose an MVP structure that separates views from data over letting screens read data sources directly because recipe content and a user's own plans and favourites needed to change independently without screens quietly depending on how each one was fetched.

Tech stack

App
Recipe data
Tooling
  • WorkManager: Scheduled reminders
  • Lottie: Animated UI feedback
  • Material Design: UI components and layout

Outcome

Healthy Habit / Food Planner was published to Google Play as part of the ITI Android training, not as a client-owned listing. It was a required deliverable of the training track rather than a commercial release.

What I learned

Offline planning works when remote content and user-owned data are modelled separately.

Once favourites and the weekly plan lived in their own local store instead of being derived from the recipe API each time, the app stopped depending on a live connection just to show a plan a user had already made. That separation turned out to matter more for reliability than any single feature on its own.