Skip to content

Latest commit

 

History

History
67 lines (54 loc) · 2.26 KB

README.md

File metadata and controls

67 lines (54 loc) · 2.26 KB

Android Sample app with MVP architecture

Sample project that displays some images from the dribble API. Demonstrates some cool stuff that you can do with the modern libraries and tooling in Android these days.

As someone said on reddit: "It's not over-engineered, it's just a skyscraper without the skyscraper part, just the foundations :)"

Demo Screenshot

Newest additions:

  • Added automated unlocking the screen for espresso tests, check class com.example.util.EspressoTestRunner

libraries:

  • RxJava
  • Dagger 2 with examples of assisted injection and different modules depending on build type
  • Retrofit 2 and Retrofit Mock mode for debug builds
  • Mosby MVP with View State support
  • Timber
  • Auto Value
  • Glide with a wrapper
  • Butterknife
  • AssertJ for fluent assertions
  • Fabric (Crashlytics and Answers)
  • Retrolambda
  • Stetho

Static analysis:

  • PMD
  • Checkstyle
  • Lint
  • Findbugs
  • Jacoco code coverage that can generate reports for unit tests, espresso tests or the combination of the two
  • A set of custom IDE inspection rules
  • A module with a sample custom lint rule

Testing:

  • Espresso tests with and without mock web server
  • Mock web server tests that loads responses from json files
  • Robolectric tests
  • Normal unit tests
  • Ok http interceptor for changing the base url in tests
  • Idling resources
  • Unlocking screen for Espresso tests

Other:

  • Separate app icons according to build type
  • Some advanced source sets configuration for splitting up tests
  • Loading some project config from property files in Android Manifest and build.gradle
  • Shared folders for some build types or tests
  • Working proguard config
  • Android Studio external annotations (https://www.jetbrains.com/help/idea/2016.3/external-annotations.html)
  • Package level annotations for @Nullable and @NonNull
  • OkHttp interceptor for adding auth token to headers easily
  • Strict mode
  • Plugin to publish app on the playstore
  • Dex count plugin for counting the number of methods in the apk

..and all sorts of other goodies! Loads of things on the roadmap as well like: A debug drawer, a proper CI setup, screenshot automation, move to mixpanel, clean architecture etc..

Any feedback/pull request is welcome! You can catch me at www.sakiskaliakoudas.com