Skip to content

iamanbansal/KtNotes

Repository files navigation

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

Releases

No releases published

Packages

No packages published