7 SDK's and API's every android developer should know

must-have-android-sdk-api.png

When it comes to software development, some people say knowing the platform's SDK's and API's is more important than knowing the language itself.
If you're a Java developer going into android development, or the CxO of a startup that wants to make sure their team is using the right tools, you may find this list useful.
I've been building android apps for the last 4 years, and the list below is a must-have for every new app I work on.

Material design support library

Material_design_support_library

When developing a modern android app, you should always aspire to use the latest and greatest design widgets. This will usually make your app look better without extra work. You'll get sweet effects like the ripple and new widgets like the FAB. And the design support library will let you use those dandy design elements on pre-lollipop phones too.

Gradle dependency:
compile 'com.android.support:design:22.2.0'

Usage example:
http://stackoverflow.com/a/28715666
http://stackoverflow.com/a/30903356

Picasso image loading

Picasso_image_loading

Loading images is extremely RAM-taxing. I've tried many libraries to simplify the process. IMHO, Picasso by Square is the best combination of robustness and ease of use.

Gradle dependency:
compile 'com.squareup.picasso:picasso:2.5.2'

Usage example:
http://square.github.io/picasso

Mixpanel analytics

Mixpanel_analytics

A mobile app without funnel analytics is destined to fail, at least according to the Lean Startup book, which is kinda' like my bible. Google analytics is too fragmented with all the website adwords stuff they have there and flurry has always exaggerated our numbers (which might be beneficial for some ;-). Mixpanel is the most accurate and responsive of the bunch. They are not cheap (to put it mildly) but I can't stress enough how good their support is.

Gradle dependency:
compile 'com.mixpanel.android:mixpanel-android:4.5.3'

Usage examples:
https://mixpanel.com/help/reference/android

ACRA + tracepot crash reporting

ACRA_tracepot_crash_reporting

The Google play store developer console has a Crashes & ANRs section. But users have to manually send the report when a crash happens. If you really want to get your ducks in a row, you should use the ACRA library and connect it to tracepot's backend for their dashboard.
ACRA sends a crash report every time a crash happens, even when the user doesn't. ACRA supports multiple backends for reporting, I chose tracepot because it's the simplest to integrate with ACRA, just reference the URL that tracepot gives you in ACRA's initialization call.

Gradle dependency:
compile 'ch.acra:acra:4.6.1'

ACRA documentation:
https://github.com/ACRA/acra/wiki/BasicSetup
tracepot:
http://www.tracepot.com

AppCompat and Support library

AndroidSupportLibrary

These two are probably obvious, but are basically mandatory to mention, they'll let you support new features in older devices, ranging from fragments to view pagers.

Gradle dependencies:
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:support-v4:22.2.0'

Usage example:
http://stackoverflow.com/a/18941423
http://stackoverflow.com/a/13042867

WhereDat API

512_512 (1).png

I couldn't end this post without a shameless plug!
You can use our Android App Search and Lookup API's to get data about apps.

Documentation:
http://wheredatapp.com/developers

Usage example:
http://stackoverflow.com/a/30406757
http://stackoverflow.com/a/30065668


Mobile Analytics