/Android-my-starter-pack

Android project template based on MVP architecture (Mosby) and libraries: Dagger2 + RxJava2 + Retrofit + Realm.

Primary LanguageJavaApache License 2.0Apache-2.0

Android project - my quick starter pack

It's a starter pack for creating Android projects in Android Studio. This collection contains libraries which I used to including to almost every project.

Quick introduction

Since every project can have different configuration of libraries I create a sample project that presents a combination of my favourite libraries. The reasons why I created this is to:

  • keep update with the newest versions of the libraries that I use
  • create my own combination of the solutions
  • have a playground for testing new libraries and tools and checking how they behave with my current solutions
  • provide a sample Android application as a scheme for new projects

Libraries

Basic

Name Project site Version
Dagger 2 http://google.github.io/dagger/
Mosby MVP https://github.com/sockeqwe/mosby
Retrolambda https://github.com/evant/gradle-retrolambda
RxJava2 https://github.com/ReactiveX/RxJava
RxAndroid2 https://github.com/ReactiveX/RxAndroid
Retrofit http://square.github.io/retrofit/
Retrofit: GSON converter -
Retrofit: RxJava2 adapter -
OkHttp http://square.github.io/okhttp/
OkHttp: Logger -
GSON https://github.com/google/gson
Timber https://github.com/JakeWharton/timber
Butterknife http://jakewharton.github.io/butterknife/

Test

Name Project site Version
JUnit 4 https://github.com/junit-team/junit4
Mockito https://github.com/mockito/mockito
Dagger Mock https://github.com/fabioCollini/DaggerMock

Features

  • MVP architecture based on Mosby.
  • Presenters that survive configuration changes.
  • Dagger 2 dependency injection.
  • Separated Dagger modules, scopes for presenters.
  • Repository pattern for data managing.
  • Local data storage: Realm.
  • Handling no internet connection issue. Loading data from local storage.
  • Unit tests.

License

Copyright 2016 Szymon Grochowiak

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.