A cross-platform recipe application built using Jetpack Compose Multiplatform, allowing users to browse, search, and save their favorite recipes. Users can view recipe details, add them to favorites, and log in/out seamlessly across platforms.
- ✅ Three main tabs:
- Home: Browse and search recipes.
- Favorites: View saved favorite recipes (requires login).
- Profile: Login/Logout functionality.
- 🔍 Search recipes from the Home screen.
- 📝 Click on any recipe to see full details.
- ❤️ Save recipes to Favorites (persisted via local database).
- 🔐 Authentication flow:
- If user is not logged in, a Login BottomSheet appears when trying to save a favorite.
- 🌐 Uses TheMealDB API for fetching recipe data.
- UI Framework: Jetpack Compose Multiplatform
- Data Layer:
- SQLDelight for local database persistence
- Networking: Ktor or simple HTTP client depending on platform
- Dependency Injection: Koin
- Settings & Preferences: Multiplatform Settings
- Routing/Navigating: Custom navigation without
WASMJS, usingJsas target - Authentication: Simple login/logout logic with session handling
- HomeAscreen
- List of recipes fetched from TheMealDB API
- Search bar to filter recipes by name
- FavoritesScreen
- List of saved favorite recipes
- Requires login to access
- ProfileScreen
- Shows login status
- Option to log in or out
- From Home tab, click a recipe to navigate to Details Screen.
- In Details Screen, tap "Add to Favorites":
- If user is logged in → Recipe is saved.
- If user is NOT logged in → A bottom sheet prompts for login.
This app uses TheMealDB API to fetch recipe data.
- Base URL:
https://www.themealdb.com/api/json/v1/1/ - Endpoints used:
search.php?s=– For searching recipeslookup.php?i=– For getting details of a specific recipe