As the development for any platform requires a set of tools to develop a high quality software Android requires too. I will write about my top 10 tools I count as a mandatory for development of high quality Android applications. Keep in mind that this is an individual requirement and that any of the developers uses their own set of the tools.
- Android Studio
- Gradle
- Localazy
- Firebase - Realtime DB, Analytics, Crashlytics
- Instabug
- Bitrise
- Android Emulator
- Appcenter.ms - bug reporting, stats
- Admob - ads
- Facebook Audience Network - ads
In order to start the development of an Android application the first thing you need to download is Android Studio. Android Studio provides a unified environment where you can build apps for Android phones, tablets, Android Wear, Android TV, and Android Auto, to be more precise any device that runs Android as a main OS, this also covers Android Emulators which are virtual machines over which we can run and test our app, we will talk about it later.
Android Studio IDE makes it easy to create Android apps for various form factors, such as handsets, tablets, TV, and Wear devices.
Android Studio can be downloaded from the official web page, we can run it on Windows, Linux, Mac and Chrome OS.
https://developer.android.com/studio
System requirements are different for each OS, so I suggest checking it also on the official site I have provided above. Just a note, you don’t need any special configuration for it, also don’t require a powerful machine to run on, there will be a difference only in performance which is an expected thing.
Android studio can be downloaded as a wizard (installation) version and also can be used as a portable, depending on how you prefer to be there.
2. Gradle
The Android Studio build system is based on Gradle, and the Android Gradle plugin adds several features that are specific to building Android apps, it can be run independent of Android Studio and be updated separately. Gradle is a build system, which is responsible for code compilation, testing, deployment and conversion of the code into .dex files and hence running the app on the device in this case Android device. Whenever you click on Run button in android studio, a gradle task automatically triggers and starts building the project. After gradle completes its task, the app starts running in AVD or in the connected device over the USB or Wi-Fi.
There are two build.gradle files for every android studio project of which, one is for application and other is for project level(module level) build files where you can use the specific setup for each.
build.gradle (project level)The Top level (module) build.gradle file is project level build file, which defines build configurations at project level. This file applies configurations to all the modules in the Android application project.
build.gradle (application level)The Application level build.gradle file is located in each module of the android project. This file includes your package name as applicationID, version name(apk version), version code, minimum and target sdk for a specific application module. When you are including external libraries then you need to mention it in the app level gradle file to include them in your project as dependencies of the application.
More info about the Gradle Android including release notes can be found here
https://developer.android.com/studio/releases/gradle-plugin
3. Localazy
Most of the developers struggle with the localization of their apps, finding an ideal solution is always difficult but I have found a gem box. Localazy is quite new out here but believe it or not it can easily pair to the other similar tools which are there for a while, some of them have existed for a decade now. Localazy is a feature rich localization tool which gives you the ability to handle the translation easily, make it extremely easy for your user base to opt-in and give plenty of solutions for you as a developer and your project. Localazy supports multiple integrations suitable for any needs, coming from OTA which update your app text on the fly without touching the source code to manual language packs download. Just suits all the needs, and one important thing, it’s so cheap unlike others.
4. Firebase (Realtime DB, Analytics, Crashlytics)
How they said “Backed by Google and loved by app development teams - from startups to global enterprises“, this is an ideal solution to make high quality apps with features it offers. Firebase databases, machine learning infrastructure, hosting and storage solutions, analytics, crashlytics and Cloud Functions are just few things that it can offer, for more you should definitely check this link:
https://firebase.google.com/
Here, I will cover just a few of them which I state as Important and which I’m using.
Realtime DB - Store and sync data with our NoSQL cloud database. Data is synced across all clients in real time, and remains available when your app goes offline. The Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and synchronized in realtime to every connected client.
Analytics - Google Analytics is a free app measurement solution that provides insight on app usage and user engagement. This is a useful tool to understand how and from where people use your app, the detailed insight enables you to make informed decisions regarding app marketing and performance optimizations.
Crashlytics - Firebase Crashlytics is a lightweight, realtime crash reporter that helps you track, prioritize, and fix stability issues that erode your app quality. Crashlytics saves you troubleshooting time by intelligently grouping crashes and highlighting the circumstances that lead up to them. This will definitely help in finding what causes your apps to crash and finding an ideal solution to improve user experience.
This is additional software which aims to help the developer in collecting performance metrics, crash reports and also many other kinds of useful logs. Some developers found it more suitable over the Firebase because it’s more dedicated to the features it offers. Instabug instantly notify you whenever there's a problem in your app through comprehensive bug, crash reports, and performance metrics. Receive console logs, network logs, and visual repro steps to easily debug issues; saving you time investigating, diagnosing, and resolving issues.
Read more about the features and integration on official webpage
https://instabug.com/
6. Bitrise
Bitrise is a powerful automation tool for development, testing and deploying builds, it’s definitely time saver, automating the whole development/testing process increases your software product quality and saves a lot of time for you and your team. This is a “needed” tool for dev teams where there are more than two developers, doing this all manually will definitely lead to a mess inside the code, failed builds and so on which is a time consuming job, especially if it’s a big project. Continuous integration, delivery and deployment are one of the top pick features of Bitrise. Check official website for the integration docs and feature list
https://www.bitrise.io/
7. Android Emulator
The Android Emulator simulates Android devices on your computer so that you can test your application on a variety of devices and Android API levels without needing to have each physical device. The emulator provides almost all of the capabilities of a real Android device including simulation of different device states and hardware configurations. Emulator which I cover here is one that you can run from Android studio and test your app a way faster than you’ll actually do with a physical device.
Read more about it and how to use on
https://developer.android.com/studio/run/emulator
8. Appcenter
Appcenter lets you automate and manage the lifecycle of your iOS, Android, Windows, and macOS apps and many more, it’s cross platform. Connect your repo and within minutes automate your builds, test on real devices in the cloud, distribute apps to beta testers, and monitor real-world usage with crash and analytics data. All in one place.
It’s easy to setup and support many widely used git solutions. Connect to GitHub, Bitbucket, GitLab, or Azure DevOps and build your app in the cloud on every commit. Automatically run unit tests, release to testers and stores, or test your UI on real devices.
More on
https://appcenter.ms/
9. AdMob
We all know that developers don’t earn money based on download count, reviews and nice words from the users, those are just a few important factors which will help generate more revenue from apps with some AD service or IAP (In app purchases).
Here I will cover the most famous and widely used one, AdMob. Your hard work will be definitely paid out, AdMob makes earning revenue easy with in-app ads, actionable insights, and powerful, easy-to-use tools that grow your app business. It’s easy for integration, cross-platform and well documented.
Get more info about integration, feature list and solutions on
https://admob.google.com/
10. Facebook Audience Network
Facebook audience network stands also for an AD serving solutions for your apps. It’s cross-platform, offers multiple AD types and it binds to Facebook ecosystem itself. Facebook audience network is also one of the top used solutions because of AD rich content nature. From what I’ve learned over the past few years being in doubt which service to use, I found that this one has slightly better income for the developer but it’s not for new baked apps, since it requires some threshold of user request in order to serve ADs.
Read more on
https://www.facebook.com/audiencenetwork/
I hope you have checked all of the suggested tools and find one that suits your needs. Keep searching and evolving, this is an ongoing thing, every day bring us new solutions, new tools and also obstacles.
Do you have any other tools & tips worth of consideration? Share with us your tips & trick on Android devtools in our discussion group.
Cheers!