Giter VIP home page Giter VIP logo

kmp-notes-app's Introduction

Notes - A multiplatform notes app built with Kotlin Multiplatform

Banner image

Project Status: Active – The project has reached a stable, usable state and is being actively developed.

Notes is a simple note taking app built with KMP(Kotlin Multiplatform), formerly known as KMM (Kotlin Multiplatform Mobile). The app is supported on both iOS and Android.

Table of contents

  1. Demo
  2. Screenshots
  3. Tech Stack
  4. Notable Features
  5. High-level Architecture Diagram
  6. Source code and architecture

Demo

Android

Notes-Android-Emulator-Demo.mp4

IOS

Notes-IOS-Simulator-Demo.mp4

Screenshots

Android

   

IOS

   

Tech Stack

Common

Android

IOS

  • Swift UI for UI and navigation on IOS.

Notable features

Auto save 🪄
The app automatically saves the changes made to a note in an efficient manner. This precludes the need for the user to click a save button after every change, thus, significantly improving the UX of the app.
Instant search 🔍
The app instantly starts to search for notes that match the provided search term, as the search term is being typed, in an efficient manner. It not only looks for matches to the title of the notes but also checks for matches to the contents of the notes as well. This ensures that search results are returned to the user as soon as possible.
Native UI 🔮
The UI looks and feels native on each supported paltform - Android and IOS. This is because the the UI is built completely using UI tool kits that are native to each platform. This ensures that the user gets a native looking app on both the platforms.
Themed splash screen 🎨
In Android 12 and above, the background color of the splash screen matches the system theme. This minor detail, helps in improving the synergy of the app with the rest of the system from the moment the app is launched.
Themed App Icon 🦄
The app also supports the "Themed Icons" feature available on Android 13 and later. If the user has opted in for the feature on a device that is running Android 13 and higher, the app's icon will be tinted to inherit the coloring of the user’s chosen wallpaper and other themes.

High-level Architecture Diagram

Source code and Architecture

  • Uses MVVM architecture.
  • All concrete implementations in the common module are prefixed by the term “Default”.
  • Commit messages follow the Conventional Commits specification.
  • The module structure is heavily based on the guidance mentioned in the "Guide to architecture article" posted on the offical android developers website.

Disclaimer

I am primarily an Android developer and I learnt Swift and Swift UI on the fly, while I was developing the app. I am not familiar with ios development atall, so, there might be some slight issues with code quality on the ios side of things. My focus was to get the ios app, up and running as soon as possible with the very limited amount of knoweldge that I had on Swift.

kmp-notes-app's People

Contributors

technophilist avatar

Stargazers

 avatar  avatar Mohammad avatar Siro Daves avatar  avatar daichi-matsumoto avatar Leonardo Consani Valeriano avatar Oguzhan Dogdu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.