Simple Notes app built using 100% shared UI code with Jetpack Compose, SQL Delight to store data and Decompose + Essenty to manage navigation.
Used the compose template from Compose Multiplatform Wizard Thanks to them, project setup was considerably easier. Also large help from xxFast's Krouter library
- check your system with KDoctor
- install JDK 8 on your machine
- add
local.properties
file to the project root and set a path to Android SDK there - run
./gradlew podInstall
in the project root
Instead just run only the sqldelight tasks from the gradle tab
- generateCommonMainNotesDBInterface
- generateSqlDelightInterface
(Can also run the verify tasks for good measure.)
To run the application on android device/emulator:
- open project in Android Studio and run imported android run configuration
To build the application bundle:
- run
./gradlew :composeApp:assembleDebug
- find
.apk
file incomposeApp/build/outputs/apk/debug/composeApp-debug.apk
Run the desktop application: ./gradlew :composeApp:run
To run the application on iPhone device/simulator:
- Add linker flags for SQL delight as
-lsqlite3
in Xcode under other linker flags. (Only if sqlite error shows) - Open
iosApp/iosApp.xcworkspace
in Xcode and run standard configuration. - Or can also be run using the KMM Jetbrains plugin that can be readily downloaded from the plugins marketplace.
What | How |
---|---|
🎭 All UI | Jetbrains Compose |
💉 DI | Koin |
🧭 Navigation | Decompose |
ð Storage | SqlDelight |
Note List Screen | Note Details Screen |
---|---|
Note List Screen | Note Details Screen |
---|---|
Have any questions, doubts or want to present your opinions, views? You're always welcome.
Support it by clicking the ⭐️ button on the upper right of this page.
MIT License
Copyright (c) 2023 Adithya Kamath
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.