|
| 1 | +# Android Architecture Blueprints [beta] - draft |
| 2 | + |
| 3 | +The Android framework is very flexible when it comes to defining how to |
| 4 | +organize and <em>architect</em> an Android app. This freedom comes at a price: Huge classes, inconsistent |
| 5 | +naming patterns and architectures (or lack of) that make testing, maintaining |
| 6 | +and extending difficult. |
| 7 | + |
| 8 | +Android Architecture Blueprints is meant to help developers compare quickly. In |
| 9 | +this project we offer the same to-do application implemented using different |
| 10 | +architectural concepts and tools. Examples are MVP, MVVM, Dagger2, Data Binding |
| 11 | +Library, RxJava, Loaders… |
| 12 | + |
| 13 | +### What does <em>beta</em> mean? |
| 14 | + |
| 15 | +We're still making decisions that could affect all samples so we're keeping the |
| 16 | +initial number of variants low before the stable release. |
| 17 | + |
| 18 | +## Samples |
| 19 | + |
| 20 | +Check each project's README for more information. |
| 21 | + |
| 22 | + * [todo-mvp/](https://github.com/googlesamples/android-architecture/tree/master/todo-mvp) - Basic Model-View-Presenter architecture |
| 23 | + * [todo-mvp-loaders/](https://github.com/googlesamples/android-architecture/tree/master/todo-mvp-loaders) - Based in todo-mvp, fetches data using Loaders. |
| 24 | + |
| 25 | +In progress: |
| 26 | + |
| 27 | + * todo-mvp-dagger/ - Based in todo-mvp, uses the Dagger2 dependency Injection |
| 28 | +framework. |
| 29 | + * todo-mvp-rxjava/ - Based in todo-mvp, uses RxJava to handle load and observe |
| 30 | +data |
| 31 | + * todo-databinding/ - Uses the Data Binding Library to display data |
| 32 | + |
| 33 | +## Why a to-do application? |
| 34 | + |
| 35 | +Check out the <u>app's specification</u>. The aim of the app is to be simple enough that it's understood quickly, but |
| 36 | +complex enough to showcase difficult design decisions and hard (but common) |
| 37 | +testing scenarios. |
| 38 | + |
| 39 | +Also, a similar project exists to compare JavaScript frameworks, called [TodoMVC](https://github.com/tastejs/todomvc). |
| 40 | + |
| 41 | +## Which sample should I choose for my app? |
| 42 | + |
| 43 | +That's for you to decide: each sample has a README where you'll find metrics |
| 44 | +and subjective assessments. Your mileage may vary depending on the size of the |
| 45 | +app, the size and experience of your team, the amount of maintenance that you |
| 46 | +foresee, whether you need a tablet layout or support multiple platforms, how |
| 47 | +compact you like your codebase, etc. |
| 48 | + |
| 49 | +## Who is behind this project? |
| 50 | + |
| 51 | +This project is made by the community and curated by Google and core |
| 52 | +maintainers. Each sample has a group of owners that look after it keeping it up |
| 53 | +to date and handling issues and pull requests. |
| 54 | + |
| 55 | +### Contributors |
| 56 | + |
| 57 | +Apart from the awesome [contributors](https://github.com/googlesamples/android-architecture/contributors), the core team is composed of: |
| 58 | + |
| 59 | + * TODO |
| 60 | + |
| 61 | +Want to be part of it? [Read on](https://github.com/googlesamples/android-architecture/wiki/Contributions). |
| 62 | + |
0 commit comments