visit
If only 100 people lived on Earth, 76 of them would be using Android and 20 — iOS (let’s ignore those 4 eccentric individuals with Windows and Blackberry smartphones). However, considering only US users, the paradigm shifts: Now, 65 people from that hundred are iOS fans. The popularity of an operating system in a given region is just one of many factors that go into deciding what platform to choose for your mobile app. Ideally, we, of course, want to create apps that give access to all mobile users regardless of their principles, brand loyalty, or even financial situation. But, when it comes to native development, you usually have to start with one. Join us for a review of Android mobile development and find out what benefits and challenges await you when choosing Google over Apple. Let’s begin.
Do you remember the pre-smartphone era? We expect you don’t need a time machine to remember what mobility was like in 2006. Back then, Windows, Symbian, and Blackberry had been slowly supplying the mobile market with so-called pocket personal computers — clunky, unattractive, enabled with a physical QWERTY keyboard and sometimes even a stylus. You might have had one of those. Early smartphones focused strictly on productivity. Consequently, there was one problem that plagued the minds of hardware and software providers: how to fit more into one this tiny device?.
They were doing quite well. We had Twitter and email, Internet browser, Microsoft Word, and many more handy features, but websites were not responsive, mobile Internet was slow, and people still used to sit down at their full-size PCs for a task that took longer than five minutes. Basically, the usability wasn’t considered at all — together with developers’ freedom. This was a restrictive world to operate in.
HTC Dream running on Android 1.6, 2008
When the first Android device, T-Mobile G1 (aka HTC Dream), entered the market, the world wasn’t even used to touch screens. But the first consumer Android phone already had Google services integration, built-in GPS, web-page zooming, and an early Android Market (with only 35 apps). Google and Android, Inc. creator Andy Rubin saw the future of mobile devices in software and the Internet — they planned to create and freely distribute services that would connect people to the web and enter the new generation of mobile devices.
Software Development Kit. An SDK is a bundle of tools that comprises an executable program. This includes documentation, debuggers, emulators, frameworks, libraries, profilers, and more. is already included in Android Studio, but if you want to use another IDE, you can download it separately at the bottom of the linked page.
Editors and IDEs. In theory, you can write Android apps in a regular text editor or command line, but the common approach is using an Integrated Development Environment. This tool integrates all SDK tools and helps to manage them more easily and in a more user-friendly manner. is the official Android IDE, but other options are also popular. is Studio’s predecessor that can use plugins to expand the code to more languages. is a paid but highly customizable option.
Programming languages. Java and Kotlin are listed as the official languages for Android programming but there are alternatives. You can also use C and C++ using the — the tool for implementing parts of previously written app in native code. There are also third-party tools allowing you to create native Android apps using your favorite languages such as (Ruby) or (Python). Just remember that any unofficial solutions will lag behind in terms of updates.
Libraries. Software developers use libraries for all kinds of tasks. They are snippets of pre-written code that automate a coder’s job and eliminate the need to reinvent the wheel. The Android community is generous about such free solutions. The most popular of them include for serializing and deserializing Java objects to communicate with APIs, for API organization, and for easy communication between different app elements. To configure all these settings and organize the process of adding external libraries, developers use the tool called .
Plugins. While libraries are used to automate project tasks, plugins are created for the augmentation of each software tool, an IDE in our case. We can’t possibly list them all, so check out this collection of and the curated list of on BestPlugins.com.
If you’re looking for more intricate solutions to improve your coding experience, visit this popular article for .
Android has two officially supported programming languages — Java and Kotlin. The first has been the beloved language for two decades already and named . Java is an object-oriented, cross-platform language that’s used everywhere from fintech startups to data analytics initiatives. Web, desktop, mobile, IoT products — all can be powered by Java, we’ve recently explored in a separate blog post. Java’s popularity will allow you to easily find skilled Android developers on the market or even within your tech team.
As for Kotlin, it’s another highly-praised technology. It’s not exactly a language per se, but more like a new coding approach based on Java. It takes all the complexity and verbosity from Java and makes the whole app writing process faster and more enjoyable. Any Java developer can master Kotlin in no time, but it’s not necessary unless you have a little extra time to invest in migrating to a new process. Another good thing is that Jotlin and Kava (see what we did here?) are completely interoperable and can be freely used at the same time.
Introduction to Kotlin (Google I/O ’17)
It makes sense to mention that Java and Kotlin are not the only — albeit official — options. Android Studio, for instance, also supports C and C++. Both of which are more complicated than Java but can be handy in certain cases, such as gaming apps. Besides, if we consider the , the language pool is even bigger — there’s C# in Xamarin, JavaScript in PhoneGap, and Dart in Flutter.
Flutter iOS and Android Structure
Although not without some drawbacks, as we proved in this , Flutter offers a few interesting features that make Android development easier and smoother. For instance, the tool has a built-in Material Design library that eliminates the need to write UI code when you simply want to achieve the standard Google look and feel. It’s also completely integrated with Android Studio and IntelliJ, which allows you to keep working with the tools you already know and love. And you can also use the existing Java code, so your native applications can be easily transported into the Flutter environment. While there are many cross-platform tools out there, Android developers should take a closer look at Flutter and consider what it may bring to the table.
How Instant Apps appear to users Source:
What’s so good about Instant Apps?
Daydream VR interface
And Android development doesn’t stop there. The technology allows you to use the same toolset to build applications for a variety of products. This ecosystem includes: . This is the Android version that serves as an entertainment platform built into many TVs and streaming video devices. Apart from functioning as any other smart TV with integrated YouTube and Netflix, Android TV also has a built-in Google Assistant, curated video content, Google Play apps, voice search and more. By developing apps for big TV screens, you not only can provide another platform for your users to interact with your product but also extend the service’s functionality.. Wearable Android apps developed using the same Android SDK run on smartwatches from Asus, Huawei, LG, Samsung, Sony, . With knowledge in developing mobile Android apps, programmers can build wearable software and watch faces — dynamic screens that include animations and contextual information like smartphone widgets.
. This marriage of classic GPS navigators and Google services allows developers to access users’ cars via specific APIs — in a form of a user interface on the dash console. Currently, the service supports only audio and messaging apps but it’s expected that soon the platform will pave a way for more connectivity with access to a vehicle’s sensors and data. . This platform allows engineers to create applications for low-power Internet-of-Things devices such as cameras or smart speakers. Such providers as JBL, Lenovo, and LG have developed their products using the Things system. . Any Android app can be optimized for use on Chromebooks, the first and only devices operating on Chrome OS. Although the overall logic and the interfaces are the same, some aspects such as resizable and free-form app windows need to be rewritten. You can also customize your apps to make sure the content looks organic on a bigger screen and also change the interface orientation.
The staggering difference between app downloads and consumer app spend Source: Statista
Not only does it concern app downloads, but also in-app purchases. The reasons for that may be one or several of the following:
Most popular Android OS versions
Another differentiation problem comes from various OEMs (original equipment manufacturers) that create their own “skins” making devices running on the same Android version look so different. Not only does it present another update-staggering layer, but also leads to changes in functionality that may affect how your app works on all smartphones. Sony and Samsung are the biggest offenders known to create complications for programmers.
Screen size fragmentation map created in 2015 Source:
Product owners have two solutions in the device fragmentation issue: Either limiting the number of supported devices and systems to a manageable maximum or lowering the app quality when advanced sensors or other functionality isn’t supported by older devices. This, however, doesn’t make development and testing efforts easy.Originally published at AltexSoft Tech Blog “”