Skip to content

Latest commit

 

History

History
54 lines (38 loc) · 3.38 KB

README.md

File metadata and controls

54 lines (38 loc) · 3.38 KB

Note App

General info

This project is simple Android Note App to learn recommended by Google MVVM and Repository Pattern.

Technology

Try to use these technology Coroutines, Room , Navigation Component, unit test with io mockk, koin etc. without remote service.

Structure

While doing this app, I want to explain my tech stack in android development process.

  • Firstly, This app created with MVVM (Model-View-ViewModel) that is recommended by Google and written on Kotlin Language 100%.
  • While using MVVM, I chose Single Activity-Multiple Fragments Structure with JetPack Navigation Architecture Component
  • On the other hand we know that if the app is not big enough as we can use Single Activity-Multiple Fragment structure otherwise it can not be good performance such as CPU, Memory Allocation and Memory Leaks etc.
  • Besides that, I used Light weight koin Dependency Injection Library works as Service Locater that provides SOLID principles and doing maintainable test easily.
  • While doing database operation, I used Coroutines to handle. It can easily lifecycle aware and lightweight thread system to deal with Input Output operations with IO Thread. Thus Main thread may not overload.
  • For the UI, the Material Library used in this project as possible and use some Animations and Transitions.
  • For the local data provider, I used Room SQLite DataBase and SharedPreferences.
  • Business Operation are in the following; Users can edit, delete and create their notes. There are two tables one - to - many relationships each other that are NoteModel(represents Many) and UserModel (represents One)
  • For the Helper to User Operations, I Used Shared Preferences Manager while create, edit and delete operations and to handle Users.
  • Unit tests were written for repository and view model
  • Trying to use Kotlin Lint and Android name conventions.

Feature

Project is included according to user create a notes, update their notes and delete their notes if note updated note changed.

  • Login Page

Login Page

  • Create A Note

Create A Note Page

  • Update A Note

Update A Note Page

  • Note List

 Note List

  • Note Delete

 Note Delete