Rapid Android Development Template

Additional

Language
Java
Version
N/A
Created
Nov 16, 2014
Updated
Sep 22, 2016 (Retired)
Owner
Spiros Economakis (spirosoik)
Contributors
n00blet
Spiros Economakis (spirosoik)
Joielechong (joielechong)
3
Activity
Badge
Generate
Download
Source code
APK file

Blurb

Rapid Android Development Template [NOT SUPPORTED]

master:

Published in:

Tools

Android Studio 1.x and Gradle 2.x

IDE Tools

Libraries

3rd Parties Social (as gradle imports)

  • 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.

Check the documentation

Testing

  • Robolectric for unit testing
  • Shell scripts to run tests fast. Check scripts folder.
  • CircleCI continuous integration server
  • Calabash (SOON)

Proguard

  • Proguard enable for LIVE, UAT environments to minify the build

Gradle

  • Gradle configuration for multi-environment support

Environment Manager

  • 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

API Managers

  • OkHttpClient support to make the HTTP requests for API
  • AbstractApiManager with Retrofit based on the Environment manager API URL
  • FULL/NONE logging for API based on the Environment manager LOGLEVEL 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

Activities

  • 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 method
  • BaseFragment to be extended by each fragment as generic fragment

Google Analytics

  • Support for google analytics track events and pageviews. Use AnalyticsManager

License

Copyright 2015 Economakis Spyridon

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.