All projects

Native Android app

Super Juice

The bartender's math, done in three taps.

Year
2026
Role
Product · Android · UI · Release
Status
Release 1.1.1
Super Juice

The problem

Super juice is the technique that multiplies juice yield using peels, food acids and water — but every fruit has a different factor, and the math shifts with the weight of the peels. Doing it in your head mid-service, or checking a spreadsheet behind the bar, is slow and error-prone.

The solution

A native app that settles the math in three taps: pick the fruit, enter the weight of the peels, read the exact grams of citric acid, malic acid, extra ingredient and water. Five fruits, grams/ounces toggle, history of the last five recipes and three languages picked inside the app.

Technical decisions

  1. 01

    Native, not web

    The environment is a bar: wet hands, no signal in the cellar, opened in the middle of service. Kotlin with Jetpack Compose gives an instant cold start and works fully offline — the app requests zero permissions and makes zero network calls.

  2. 02

    Formulas tested against the source

    The factors come from Kevin Kos's official calculator. Rather than trust the transcription, unit tests compare the app's output against the exact source values, decimal by decimal. In an app whose only job is to calculate, the test is the product.

  3. 03

    Language chosen in-app, not inherited from the system

    Fruit names aren't direct translations: what English calls Lemon and Lime are 'limão siciliano' and 'limão tahiti' in Brazil — and 'lima' in Portuguese names a different fruit entirely. Letting the user pick PT, EN or ES inside the app removes ambiguity in a field where the wrong fruit means the wrong recipe.

  4. 04

    Minimal persistence with Room

    The last five recipes, reloadable with one tap. No account, no cloud, no sync — data is born and dies on the device, which removes a privacy policy, a backend and a recurring bill in one decision.

Screens

  • Home screen: fruit picker and peel weight input

    Home screen: fruit picker and peel weight input

  • Result for 100 g of peels, with a copy button

    Result for 100 g of peels, with a copy button

  • Grapefruit adds MSG — each fruit has its own formula

    Grapefruit adds MSG — each fruit has its own formula

  • History of the last five recipes, reloadable with one tap

    History of the last five recipes, reloadable with one tap

  • Dark theme, with amber accents

    Dark theme, with amber accents

  • The same app in Spanish — language is chosen inside the app

    The same app in Spanish — language is chosen inside the app

  • Language picker: Portuguese, English and Spanish

    Language picker: Portuguese, English and Spanish

What shipped

  • Five fruits, with the math validated by unit tests against the official calculator
  • Fully offline, zero permissions, zero telemetry
  • Three languages (PT · EN · ES) and light/dark theme persisted across sessions
  • Signed release build, version 1.1.1 (versionCode 3)

Stack

  • Kotlin
  • Jetpack Compose
  • Room
  • DataStore
  • Material 3