This project is a Kotlin Multiplatform app developed as capstone project of graduation course in analysis and systems development at IFSC (Instituto Federal de Santa Catarina). It's an application developed to help people to find places to visit in Urubici, a touristic city located in Santa Catarina, Brazil.
This app was developed using the MVVM architecture pattern and following the Clean Architecture concepts.
Currently, the structure of the system is as follows:
As a second step, is in progress improve the architecture to save the app data locally using Realm, so the app can be used offline and we can save network resources:
- KMP - Shared business logic and data management
- Jetpack Compose - Native Android UI
- SwiftUI - Native iOS UI
- Ktor - Network calls
- RealmDB - Local storage
- Koin - Dependency injection
- GitLive Firebase - KMP Support for Firestore and Storage
- Touchlab Skie -
Flow
andCoroutines
interop with Swift - Coil - Load images in the app
In this project we are using the Karma commit convention to keep project readability.
We are using Ktlint to standardize Kotlin code, to check, run:
./gradlew ktlintCheck
And to format, run:
./gradlew ktlintFormat
All rules you can find in .editorconfig
file.
First, build the project with the following command:
./gradlew assembleDebug
Then, install it on a connected device:
./gradlew installDebug
Doc in progress...