Android Studio 1.x and Gradle 2.x
- [Dagger Plugin] (https://github.com/square/dagger-intellij-plugin)
- [Android ButterKnife Zelezny] (http://plugins.jetbrains.com/plugin/7369)
- Active Android 3.1.10
- Retrofit 1.9.0
- OkHttp 2.4.0
- Otto Eventbus 1.3.8
- Dagger 1.2.2
- ButterKnife 6.1.0
- [Otto Picasso 2.5.2] (http://square.github.io/picasso/)
- UI validation library Saripaar
- Facebook SDK
- Twitter SDK by Fabric
- Crashlytics SDK by Fabric
Note: You can change the keys into api_keys.xml
. For Crashlytics you can change it into AndroidManifest.xml
. There is a SocialManager
class
to use for social actions.
- Robolectric for unit testing
- JaCoCo coverage testing
- Shell scripts to run tests fast. Check
scripts
folder. - CircleCI continuous integration server
- Calabash (SOON)
- Proguard enable for
LIVE
,UAT
environments to minify the build
- Gradle configuration for multi-environment support
- Multi-environment support (
LIVE
,UAT
,STAGING
) - Assigns dynamically environment for the current build
- Assigns dynamically the API URL for the current build
- Assigns dynamically the API logging level for the current build
- Assigns dynamically the logging level for the current build
- Decides if the app according to the environment can track in analytics
- Decides if the app according to the environment can receive notifications
- Decides if the app according to the environment can track bugs in crashlytics
- OkHttpClient support to make the HTTP requests for API
AbstractApiManager
with Retrofit based on the Environment manager API URLFULL/NONE
logging for API based on the Environment managerLOGLEVEL
of API- AbstractAsyncTask which produces events in a public BUS
- Event Base architecture with Otto for each response after an
AbstractAsyncTask
- Access to API methods via Reflection. The only thing you must set up is the
ApiRequestAttrs
. Example in wiki
- Dagger for dependency injection
- ButterKnife views injection to use this ->
@InjectView(R.id.btnTest)
to minimize and remove the old(Button) findViewById(R.id.btnTest)
- Each Activity/FragmentActivity registered to listen the Event BUS
- Customizable/Overridable action bar for each Activity/FragmentActivity
AbstractFragmentActivity
to extended by each Fragment activity and it can contains the fragment you want. You must implement only the createFragment methodBaseFragment
to be extended by each fragment as generic fragment
- Support for google analytics track events and pageviews. Use
AnalyticsManager