<commit_before>Concrete
=========

Concrete is a work in progress.

License
-------

    Copyright 2015 <NAME>

    Licensed under the Apache License, Version 2.0 (the "License");<commit_msg>Add some initial thoughts to the README<commit_after>Concrete
=========

What problems does Concrete solve?
-------
* Organize dependencies in a way that makes sense in an Android Application
* Manage singletons that can outlive the activity lifecycle

Description of (high level) functionality
-------

Concrete helps you build a wall (two dimensional). The foundational wall is poured in your Android Application subclass.
Each block you stack on the wall adds to the available dependencies the wall provides.
There is only ever one wall, the dependencies you have access to comes from the point in the wall you have access to (using Context#getSystemService).

If you only have access to the foundational wall (Application Context), you only have access to the dependencies provided in the foundational wall.
If you have access to the login activity (Activity Context) then you have access to the dependencies provided in the Login Activity's wall, as well as the foundational wall.

An example of how this would be useful is retrofit services.
Your RestAdapter instance should be cached across all services and your app, which would place it in the foundation.
The specific service interfaces should be cached as singletons, but it doesn't make sense to have your messaging service cached when viewing your photos.

What makes Concrete unique?
-------

This is different from Mortar in that there is no notion of listeners for the activity lifecycle events.

This is similar to u2020's `Injector` but promotes the idea of having an `ObjectGraph` outlive the activity lifecycle.

License
-------

    Copyright 2015 <NAME>

    Licensed under the Apache License, Version 2.0 (the "License");
{'fraction_non_alphanumeric': 0.06153846153846154, 'fraction_numerical': 0.008488063660477453, 'mean_word_length': 4.209944751381215, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2381554', 'n_tokens_mistral': 451, 'n_tokens_neox': 425, 'n_words': 273}