Skip to content

A Android sample that implements Redux architecture with React and NoSQL

License

Notifications You must be signed in to change notification settings

Catbag/redux-android-sample

Repository files navigation

redux-android-sample

Build Status

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

Architecture

Gif Sample Redux 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

About

A Android sample that implements Redux architecture with React and NoSQL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •