KtNotes fullstack Notes📝 taking application to showcase Kotlin comprehensive capabilities in server-side and both iOS & Android platforms.
The project has been split into two separate parts:
This is a REST API built using Ktor Framework deployed on Railway.
Navigate to /api
directory to browse and know more about backend API.
An Android and iOS app built using Kotlin Multiplatform that consumes KtNotes APIs.
Kotlin Multiplatform is a framework of Kotlin that allows for sharing of a single codebase for business logic across different targets/platforms. Some of the targets supported by kotlin are: Android, iOS, Kotlin/JVM, Kotlin/JS, Android NDK, Windows, Linux, macOS etc.
The mobile has been split into 3 main modules:
This module contains shared kotlin code that holds the domain and data layers and some part of the presentation logic i.e. shared ViewModels
This module contains the android application's UI built using Jetpack Compose UI
- Jetpack Compose UI
- OkHttp engine for Ktor
- Security Crypto for Encrypted Shared Preferences
This module contains iOS code that holds the iosApp UI built using SwiftUI
- Swift UI
- Darwin engine for Ktor
- User Defaults Preferences
App uses MVVM architecture. ViewModel carries business logic and shared across both platform. Platforms extend respective shared ViewModel and use accordingly