Skip to content

Master-slave template with pagination using Clean Architecture and https://github.com/NYTimes/Store

Notifications You must be signed in to change notification settings

stoyicker/master-slave-clean-store

Repository files navigation

Build instructions

./gradlew assemble (or something like gradlew.bat assemble on Windows I guess). You can also get an APK from the Releases tab, courtesy of Travis.

Architecture

This is a reactive app: it runs by reacting to user interactions. Here is how: Architecture

Language choice

I chose Kotlin over Java because:

  • It is less verbose than Java.
  • It is more natural both to read and write, which makes writing code easier and faster while still allowing Java developers who have never seen it to understand it.
  • It can be configured to generate Java 6/8 bytecode, which means its evolution is independent of that of the platform.
  • It is officially supported by Google as a first-class language for Android.

Documentation

Documentation is generated using Dokka, which is the code documentation generation tool for Kotlin, similar to what Javadoc is for Java. index.html for the documentation of each module can be found in their build directories: module_name/build/dokka/module_name/index.html.

Tests

Unit and integration tests are written using Spek, the specification framework for Kotlin. Run them with the test Gradle task in each module. Instrumentation tests are only present in the app module and can be run using the cAT task.

Setup for contributions

Once cloned, just setup the hooks:

$<project-dir>: ./hooks/setup (or whatever equivalent if on Windows).