Code Monkey home page Code Monkey logo

fluxyandroidtodo's Introduction

FluxyTodo

FluxyTodo is an Android application that serves to demonstrate a few different things.

  • It is an example of how to use Dagger 2 and Butterknife for DI (dependency injection) in and how to use Otto to decouple Android applications.
  • It also serves as a proof of concept for a new Android application architecture I came up with.
  • It promotes dependency injection, TDD (test driven development), and a unidirectional data-flow, which makes the separation of view and business logic simple and clear.

More information about what, why, and how, can be found in my accompanying blog post.

Running

If you would like to get this project up and running so you can mess around with it, just follow these simple steps.

  • Fork
  • Clone
  • Import project into Android Studio
  • Run app

Testing

If you would like to run the tests included in this project

  • Find the src/test/java/com/armueller/fluxytodo directory
  • Right click on the package (inside Android Studio)
  • Select "Run 'Tests in com.armueller.fluxytodo'"

Future work

Despite the fact that this app is completely self contained (similar to how the todo app works from Facebook's Flux), I am pretty satisfied with out it turned out. I came up with a couple different ideas on how server communication might be incorporated into this architecture, but I wasn't really happy with any of them. Obviously, to be complete, server communication must fit into the equation somewhere, so that's what I'll be working on next. Once I come up with a solution that im satisfied with, I will update this repo and my blog post to reflect what I came up with.

Todo:

  • Figure out how to incorporate server communication into architecture
  • Set up db at firebase for todos
  • Make app sync data to firebase
  • Revise blog to incorporate server communication into architecture
  • Update repo

fluxyandroidtodo's People

Contributors

armueller avatar bryant1410 avatar pacc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.