Skip to content

CanerGures/SimpleNoteApp

Repository files navigation

contributions welcome API

SimpleNoteApp

An app for keeping notes on the phone. Application capabilities ->

Users can:

  • Create a new Note
  • Inspect the created notes in main screen
  • Update/Delete the notes
  • See the date of creation of the note
  • See the date which is added after note update.

The architecture of the app is MVVM+Repo+Roomdb as Google advised. Update, delete, add operations are written in the viewmodel. Methods can be reachable as long as you reach the viewmodel. RoomDb is used for the database and a model of the notes storing inside the database. Recycler view is used for listing all the notes in the main menu. Live data and observe used for the adapter model so any changes in the list will be updated after the process. Coroutines are used for observing the data inside the database. Koin is used for dependency injection. Repository, roomdb instance, and viewmodel added as a module to Koin to apply dependency injection.Junit4 is used for testing. I have tested the entry forms which are for adding, updating, and deleting. Material design guides were tried to be followed. Glide is used for image loading from the url. Lottie animation library is used for the animation on the splash screen. Page transition animations are added to improve user experience.

Screen Shots📱

Gif1 Gif2 Gif3 Gif4

Built With 🚧

Flow Diagram

Gif4

Unit Tests (JUnit4)

Libraries and Tools 🛠

  • MVVM
  • ViewModel
  • Live Data and Observers
  • Room Persistence Database
  • Kotlin Coroutines
  • Koin for Dependency Injection
  • JUnit4 for Unit Test
  • Navigaiton Component
  • Glide
  • Material Design
  • Page Transitions
  • Lottie Animations
  • Architecture📃

    The app uses MVVM [Model-View-ViewModel] and Repository architecture to have a unidirectional flow of data, separation of concern, and a lot more which is recommended by Google itself.

    Architecture