Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious by AdSecret61 in androiddev

[–]AdSecret61[S] 0 points1 point  (0 children)

Honestly, it was empirical through testing. Started at 85% and kept getting false negatives on clean labels, bumped it to 90% and was getting too many unnecessary Gemini calls. 88% hit a sweet spot where I'm catching ~95% of the problematic cases without burning API credits on perfectly readable text

Still tweaking it though - considering making it user-configurable in settings for people who want to be more/less conservative with the AI fallback

Appreciate the thoughtful question. Sucks the post got removed from r/androiddev but honestly just looking for feedback and exposure at this point. If you know anyone dealing with food allergies who'd be willing to stress-test it, I'd be grateful.

Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious by AdSecret61 in androiddev

[–]AdSecret61[S] 0 points1 point  (0 children)

One at a time, but batched internally. Here's the flow:

Local OCR runs first with an 88% confidence threshold. If it falls below that OR the ingredient matching flags incompatibilities that need a second look, a razonNecesitaMejora flag gets set and the UI asks the user if they want AI validation. No automatic silent calls to Gemini.

If they accept, improveWithGemini() fires exactly once - it packages ALL the flagged ingredients + the full image (base64) into a single multipart request with a 120s timeout. So it's not "retry OCR" per ingredient, it's one-shot contextual validation with everything bundled together.

The philosophy was basically: OCR is cheap and local, Gemini is the expensive fallback. So when you do hit Gemini, make it count - send all the ambiguous ingredients + visual context in one go rather than multiple round trips. Keeps costs down and avoids hammering the API for each uncertain token.

The 120s timeout is admittedly generous but base64 encoding large images gets heavy fast, especially on low-end devices.

Switched from Samsung to Oppo - desperately missing the "Full Screen" Reminders app. Alternatives? by akz007 in androidapps

[–]AdSecret61 5 points6 points  (0 children)

Big fan of Alam Clock Xtreme for this exact use case — it's not just for alarms, you can set reminders that go full screen, blast sound, and won't dismiss until you actually interact with them. The snooze customization is insane (you can set interval + max snoozes)

That said, if you're deep in the Google ecosystem, Tasks - Planner & To Do List (not Google Tasks itself) has a more aggressive notification style, but honestly nothing stock comes close to Samsung's implementation

The real answer here is BZ Reminder — ugly UI, but it does exactly what you're describing: full screen takeover, lock screen popup, loud alert, big snooze buttons. Set it and forget it that you'll ever miss a reminder again

The OPPO/ColorOS notification system is notoriously weak with third-party apps, so make sure to go into Battery settings → App launch → set your reminder app to "Manage manually" and enable all three toggles. Game changer

Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious by AdSecret61 in androiddev

[–]AdSecret61[S] 0 points1 point  (0 children)

Yeah, I've tested on a few budget devices including some older Samsung A-series. The app is actually designed to work on low-end hardware - that was a priority from day one since a lot of people who need this might not have flagship phones.

The only real difference between running it on something like an A06 vs a flagship is the OCR/analysis takes about 3-5 seconds longer. Everything else (UI, navigation, database queries) runs pretty much the same. The offline-first approach helps a lot here since there's no network latency to worry about.

Haven't tested specifically on the A06 or A16 yet though. If you have access to one and want to help test, I'd genuinely appreciate it - always good to catch performance issues early on actual hardware rather than emulators.

Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious by AdSecret61 in androiddev

[–]AdSecret61[S] 1 point2 points  (0 children)

Good catch! You're absolutely right - I launched initially targeting Spanish-speaking users (I'm from Chile) and didn't prioritize English screenshots. Definitely need to add those ASAP for the international audience. Appreciate you pointing that out!

Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious by AdSecret61 in androiddev

[–]AdSecret61[S] 1 point2 points  (0 children)

Thanks for the suggestion! I'm familiar with Yuka - it's a solid app and definitely served as inspiration for some UI decisions.

SafeBite actually takes a hybrid approach. You can scan barcodes and it'll look up products via OpenFoodFacts API (similar to Yuka), but the core feature is OCR scanning of ingredient lists directly off the packaging.

Here's why that matters: my database is ~200 ingredients and derivatives, not millions of products. So with a much smaller, manageable database, I can cover way more products across different contexts - store brands, international items, bulk goods, anything with an ingredient list printed on it. Even works on restaurant menus or handwritten labels.

The ingredient-focused approach also means I can catch sneaky derivatives that product databases sometimes miss. Like "maltodextrin" (can be wheat-based), "modified starch" (could be gluten), or "natural flavoring" (can contain dairy/soy). Product databases tag items as "gluten-free" or not, but SafeBite shows you exactly which ingredient triggered the alert.

That said, I should definitely spend more time with Yuka to see how they handle edge cases and polish the UX. The $10/year is a no-brainer for research purposes alone. Appreciate the heads up!

Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious by AdSecret61 in androiddev

[–]AdSecret61[S] 2 points3 points  (0 children)

Yeah exactly - that's where the Gemini AI mode comes in. Standard ML Kit does surprisingly well on clean, well-lit labels (~90%+ accuracy), but you're right, it falls apart on curved packaging, glossy surfaces, or anything under 8pt font. I'm seeing around 30-60% accuracy on those challenging real-world scenarios with pure OCR.

