Get a usable photo first.
The capture screen is built on CameraX with a hand outline over the preview. A bad photo spoils every step after it, so the flow starts by getting the hand where the outline is.
CameraX · Kotlin
An AI palmistry app: the user photographs a palm, answers a couple of questions and gets a reading broken down by palm line. Published on Google Play.

Future Lines takes the user through a short onboarding, a camera screen with a hand outline, a quick quiz and a subscription offer. The main screen splits the reading into palm lines, each with its own explanation.
I developed the Android app, including the camera flow and two distribution builds with separate billing.
The screens below are from the current Google Play build, captured on a Pixel 9 Pro XL.
The first screen, the palm line overview and a line explanation. Open any capture to inspect it.
The app is small, so the work went into the parts that decide whether a reading is possible and how it is paid for.
The capture screen is built on CameraX with a hand outline over the preview. A bad photo spoils every step after it, so the flow starts by getting the hand where the outline is.
CameraX · Kotlin
ML Kit pose detection runs on the device and checks whether the hand is inside the guide frame. When it is not, the user sees a hint instead of waiting for a poor result.
ML Kit · On-device ML
Google Play and direct-APK builds come from the same code as two product flavors, each with its own billing path.
Gradle product flavors · Google Play Billing
The subscription offer comes after the photo and the quiz, and each line explanation is partly free, so users see what they would pay for.
Subscriptions · Google Play Billing
Future Lines covers a guided camera flow with an on-device check, product flavors for two distribution channels, and subscription monetization in a consumer app.
Evgenii Fedin · Android Engineer