- Kotlin
- Multi module
- Single Activity
- MVVM (Jetpack ViewModel + LiveData)
- Jetpack Navigation
- Jetpack Compose
- Hilt
- Room, migrations
- Coroutines
- Wear OS
- Widgets
- Notifications
- Custom Views (Pie Chart, Bar Chart, Color Selection, Calendar)
- Recycler, custom Adapter Delegates, DiffUtils with Payloads
- Drag and Drop, Gesture detection
- Gradle Kotlin DSL
- View Binding
- Database backup and restore, export to csv, automatic backup
- Dark mode
- Unit tests, UI tests
- CI with github actions
- Emojis with EmojiCompat
- base - F-Droid version, no google play services, no Wear OS support.
- play - Google Play version, with google play services, Wear OS support.
.
βββ .github # CI files.
βββ app # Mobile app.
βββ buildSrc # Deps and versions.
βββ core # Shared classes, strings.
βββ data_local # Database.
βββ domain # Business logic.
βββ navigation # Navigation interfaces and screen params.
βββ resources # Common resources between phone and watch apps.
βββ wear # Wear OS app.
βββ wear_api # Mobile - Wear OS communication contracts.
βββ features
β βββ feature_archive # Screen for archived data.
β βββ feature_base_adapter # Shared recycler adapters.
β βββ feature_categories # Screen for categories and tags.
β βββ feature_change_activity_filter # Edit activity filter screen.
β βββ feature_change_category # Edit category screen.
β βββ feature_change_complex_rule # Edit complex rule screen.
β βββ feature_change_goals # Edit goals common logic.
β βββ feature_change_record # Edit record screen.
β βββ feature_change_record_tag # Edit tag screen.
β βββ feature_change_record_type # Edit type screen.
β βββ feature_change_reminder # Edit reminder screen.
β βββ feature_change_running_record # Edit timer screen.
β βββ feature_change_shortcut # Edit shortcut screen.
β βββ feature_color_selection # Delegate for color selection.
β βββ feature_comment_selection # Delegate for comment selection.
β βββ feature_complex_rules # Screen for complex rules list.
β βββ feature_date_edit # Data edit screen.
β βββ feature_dialogs # Dialogs.
β βββ feature_goals # Separate screen for goals.
β βββ feature_icon_selection # Delegate for icon selection.
β βββ feature_main # Main screen with tabs.
β βββ feature_notification # Notifications.
β βββ feature_pomodoro # Pomodoro mode.
β βββ feature_records # One of main tabs, records list.
β βββ feature_records_all # Screen showing all records.
β βββ feature_records_filter # Dialog for records filters.
β βββ feature_reminders # Screen showing the reminder list.
β βββ feature_running_records # One of main tabs, timers.
β βββ feature_settings # One of main tabs, settings.
β βββ feature_shortcuts # Screen for all shortcuts.
β βββ feature_statistics # One of main tabs, statistics.
β βββ feature_statistics_detail # Screen showing detailed statistics.
β βββ feature_suggestions # Screen for activity suggestions.
β βββ feature_tag_selection # Screen for selecting tags.
β βββ feature_views # Custom views.
β βββ feature_wear # Phone app logic to connect to wear app.
β βββ feature_widget # Widgets.
Here are few steps to translate the app in your language ...
For app users: the best way to improve translation or to make app suggestions is to open an issue.
A. Edit translation file
- Create a personal fork of this project
- In your repo, edit translation file for your language (they are stored in folder: resources > src > main > res > values-xx ) + commit changes on your Dev branch.
π‘Tip: base your translation on the official english translation available here and pay attention to preserve the exact same number of lines between the 2 'strings.xml' files.
B. (option) Build and test your changes using the app
In your repo:
- Run the "Build" job on your 'Dev' branch
- When the job ends, get the APK file (see Artifact)
- Copy the APK on your Android smartphone and install it (requires to allow 'install app from unknown sources') Note: ignore error message at app launch ... app will work normalyπ
- Run the app, check your translation and re-start the process above to improve your translation ...
C. Create a pull reguest to suggest adding your translation to the app
When your translation is ready:
- Create a pull request for with the new translation file to official repo
- Follow the code review: in the PR, answer / explain the changes you've performed and improve your "proposal" with new commits (they will be added automaticaly to the opened PR).
Thanks, your are done π. On next App release, all users will enjoy new labels in the app ...
Android App
Copyright (C) 2020-2025 Anton Razinkov devrazeeman@gmail.com
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Wear OS App
Copyright (C) 2023-2025 Joseph Hale https://jhale.dev, @kantahrek, Anton Razinkov devrazeeman@gmail.com
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.


