/KtNotes

Full stack Note taking app in kotlin

Primary LanguageKotlinMIT LicenseMIT

KtNotes fullstack Notes📝 taking application to showcase Kotlin comprehensive capabilities in server-side and both iOS & Android platforms.

💡About the Project

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.

Uses:

KtNotes Mobile App

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.

Modules

The mobile has been split into 3 main modules:

shared:

This module contains shared kotlin code that holds the domain and data layers and some part of the presentation logic i.e. shared ViewModels

androidApp:

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

iosApp:

This module contains iOS code that holds the iosApp UI built using SwiftUI

  • Swift UI
  • Darwin engine for Ktor
  • User Defaults Preferences

Architecture

App uses MVVM architecture. ViewModel carries business logic and shared across both platform. Platforms extend respective shared ViewModel and use accordingly ViewModel Structure

Screenshots