Recipe App (BeeWare) Case Study

Background

RecipeBook is a personal project born out of a simple idea: build something useful, learn new technology, and have something to share with friends and family. Rather than reach for an existing recipe app, this was an opportunity to go deeper into cross-platform Python mobile development using BeeWare and to build something that works entirely offline.

Recipe app architecture diagram

What It Does

The app allows users to browse and search recipes on their device with no internet connection required. When connectivity is available, a manual sync pulls the latest recipes down from a Cloud Run backed REST API and updates the local SQLite database. The device is always the source of truth for reads and the cloud handles storage and distribution.

The MVP is currently running on Android. Thanks to BeeWare, iOS support is available without changes to the codebase and Android was simply the priority for initial deployment.

Architecture

  • Mobile app built with Python and BeeWare (Toga UI framework)
  • Local SQLite database for fully offline recipe access
  • User-triggered sync fetches updates from a REST API
  • Django Rest Framework REST API deployed on GCP Cloud Run
  • Cross-platform by design, currently deployed on Android

Why BeeWare?

The core appeal was being able to write a genuine cross-platform mobile app entirely in Python. BeeWare compiles Python code into native apps for both Android and iOS, meaning there is no context switch into Swift, Kotlin, or React Native. For a Python developer, that is a meaningful advantage. The Toga UI framework is relatively minimal, but for an app at this stage it provided everything needed without getting in the way.

Challenges

The data and sync logic was the most demanding part of the project. Designing a system that reads reliably from local SQLite while staying consistent with a remote backend required more iteration than expected, from schema decisions to how and when sync operations should run. This layer of the app is still being refined as the project continues to develop.

Standing up the Cloud Run service and REST API also had its learning curve, though the GCP deployment experience from other projects helped move that along.

Current State & Next Steps

The app has a working MVP where recipes can be browsed, searched, and accessed fully offline. Active development is ongoing with a big list of goals on the roadmap. Users adding and editing their own recipes, sharing, and a more robust sync engine are a few of those items.