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