Code Monkey home page Code Monkey logo

noteapp's Introduction

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

noteapp's People

Contributors

android-getir avatar cihatbostanci avatar

Stargazers

 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.