Redux Android Sample

Additional

Language
Java
Version
N/A
Created
Oct 12, 2016
Updated
Nov 26, 2016 (Retired)
Owner
Catbag Developer Admin (Catbag)
Contributors
Nilton Vasques (niltonvasques)
Catbag Developer Admin (Catbag)
Raul Abreu (raulccabreu)
fpbitencourt
4
Activity
Badge
Generate
Download
Source code
APK file

Show card

redux-android-sample

An Android sample that implements Redux architecture (using Fluxxan and Anvil) and NoSQL (using SnappyDB)

Architecture

#App State Example

{
    hasMoreGifs: true,
    gifs: [{
        path: "path",
        url: "url",
        title: "string",
        watched: false,
        status: PAUSED //PAUSED, LOOPING, DOWNLOADING, DOWNLOADED, NOT_DOWNLOADED, DOWNLOAD_FAILED
    }]
}

#Tests

###Integration tests

  • The integration tests are running on top of espresso framework, and using mockito to handle mocks.

To setup a CI or run tests in command line use this command:

adb shell am instrument -w br.com.catbag.gifreduxsample.test/android.support.test.runner.AndroidJUnitRunner

###Unit tests

  • The unit tests are running with roboeletric, that is a android test framework with builtin mock capabilities of android sdk. The roboeletric give us the power to run some unit tests with functions from android SDK without the requirement of an emulator running, what results in very fast tests.

To run unit tests through a CI or command line:

./gradlew  clean test --daemon --continue

Drone CI

Running drone build locally

  • Install drone CLI

      curl http://downloads.drone.io/drone-cli/drone_linux_amd64.tar.gz | tar zx
     sudo install -t /usr/local/bin drone
    
  • Run drone build inside project dir

      drone exec --trusted
    

CI last build reports

#Good Practices

###Actions Creators

  • Pay attention on action creation UI calls that do something async and dispatch action, the main action has to be dispatched before other async created actions, and its not a good practice dispatch two actions on the same synchronous cycle.

CODE INSPECT

How to use

  1. Run check task on Gradle Tasks -> verification

  2. After this attention on Android Studio Run console or on gradle output if you run on terminal.

  3. The reports are inside app/build/reports/tool_name folders. eg. flux-android-sample/app/build/reports/lint

  4. The inspect tools custom configurations are inside app/inspect/ folder.

  5. Problems found by inspect tools stops the check task.

References

Summary

Checkstyle

FindBugs

PMD

Android Lint