/MVVMDemo

MVVM Demo

Primary LanguageJava

nLean

This repo is a nLearn application that implements MVVM architecture using Android Architectural Components from Google (JetPack),AppCompat, CardView, RecyclerView an DesignLibrary, ViewModel, RxJava2, Dagger2, Retrofit2, Builder,View Holder & Repository Patterns and SOLID Principles.

The app has following packages:

  • datamanager: It contains all the data accessing and manipulating components.
  • di: Dependency providing classes using Dagger2.
  • view: View classes along with their corresponding ViewModels, adapters, View Holders and etc...
  • utils: Utility classes.
  • analytics : contains analytics initialization part

Programming Practices Followed

Android Architectural Components from Google (JetPack):

  • ViewModel  :  Handle data effectively around lifecycle changes of Android components
  • Data Binding :  Cut down on findViewByIds and make data observing / reactive UI elements and bind UI components in your layouts to data sources in your app using a declarative format rather than programmatically
  • Lifecycle  :  Create lifecycle aware components
  • LiveData :   A observable stream of data your Activities & Fragments can react to
  • Navigation :  Define in-app navigation stacks in a single, concise testable file
  • Room :  An SQLlite ORM to handle database management in your apps
  • Worker Manager :  Run parameterized background tasks efficiently

License


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.```