AndroidBoilerPlateLibrary

Introduction: Boilerplate code to jumpstart apps. Features include pull to refresh, navigation, and syncing.
More: Author   ReportBugs   
Tags:

Boilerplate code to jumpstart common complex features in mobile apps.

TL;DR I WANT TO USE IT NOW SECTION
Sample App (For demo purposes):
https://github.com/EdbertChan/AndroidBoilerPlateLibraryDemoApp

Problem Library Addresses: People don't have time/want to read boring documentation. People code now, ask how it works when they make mistakes, then say the documentation is bad when they can't fix it in 10 minutes.

Libraries required (no gradle provided):
me.grantland.widget.autofittextview:
https://github.com/grantland/android-autofittextview

com.readystatesoftware.viewbadger:
https://github.com/jgilfelt/android-viewbadger

Features include:

1) Navigation Drawer
a) Supports login/logout detection and layout customization
b) Dynamically add/remove items and associate an action with each

2) Pull to Refresh and Sync
a) Requests Manager to read from source and write to database
b) Single service multiple adapters
c) Cursor-backed pull-to-refresh listviews

3) Database Table Manager
a) Easily add and remove tables
b) Thread safe
c) Common table query operations simplified

4) Location Tracking
a) Improved tracking for both GPS and Network.

5) Google Maps

6) Json parser
a) Based on Gson, can create Java classes that resemble the classes in JSON responses.

7) GET, POST, PATCH, DELETE Socket Operator
a) Basic HTTP requests with header map support.

TODO:
1) Background syncing
a) Will create a second service for that.

Motivation

Several core features are ubiquitous across apps like Facebook and other social apps. This library is geared towards creating a minimally viable app as quickly as possible that is also not a "glass cannon"

The second motiviation is that the features should take no more than 5 minutes to learn how to use and how to implement.

If you think there are other core features that should be added, then please note what they are in your pull request and an example of how an app can implement it (implementation should be braindead and should take no more than 5 minutes to learn).

*Seriously, do you know how long it takes for a new person to learn how syncing and services works? It took me a full 4 days straight of tinkering just to understand how authority/accounts work and while its nice to have those options, most people (with a startup idea) don't really care about that. They just want to sync and fetch from the background

LICENCE The MIT License

Copyright (c) 2010-2015 Edbert Chan

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools