The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A pro camera and photography toolkit for Android, built with Kotlin Multiplatform and Compose Multiplatform. The UI and logic are shared, so iOS can be added later as another target.
Download the latest APK from Releases, or see it on the website.
androidApp/ Android entry point (MainActivity, manifest)
shared/src/commonMain/.../prolens/
app/ AppState and the tab shell
core/designsystem/ Theme (zinc, Geist), components, icons
core/model/ Gear, viewfinder settings, recipes
core/photomath/ Exposure, depth of field, blur, FOV maths
core/sun/ Sun and moon positions and times (SunCalc port)
core/grids/ Grid geometry and Compose renderer
core/platform/ expect/actual seams: camera, sensors, permissions, location
features/<screen>/ viewfinder, calculators, light, coach, gear
shared/src/androidMain/ CameraX + Camera2 interop, motion sensors, permissions
docs/RESEARCH.md The photography research and feature plan
docs/prototype/ The HTML prototype (open index.html in a browser)
You need JDK 21 and the Android SDK (local.properties with sdk.dir).
./gradlew :shared:testAndroidHostTest # unit tests
./gradlew :androidApp:assembleDebug # debug APK
./gradlew :androidApp:assembleRelease # release APK
Release signing reads prolens.storeFile, prolens.storePassword, prolens.keyAlias and prolens.keyPassword from ~/.gradle/gradle.properties. Without them the release builds unsigned. Keystores and passwords are never committed.
The landing page lives in website/ (React, Vite, TypeScript) and is published to GitHub Pages.
cd website
npm install
npm run dev # local preview
npm test # unit tests
Copyright 2026 the Prolens contributors. Licensed under the Apache License 2.0.