A native Android app for browsing, searching, and creating recipes — the mobile client for the recipe-app-api backend. Built as the final project for a Mobile Application Development (DAM) course at IPT.
"Sabor Digital" is Portuguese for "Digital Flavor" — the app's UI is in Portuguese.
- Account system — register, login (JWT-backed), logout, and a user agreement/consent screen
- Recipe browsing — home feed, full recipe list, and detailed recipe view with ingredients and step-by-step instructions
- Search & filtering — find recipes by name, ingredient, or category
- Recipe creation — compose a recipe with ingredients, instructions, difficulty, servings and prep time, including a photo taken directly via the device camera
- Profile management — view profile, change password, delete account
- Image handling — recipe/ingredient photos loaded with Glide, captured/cropped via CameraX
| Layer | Technology |
|---|---|
| Language | Kotlin |
| UI | Android Views (Fragments) + Jetpack Compose (mixed) |
| Networking | Retrofit2 + Gson |
| Images | Glide, CameraX, ExifInterface |
| Min / Target SDK | 25 / 34 |
| Backend | recipe-app-api (FastAPI + SQL Server) |
app/src/main/java/pt/ipt/dam/sabordigital/
├── data/
│ ├── remote/
│ │ ├── api/ # Retrofit service interfaces (Auth, User, Recipe, Category, Ingredient)
│ │ └── models/ # DTOs shared with the API
│ └── retrofit/ # Retrofit client setup (base URL, Gson config)
├── ui/
│ ├── auth/ # Login, Register
│ ├── main/ # Home, Profile, Recipe list/details/creation
│ └── theme/ # Compose theming
└── utils/
- Android Studio (recent version, AGP compatible with Kotlin/Compose as pinned in
gradle/libs.versions.toml) - Android SDK 34, min supported device/emulator on SDK 25+
git clone https://github.com/viribusegovis/sabor-digital-android.gitThere is no hosted backend anymore, so you'll need to run recipe-app-api yourself before the app will work.
The API's base URL is set in RetrofitInitializer.kt via the host value. Point it at your local server's address, e.g. http://10.0.2.2:8080 for the Android emulator.
Build and run the app module from Android Studio, or via Gradle:
./gradlew installDebug