The Movie Database (TMDb) Sample Android App
The Model-View-Presenter architectural pattern has been used to build this app. [1] [2.a] [2.b] [3]
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 @Inject
ed into the implementation of the View
(i.e., Activity
, Fragment
, etc.).
[1]
Retrofit
has been used in conjuction with
RxJava
Single
s
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.
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.
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.
Travis CI has been used for adding CI to the project. [1] [2]
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.