TODO-MVVM-RXJAVA
Summary
Sample Android app that I use as a reference for new Android projects. It demonstrates the architecture, tools and guidelines that I use when developing for the Android platform.
This sample demonstrates a basic Model-View-ViewModel (MVVM) architecture and provides a foundation on which the other samples and projects are built. This sample uses RxJava 2 to implement concurrency, and abstract the presentation and data layers.
This sample is based on the TODO-MVP-RXJAVA project and uses RxJava 2 for communication between the data model and ViewModels layers.
Dependencies
Libraries and tools included:
Requirements
- JDK 1.8
- Android SDK.
- Android 10 (API 29).
- Latest Android SDK Tools and build tools.
Architecture
This project follows architecture guidelines that are based on MVVM (Model View ViewModel).
Features
Complexity - understandability
Use of architectural frameworks/libraries/tools:
Building an app with RxJava is not trivial as it uses new concepts.
Conceptual complexity
Developers need to be familiar with RxJava, which is not trivial.
Testability
Unit testing
Very High. Given that the RxJava Observable
s are highly unit testable, unit tests are easy to implement.
Maintainability
Ease of amending or adding a feature
High.
Learning cost
Medium as RxJava is not trivial.
Original owner
License
Copyright 2019 Khalid ElSayed.
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.