- Kotlin 91.4%
- Python 8.6%
|
|
||
|---|---|---|
| app | ||
| assets/masters | ||
| core | ||
| fastlane | ||
| gradle | ||
| licenses | ||
| tools | ||
| .gitattributes | ||
| .gitignore | ||
| BRANDING.md | ||
| build.gradle.kts | ||
| CONTRIBUTING.md | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| keystore.properties.example | ||
| LICENSE | ||
| README.md | ||
| REPRODUCIBILITY.md | ||
| settings.gradle.kts | ||
| THIRD_PARTY_NOTICES.md | ||
Toki
Toki is a world clock app that shows time and sunlight for any given moment, letting you keep track of different clocks and explore the globe's time zones and geography. See the time in your chosen locations at a glance on the Clocks screen, compare how their times line up at different moments on the Compare screen, and see which areas share the same time on the colourful Map screen. Toki emphasises the state of daylight in each place for comfortable scheduling, and takes account of daylight-saving and UTC-offset changes.
Toki works entirely offline, requests no Android permissions, requires no account and contains no advertising or tracking. Time-zone rules come from the device's built-in IANA database, so Toki remains in step whenever the device receives an update to its time rules. Zone names, coordinates and boundaries are bundled with each release. It is designed and maintained by ian2.
Get Toki
Google Play and F-Droid links will be added when those listings are live. The official APK is the complete app. The release page also provides its SHA-256 checksum and the signing-certificate fingerprint.
Build from source
Building Toki requires JDK 17 or later (development uses JDK 21) and Android SDK Platform 36. When running Toki, the APK supports Android 8.0 (API 26) and later. Gradle downloads its normal build dependencies on first use; the app itself needs no network access.
./gradlew assembleDebug
./gradlew :core:test :app:testDebugUnitTest
The debug APK is written under app/build/outputs/apk/debug/. Release signing
uses a local keystore.properties file, which is not committed. See
keystore.properties.example for the required
fields. A build without that file can still produce a release variant, but it
will not be an official signed release.
app/ contains the Android UI and bundled assets. core/ contains the time,
solar and map logic with JVM tests. tools/ contains the data generators,
source versions and localisation checks. Bundled data and its provenance
explains which information comes from the device and which inputs are included
with the app.
For the matching toolchain and instructions to rebuild and verify a published
APK without the signing key, see Reproducible builds.
Store listing files are documented in fastlane/.
Source and contributions
This repository contains the source corresponding to published Toki milestones. Development between milestones takes place in a separate working repository; experiments and temporary working files are not part of the public release history. Each release tag remains available with the source for that release.
AI tools have assisted with coding and some visual asset work. Toki itself – its concept, research, interface, behaviour, data choices and implementation design – is created by Ian and refined through extensive iteration and testing. The source and buildable assets for published releases are available in the public repository for anyone to inspect.
Issues, localisation help and focused patches are welcome; please read CONTRIBUTING.md before starting a substantial change.
Toki's original code and buildable assets are licensed under GNU GPLv3. Third-party notices cover the bundled font and data under their respective terms. The branding policy explains how modified builds can be distributed without confusing them with official ian2 releases.