Nomz is an Android application that helps you make informed decisions about what to eat. By simply taking a picture of a menu, Nomz uses generative AI to analyze the dishes and provide you with a personalized list of what's edible based on your dietary preferences.
- Image-Based Menu Analysis: Take a picture of any menu, and Nomz will intelligently extract the food items and their ingredients.
- Customizable Dietary Preferences: Set your dietary needs, including vegan, vegetarian, and specific meat preferences (chicken, pork, beef, seafood, lamb).
- Smart Recommendations: Get a clear, color-coded list of "Edible" and "Not Edible" items based on your preferences.
- Ingredient Highlighting: For non-edible items, Nomz highlights the conflicting ingredients so you know exactly what to avoid.
- Handling Customizations: If a dish can be modified to fit your diet (e.g., swapping pork for chicken), Nomz will mark it as edible and let you know what to ask for.
- Fast and Responsive: With image resizing and a streaming API, you get your results quickly and efficiently.
- Android Studio (latest version recommended)
- Kotlin (version 2.0.21 or higher)
- Android SDK (API level 35 or higher)
-
Clone the Repository:
git clone https://github.com/your-username/nomz.git cd nomz -
Set Up Your API Key:
- You will need a Gemini API key to use the app's core functionality. You can get one from Google AI Studio.
- Create a file named
local.propertiesin the root of the project. - Add your API key to the file like this:
apiKey="YOUR_API_KEY"
-
Build the Project:
- Open the project in Android Studio.
- Let Gradle sync the dependencies.
- Build the app using the "Build" menu or by running the following command in the terminal:
./gradlew assembleDebug
- You can run the app directly from Android Studio on an emulator or a physical device.
- Alternatively, you can install the generated APK from
app/build/outputs/apk/debug/app-debug.apk.
Nomz is built with a modern Android tech stack, including:
- Kotlin: The primary programming language.
- Jetpack Compose: For building the user interface. -agp = "8.12.0-alpha03"
- Coroutines and Flow: For asynchronous operations and managing data streams.
- Google Generative AI: The core of the image analysis functionality.
- AndroidX Libraries: Including
core-ktx,lifecycle-runtime-ktx,activity-compose, and more.
For a full list of dependencies, please see the app/build.gradle.kts and gradle/libs.versions.toml files.
Warning: Not for Production Use
This application is a proof-of-concept and should not be deployed to a public-facing app store in its current state. The Gemini API key is stored in the client-side code, which means it can be extracted from the APK. This is a major security risk.
For a production application, you must set up a secure backend server to manage your API key and proxy requests to the Gemini API.
To create a release build for testing purposes, you will need to:
- Generate a Signing Key: Follow the official Android documentation to create a signing key.
- Configure Signing in Gradle: Set up the
signingConfigsblock in yourapp/build.gradle.ktsfile to use your new key. - Build a Release APK or App Bundle:
- Use the "Build" > "Generate Signed Bundle / APK" option in Android Studio.
- Alternatively, run the following command in the terminal:
./gradlew assembleRelease # or for an App Bundle ./gradlew bundleRelease
The signed APK or App Bundle can then be distributed for private testing.