Android From Scratch: An Overview of Android Application Development
As of early 2016, there are well over a billion people actively using Android, a Unix-like mobile operating system that runs on phones, tablets, smart TVs, smart watches, and a slew of other devices. Although developed and maintained by Google, it's free and open source software that can be used and customized by anybody. As a result, Android devices are manufactured by several major device manufactures, like Samsung, LG, Sony, and HTC.
One of the primary factors that drives Android's success is Google Play, an Android app distribution platform users can use to download and install apps on their devices. With over a million apps and billions of downloads, Google Play is larger and sees more traffic than similar platforms for iOS and Windows 10.
I'm sure you are now beginning to wonder how you can become an app developer and cash in on the popularity of Android. In this article, I'm going to give you a bird's eye view of what Android application development entails today.
Developing Native Android Apps
There are many different approaches to Android application development. In this series, however, we'll be focussing only on the native approach because native apps offer superior performance, run with minimal overhead, and are capable of making the best use of the Android operating system's capabilities.
Native Android apps are developed using the Java programming language, and, on devices running Android 5.0 or higher, make use of a managed runtime called Android Runtime (ART) by default. To create such apps, most developers choose to use Android Studio, the official Android IDE developed by Google. Android Studio is free and runs on Windows, OS X, and most Linux distributions.
Android Studio 1.5.1, the current stable release, has a large number of features to simplify all aspects of Android app development, such as a powerful code editor, visual layout and theme editors, vector and image asset studios, and more. Android Studio 2.0, which is still only available as a preview release, has more advanced features like instant run and a GPU profiler to further improve the app development experience.
Android Studio also comes with a realistic emulator you can use if you do not own an Android device. Because system images for it are freely available, you can download and run any version of Android on it.
Challenges Android App Developers Face
Developing an Android app that runs well on one specific Android phone or tablet is easy. Developing one that runs well on all Android devices, however, can be incredibly hard because of the vast differences in operating system versions, screen sizes, and device capabilities.
Supporting Older Android Versions
Unlike Apple's iOS devices, most Android devices rarely receive software updates, if at all. Marshmallow, the latest version of Android, runs on less than 1.5% of all Android devices today, even though it was released several months ago.
This means, if you decide to develop an app, you must support older versions of Android, like KitKat and Lollipop. Moreover, if your primary user base is from developing countries, supporting older versions all the way back to Android Gingerbread, is recommended. Doing so, however, is usually easy, thanks to not only the Android Support Library, but also a number of third party open source libraries.
Handling Different Screen Sizes and Densities
In the early days of Android, there were only a small number of devices that could run Android and almost all of them were phones. Over the years, however, with more and more device manufacturers adopting the platform, device screen sizes and pixel densities began to vary wildly.
With the release of Android Honeycomb, Android also started supporting large screen devices, such as tablets and smart TVs. Consequently, developers today are expected to use multiple image sizes and layouts to support all those different screens.
While creating the layouts is still a rather time-consuming process, managing different image sizes has become easier thanks to Vector Asset Studio.
Handling Hardware Sensor Availability
Only a few high-end devices have all the hardware sensors the Android SDK supports. Therefore, developers are expected to write apps that can determine the hardware capabilities of a device at runtime, and degrade gracefully if possible.
The Android SDK (Software Development Kit) has a Sensor Framework to simplify this task. Alternatively, developers can prevent users from installing apps on devices missing the required hardware using Google Play filters.
The Android platform is constantly evolving and app developers must keep up with recent trends to be able to build apps that live up to user expectations.
Material design is a collection of well-thought-out design guidelines you can follow to build apps whose look and feel matches the native look and feel of Android Lollipop and Marshmallow. Owing to its simplicity and modern looks, material design enjoys a lot of popularity among both developers and designers.
Android Wear smartwatches are becoming increasingly popular because the latest models are better looking and have features, such as new and improved gestures and watch faces that make them more fun to use. Consequently, more and more developers are using the Wear API in their apps to make sure that their apps can interact with wearable devices.
Publishing Android Apps
Once you've developed an app, you can publish it online so that people all over the world can download and use it. There are lots of Android app marketplaces you can publish your app on, but the one most popular today is Google Play because it comes pre-installed on most Android devices.
To be able to publish your app on Google Play, you must pay a registration fee of $25 and create a developer account on it. Once you have an account, publishing an app involves uploading its APK—a compressed package file that you generate using Android Studio—along with a few screenshots and providing details, such as the app's name and description.
After submitting all the details, you will have to wait for a few hours for the app to go live. In early 2015, Google Play introduced an app approval process to make sure that published apps adhere to Google's content policies.
Monetizing Android Apps
Android app development is fun and nothing beats the rush you get seeing your app live on Google Play. However, if you've put in a lot of effort building the app, why not monetize it? A lot of people today make a living developing Android apps, and if your apps are good enough, you can too.
There are many ways you can monetize an app. Here are three popular ways, all of which use services provided by Google:
- Sell It on Google Play: In most countries, developers are allowed to publish premium apps on Google Play. Unlike free apps, a premium app can only be downloaded after the user pays for it. This is the easiest way to monetize an app because you don't have to write any code for it.
- Display Advertisements: By using Google's Mobile Ads SDK, you can display banner or interstitial ads in your app. With this setup, you are usually paid every time a user sees an ad or clicks one.
- Sell Items Inside the App: By using the In-app Billing API, you can sell digital items to users who are already using your app. For example, you could make your app free and then charge a small fee to unlock a special feature in it. This type of apps are often called freemium apps.
I hope you now have a general understanding of what Android app development means today. Despite all its challenges, Android app development is quite easy because of the extensive documentation available online and the constantly improving development tools.
In the next post of this series, you are going to take your first step towards becoming an Android app developer by learning how to set up Android Studio on your computer.
Source: Tuts Plus