Latest Android version is available on Google Play.
You can download compiled version of application from GitHub Releases.
You can find the compiled vesion of the application for Android, Linux, macOS and Windows.
Please note that for running unsigned version of macOS application, you need to temporarily disable Gatekeeper, so after installing the application run
sudo xattr -dr com.apple.quarantine /Applications/OpenOTP.app
in the terminal. You can learn more about this here.
To install Linux version run:
sudo dpkg -i openotp.deb
The project is configured with with Gradle and you can find the latest release build commands in the release.yml file.
Example build commands for particular platforms:
- desktop:
./gradlew desktopApp:packageDistributionForCurrentOS
- Android:
./gradlew androidApp:assembleDebug
- iOS: open iosApp.xcodeproj in Xcode and run the build
(you might need to configure the
Team
inSigning & Capabilities
)
- Kotlin
- Compose Multiplatform (UI)
- Material3 design (UI components)
- Kotlin Coroutines (structured concurrency)
- Kotlin Datetime (current time access)
- Kotlin Serialization (data serialization)
- Koin (DI)
- Kermit (Logging)
- Decompose (lifecycle-aware business logic)
- Essenty (handy additions to Decompose)
- moko resources (resources for localization)
- Multiplatform Settings (persistence of keys)
- uuid (UUID generation)
- ByteBuffer (allocate and modify
byte[]
natively) - Uri KMP (parsing URI from QR codes)
- Webcam Capture API (desktop camera bindings)
- zxing (desktop QR codes recognition)
- AndroidX Security (
EncryptedSharedPreferences
for Multiplatform Settings) - AndroidX CameraX (camera access on Android)
- ML Kit Barcode scanning (Android QR codes recognition)
- Accompanist (permissions and system UI control on Android)
- Gradle KTS (Kotlin DSL)
- Gradle version catalogs (dependencies versions)
- Github Actions (CI/CD)