A simple todo application. You can add, update, delete and sort your todos.
Used technologies: Kotlin coroutines, MVVM, Navigation Component, Diffutil, RecyclerView Animator, ViewModel, Room, ViewBinding and more.
The project follows the sibling simpletodoapp project's Android Studio configuration:
- Android Gradle Plugin 9.4.0 and Gradle 9.6.0 (use the checked-in wrapper).
- Android SDK 37 for compilation and targeting; minimum SDK 24 (Android 7.0).
- JDK 25 for the Gradle daemon, with Java/Kotlin bytecode targeting Java 11.
- Kotlin DSL build scripts and dependency versions in
gradle/libs.versions.toml. - AGP's built-in Kotlin support, Parcelize, Navigation Safe Args, and KSP for Room.
Use Android Studio's bundled JDK 25 as the Gradle JDK, or set JAVA_HOME to a JDK 25 installation. Install SDK Platform 37 through SDK Manager, then run:
./gradlew :app:assembleDebug :app:assembleRelease :app:testDebugUnitTest :app:lintDebugWith an emulator or device connected, run the database compatibility and navigation smoke tests:
./gradlew :app:connectedDebugAndroidTestThe application ID remains com.donaboyev.simpletodoapp, and the database name and version-1 schema are preserved. Updating an installed app also requires signing with its original signing key. SDK 37 window insets are handled around the toolbar, content, and keyboard. Fragment menus use lifecycle-aware MenuProviders.
Migration references: AGP 9.4 compatibility, built-in Kotlin, and Room releases.
| Add todo | Update todo |
|---|---|
![]() |
![]() |
| Delete todo | Sort todos |
|---|---|
![]() |
![]() |
| Delete all todos |
|---|
![]() |






