Experimental Android app with MVVM architecture. Purpose of this project is to explore different architectural approaches.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
extras/keystore
gradle/wrapper
mobile
.gitignore
README.md Migrate from Alfonz MVVM module to Arch module Sep 6, 2017
build.gradle Update dependencies Jun 29, 2018
gradle.properties Update dependencies Jun 29, 2018
gradlew
gradlew.bat
settings.gradle
utils.gradle

README.md

Stocks

Experimental Android app with MVVM architecture. Purpose of this project is to explore different architectural approaches and also "new age" technologies like Android Data Binding, RxJava, Lambdas, Retrofit, Dagger etc.

Main goals of this project

  • Create a good architecture with separate UI and business logic
  • Write well readable, maintainable and testable code
  • Follow OOP principles, SOLID principles, DRY
  • Avoid God classes (no way to have a class with 500+ lines)

MVVM architecture

This project is based on MVVM architecture and uses Alfonz library. Alfonz Arch module is basically a wrapper for Android Architecture Components library. It provides some additional features and convenient methods. If you are interested in MVVM architecture, you can check my talk about MVVM which I presented at STRV Android Meetup. See the video record or slides for more info. Alfonz Arch module uses a similar approach which I describe in the presentation.

This project uses

  • Alfonz
  • MVVM architecture
  • Data binding
  • Binding adapters
  • RecyclerView
  • ConstraintLayout
  • RxJava
  • Retrolambda
  • OkHttp
  • Retrofit
  • GSON
  • Glide
  • LeakCanary

TODO

  • 2 way binding
  • Dagger
  • Tests
  • Proguard
  • Travis

REST API

Documentation:

Examples:

Developed by

Petr Nohejl

License

Copyright 2016 Petr Nohejl

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.