Unique selling points are the most important thing when we start a project. This app allows you to specify dietary restrictions and allergies, then suggests recipes based on a photo of your pantry.
This is a personal project. From ideation to deployment, I handled everything myself.
This app serves as a demonstration of my technical expertise, incorporating various technologies:
The project follows a "serverless" approach, meaning the app communicates directly with the AI API. This halves the problems to be solved, but it increases the risk of misusing the app. I offer the app for free, but I need to pay for using the AI. As far as there is no malicious user, these costs are negligible.
To protect against overuse, I implemented two safeguards: Google login prevents excessive usage by humans, while Firebase App Check deters automated abuse.
Even though I do not change the AI model (gemini-1.5-flash), the behavior of it changes over time. Sometimes significantly, making the app fail to serve recipes. The way the application communicates with the AI is not hard‑coded. I use Firebase Remote Config to adjust the AI communication on the fly without deploying a new app version.
Latest trends propose using Jetpack Compose, but I decided not to. This is because based on my experiences, using the classic layout solution allow us to easily co‑operate with UI/UX developers, meanwhile Jetpack Compose mixes code with UI. This can lead to merge conflicts and other issues.
I am very proud for implementing Firebase Remote Config at the heart of the application. Firebase Crashlytics warns me if it detects failure patterns in the app. Then in Remote Config I can fix/workaround it ASAP. Once fixed, in less than an hour every app on the world fetches the fix, and the life can go on.
This project is fully on me. Architecting the app, working on UX, writing the code, applying UI, configuring integrations, deploying, monitoring. It is a mesmerizing feeling to hear that mom likes the app.
My work style is agile coding. As of this moment I do not see anything important to do. I am monitoring the app.
I want to work with Android/coding/UI/UX. If you have a project, feel free to contact me.