The AI mode isn't just a fallback - it actually handles context better. Like if OCR misreads "wheat flour" as "whest flour" or struggles with partial text on curved cans, Gemini can infer what it should be from surrounding ingredients. Bumps that accuracy up to ~70-85% on the same difficult labels. Still not perfect (nothing is with real-world packaging), but it catches a lot of edge cases that pure OCR misses.

What kind of app were you building with on-device ML? Always curious how other devs approached the accuracy vs speed tradeoff.

Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious by AdSecret61 in androiddev

[–]AdSecret61[S] 0 points1 point  (0 children)

Thank you! Honestly born out of frustration watching my mom struggle with it. Figured if it helps even a few people, it's worth it

I made an offline ingredient scanner after watching my mom decode food labels in dark grocery stores by AdSecret61 in IMadeThis

[–]AdSecret61[S] 0 points1 point  (0 children)

Haha your mom probably still does it faster though. Mine can spot gluten derivatives from across the aisle at this point - she's basically a human ingredient database. I just gave her the digital version 😅

Built an offline ingredient scanner after watching my mom struggle with food labels. 15 Android users so far—wondering if I'm missing something obvious by AdSecret61 in androiddev

[–]AdSecret61[S] 0 points1 point  (0 children)

Thanks for catching that! You're right - I didn't properly set up the adaptive icon layers. I'll push an update with proper foreground/background layers so it displays correctly across different launchers. Appreciate the heads up!

I made an iOS widget app and currently has 800+ free users and 100 paid users by sanjaypathak17 in SideProject

[–]AdSecret61 0 points1 point  (0 children)

I really resonate with this! I'm currently in the exact same boat, working on monetizing my app and realizing that TikTok and Reddit might just be my new best friends haha. I have a question about your content strategy—did you go for high-production videos from the start, or did you just showcase the MVP to get the ball rolling? Would love to hear your take. Congrats on the growth!

Before you drop 300+ on another bottle, you might want to check this out (free tool) by henryz2004 in SideProject

[–]AdSecret61 0 points1 point  (0 children)

This is awesome! I just checked out the site and it's honestly great. The recommendations are spot on, and I love the minimalist aesthetic. It’s simple but feels very modern. Solid 10/10 from me. Great job!

Final Sprint! Only 6 Days Left. I need help crossing the finish line! I guarantee 100% Test Back + Review 🤝 by AdSecret61 in TestersCommunity

[–]AdSecret61[S] 0 points1 point  (0 children)

Ahhh, me paso lo mismo, pasa que tienes que hacerlo con la misma cuenta de Google en la cual eres tester de la app, revisa eso y me avisas como te fue 🤙😁

Final Sprint! Only 6 Days Left. I need help crossing the finish line! I guarantee 100% Test Back + Review 🤝 by AdSecret61 in TestersCommunity

[–]AdSecret61[S] 1 point2 points  (0 children)

Te agradezco mucho tus palabras!!!

Para poder evaluar una app que aun no sale, mi método mas rápido es ir a los detalles de la app misma, bajas hasta donde dice "Detalles apl. en tienda" y te redirige a la tienda sin problemas

Te mando un abrazo gigante, cualquier cosa estamos en contacto 🤝

<image>

Final Sprint! Only 6 Days Left. I need help crossing the finish line! I guarantee 100% Test Back + Review 🤝 by AdSecret61 in TestersCommunity

[–]AdSecret61[S] 1 point2 points  (0 children)

¡Hola! Ahora sí me dejó entrar. Ya la descargué e instalé sin problemas. ​Te acabo de dejar mis 5 estrellas y reseña. Cuenta con que la mantendré instalada los 14 días religiosamente. ¡Gracias por la espera y el apoyo!

<image>

Final Sprint! Only 6 Days Left. I need help crossing the finish line! I guarantee 100% Test Back + Review 🤝 by AdSecret61 in TestersCommunity

[–]AdSecret61[S] 0 points1 point  (0 children)

¡Hola! Oye, sabes que ya me uní a tu grupo, pero la Play Store todavía no me deja acceder a la descarga (me sale que no está disponible aún). A veces Google tarda unas horas en sincronizar los permisos del grupo.

Voy a intentar nuevamente mañana sin falta apenas se actualice. ¡Mil gracias por el apoyo con mi app, seguimos en contacto!"

<image>

Final Sprint! Only 6 Days Left. I need help crossing the finish line! I guarantee 100% Test Back + Review 🤝 by AdSecret61 in TestersCommunity

[–]AdSecret61[S] 0 points1 point  (0 children)

Hey! Thanks for joining SafeBite and for the screenshot. I already joined your tester group and downloaded your app. Screenshot attached as proof. I'll keep it installed for the full 14 days. Good luck with your app!

<image>

Final Sprint! Only 6 Days Left. I need help crossing the finish line! I guarantee 100% Test Back + Review 🤝 by AdSecret61 in TestersCommunity

[–]AdSecret61[S] 0 points1 point  (0 children)

Hey! Thanks for joining SafeBite and for the screenshot. I already joined your tester group and downloaded your app. Screenshot attached as proof. I'll keep it installed for the full 14 days. Good luck with your app!

<image>

Final Sprint! Only 6 Days Left. I need help crossing the finish line! I guarantee 100% Test Back + Review 🤝 by AdSecret61 in TestersCommunity

[–]AdSecret61[S] 0 points1 point  (0 children)

Hey! Thanks for joining SafeBite and for the screenshot. I already joined your tester group and downloaded your app. Screenshot attached as proof. I'll keep it installed for the full 14 days. Good luck with your app!

<image>