Skip to content

Sample app using the MVP Architecture, RxJava, Retrofit 2, Dagger 2, Robolectric, Mockito, and Espresso.

License

Notifications You must be signed in to change notification settings

dakshj/TMDb_Sample

Repository files navigation

The Movie Database (TMDb) Sample Android App Build Status

Architectural Pattern

The Model-View-Presenter architectural pattern has been used to build this app. [1] [2.a] [2.b] [3]

Dependency Injection

Dagger 2 is used as a DI library. [1] [2]

It has been used both in main as well as in test.

Each View has its own @Module and @Subcomponent.

A Presenter is then @Injected into the implementation of the View (i.e., Activity, Fragment, etc.). [1]

Networking & Reactive Execution

Retrofit has been used in conjuction with RxJava Singles to fetch data from an API.

This JSON data is then parsed using Gson.

Gson is also used via DI to parse sample responses into MovieListApiResponse in Unit Tests.

Testing

Robolectric and Mockito are used for Unit Tests on the JVM. [1]

Espresso is used for Instrumentation Tests. [1]

Google's Android Architecture TODO App as an excellent reference for writing Unit and Instrumentation tests on Android.

Code Shrinking & Obfuscation

ProGuard has been used for shrinking and obfuscation purposes.

proguard-rules.pro outlines all the rules required to be added for Android-related and third-party libraries.

Continuous Integration

Travis CI has been used for adding CI to the project. [1] [2]

License

Copyright 2016 Daksh Jotwani

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.

About

Sample app using the MVP Architecture, RxJava, Retrofit 2, Dagger 2, Robolectric, Mockito, and Espresso.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages