Coder Social home page Coder Social logo

rumitpatel / mynotes Goto Github PK

View Code? Open in Web Editor NEW

This project forked from avidraghav/mynotes

0.0 0.0 0.0 709 KB

πŸ“ A demo todo/notes app which demonstrates the use of MVVM architecture with Test-cases, Navigation Component Library, Room Database, LiveData, Coroutines, Datastore etc.

License: Apache License 2.0

Kotlin 100.00%

mynotes's Introduction

πŸ“ MyNotes

Android-CI Actions Status GitHub license GitHub stars GitHub forks Twitter Follow

Hacktoberfest 2022 Android Weekly Contributions Highly Welcome Available issues to contribute

MyNotes is a Demo app which demonstrates the use of MVVM architecture, Dependency Injection, Navigation Component Library, Room Database, LiveData, Coroutines, Datastore and other Modern Android Development.

πŸŽ₯ Working Demo

πŸ—‘οΈ Dependency Injection

The project uses Hilt for Dependency Injection πŸ’‰

I highly recommend to start with Manual Dependency injection method and then move to Hilt, see branch di-ManualInjection for implementation.

  • To Implement DI with Hilt see di-hilt

πŸ”§ Built With

  • Kotlin - Programming Language Used in the app.
  • Navigation Component Library - For setting up app's navigation.
  • Room Database - For persisting data/tasks in device's local storage.
  • Kotlin Coroutines - To execute code asynchronously.
  • Flow - In the simplest of ways consider this as a pipe through which the data flows in the app, by using flow a developer doesn't need to refresh variables which contain data.
  • LiveData - Used to observe the data on the UI layer
  • ViewModel - To Store UI-related data that isn't destroyed on UI changes.
  • RecyclerView - To Display data in a list format.
  • Hilt - For Dependency Injection
  • Datastore - For Storing Data

see feature/Prefernces-Datastore to Implement Preferences Datastore by following Abstraction

βœ… Tests

  • For an example of Room Database Schema Migration see branch room-migration-testing
  • For Implementing Instrumented Test Cases for Room Database see branch testing
  • For Implementing Unit Tests for ViewModel and Repository by using the latest testing apis (as of August 2022) see branch testing-coroutines- 1.6.1

πŸ—οΈ Architecture Design

Screenshot 2022-01-18 at 1 31 48 PM

πŸ¦Έβ€β™‚οΈ Contributors

Made with contrib.rocks.

This project is made for educational purposes so don't be shy of asking any questions about any concept from the app or about android development.

Do open issues and raise PRs to I'll try my best to assist you. If this project helps you then do leave a 🌟 πŸ˜ƒ

πŸ“© Contact

Don't let yourself get caught in the decision paralysis, just start learning and building. πŸ˜‰

DM me at πŸ‘‡

License

 Copyright 2022 Raghav Aggarwal

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

mynotes's People

Contributors

avidraghav avatar rahulraghuwanshii avatar rumitpatel avatar yazh1202 avatar binayshaw7777 avatar newtoncesarroncari avatar devrahul-2508 avatar ravi-kumar7 avatar rishujam 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.