Arkadii Ivanov
4 years ago
1 changed files with 27 additions and 3 deletions
@ -1,4 +1,28 @@ |
|||||||
An example of todo app based on Jetpack Compose UI library (desktop and android) and Decompose navigation library. |
An example of Kotlin Multiplatform todo app with shared Jetpack Compose UI. |
||||||
|
|
||||||
To run desktop application execute in terminal: ./gradlew desktop:run |
Supported targets: `Android` and `JVM`. |
||||||
To run android application you will need to open project in Intellij IDEA or Android Studio and run "android" configuration |
|
||||||
|
Libraries used: |
||||||
|
- Jetpack Compose - shared UI |
||||||
|
- [Decompose](https://github.com/arkivanov/Decompose) - navigation and lifecycle |
||||||
|
- [MVIKotlin](https://github.com/arkivanov/MVIKotlin) - presentation and business logic |
||||||
|
- [Reaktive](https://github.com/badoo/Reaktive) - background processing and data transformation |
||||||
|
- [SQLDelight](https://github.com/cashapp/sqldelight) - data storage |
||||||
|
|
||||||
|
There are multiple common modules: |
||||||
|
- `utils` - just some useful helpers |
||||||
|
- `database` - SQLDelight database definition |
||||||
|
- `main` - displays a list of todo items and a text field |
||||||
|
- `edit` - accepts an item id and allows editing |
||||||
|
- `root` - navigates between `main` and `edit` screens |
||||||
|
|
||||||
|
The `root` module is integrated into both Android and Desktop apps. |
||||||
|
|
||||||
|
Features: |
||||||
|
- 99% of the code is shared: data, business logic, presentation, navigation and UI |
||||||
|
- View state is preserved when navigating between screens, Android configuration change, etc. |
||||||
|
- Model-View-Intent (aka MVI) architectural pattern |
||||||
|
|
||||||
|
To run the desktop application execute the following command: `./gradlew desktop:run`. |
||||||
|
|
||||||
|
To run the Android application you will need to open the project in Intellij IDEA or Android Studio and run "android" configuration. |
||||||
|
Loading…
Reference in new issue