7 Third-Party Dependencies Every Android Developer Should Know
So you've learned about Intents, Broadcasts, Fragments, Activities and a whole lot of words that suddenly have different meanings than what you're used to. That's awesome. But what those tutorials didn't tell you (or maybe they did) is that, unless you want to spend months on a project that should take you weeks, you would be using A LOT of Third-Party Dependencies.
What are third-party dependencies
I won't delve much into this because most Android developers - even beginners - have heard about this bundles of joy.
Dependencies in Android development are libraries which can be easily added to your project that save you from the trouble of creating classes and methods that have already been done by others. It's kind of the way smartphone and computer companies use parts already produced by other companies, instead of creating theirs from scratch. It saves everyone a whole lot of time.
Now, the developers at Google already took it upon themselves to create some dependencies to make work easier. Like the recyclerview library, the cardview library and the v4, v7 and v13 support libraries. Kudos to them! However, this isn't enough.
That's where third-party dependencies come in. Fellow Android developers like yourself have taken it upon themselves to share their custom libraries and code to make work easier for the community. But out of the thousands of dependencies out there. There are a few that are way too useful for any professional Android Developer to ignore and I'll be telling you about some of them.
These days it's almost impossible to create a mobile application without making some sort of HTTP request. Even some calculators now use the internet. Square took it upon themselves to create a library that makes HTTP requests and responses a walk in the park. OkHttp is a very efficient HTTP & HTTP/2 client and is super easy to use
An HTTP & HTTP/2 client for Android and Java applications.
This might be objected to being part of this list since it IS built by Google and isn't even a straight-up Android library. However, I'm including it on this list because it isn't an official Android library and it is as essential to Android development as other dependencies on this list. GSON is a Java library that converts your JSON objects into an actual Java Object and vice-versa. This simple ability makes GSON super useful as some JSON objects can get quite difficult to read using the default JSON reader. It's usefulness especially comes to light when trying to interact with RestAPIs that return in JSON.
Gson is a Java library that can be used to convert Java Objects into their JSON representation
Another one by Square, retrofit is a RestAPI HTTP client built on OkHttp. It makes remodeling your JSON or XML based API to GSON very easy and is particularly useful when your application is going to be making a lot of RestAPI calls.
Retrofit turns your HTTP API into a Java interface
What's a modern application without images? Glide by BumpTech is an android dependency that lets you fetch images with great, amazing efficiency.Glide supports fetching, decoding, and displaying video stills, images, and animated GIFs. Glide also has utility libraries that lets you use OkHttp or Volley to make the HTTP requests.
Glide is a fast and efficient open source media management and image loading framework for Android
Ever gotten tired of those annoying little findViewById() calls? How about the endless implementations of OnClickListener and OnItemSelectListener? Well, Jake Wharton's got you covered. With Butter Knife, you can simply use annotations to define and initialize views, listeners or resources without having to make unnecessary calls. It generates boilerplate code for you simply with annotation processing.
Note: Butter Knife is almost unneeded if you're using Kotlin, instead of Java as Kotlin does all that for us.
ButterKnife is a view binding library that uses annotation to generate boilerplate code for us
Even the best of apps crash from time to time. Unfortunately for developers, we won't always be able to control the application environment, so debugging on an environment that you have no knowledge about might prove to be difficult or even impossible. Crashlytics is to the rescue! Created by Fabric and recently acquired by Google into Firebase, Crashlytics is an analytics tool that focuses on getting you as much information on crash errors as possible. Although you would also have to integrate Firebase into your project, it is 100% worth it. Also, it's extremely simple to use (all you have to do is add the dependency, apply the plugin and the rest is history).
Firebase Crashlytics is a lightweight, realtime crash reporter that helps you track, prioritize, and fix stability issues
Also by Google, Guava is a utility library that gives you access to lots of add-on methods and classes to the Java library. This includes things like collections, graph-structured data, local caching, I/O operations and string and math utilities that are not included in the default Java Development Kit. It is a very useful utility library that saves a lot of time and brain power.
Guava is an open source, Java-based library developed by Google. It facilitates best coding practices and helps reduce coding errors
Good, useful open source Android dependencies will inevitably make the development of Android applications far easier and faster than it normally would. I would recommend using popular libraries that have very large communities because they are less prone to have bugs and build errors, and even if they do, it is very easy to find a fix to them.