In this article we are going to go through all the pros and cons of the Android technology for the purposes of application development. The categories which we are going to use for comparison are the same categories used for the Mobile App Development page.
To learn more about other app development technologies (e.g. Flutter, React Native, Swift etc.) go to the Mobile App Development page.
Android is a native technology intended for the Android OS.
This means that the technology can only be used to develop apps for Android phones. However, because of this specialization it also obtains many advantages in terms of performance and functionalities, which the other hybrid and webview technologies can only strive to get.
The Android source code has been around for a long time and has through that time undergone many changes. In the beginning it was intended as a OS for digital cameras, which is far from what we know it as today.
The reason why it is called Android stems from the original Company (Android Inc.), which developed the foundation for the OS. It was first after the publication that Google acquired the company and thereby gain the rights to use and distribute the Android OS.
Because the Android development technology only fits one of the two primary mobile operating systems (iOS & Android), it is required to create two projects in order to facilitate both operating systems, which naturally means more time and resource spend in the development phase.
If you are planning to launch an app on a very competitive market or an app which required a lot of specialized functionalities, it might be necessary for you to consider paying for having two native apps. If competitors are making their app as native, they will have a strong advantage in terms of performance or available functionalities.
A native Android application can be written in either Android, which is essentially Java, or the newer and more optimized language of Kotlin.
Google themselves even went to the extent to announce Kotlin as the primary language for writing Android applications. This is also known as the Kotlin-first initiative.
Since Android is one of the two native technologies covered in this article, it is not relevant to investigate whether Android supports page-by-page adoption.
The primary question should rather be, whether if the webview or hybrid technologies support page-by-page adoption into native Android application.
Android is supported and maintained by Google.
Additionally, since the Android OS is the most popular and open source OS for smartphones on the market, it also receives support from various smartphone manufactures. This list include companies such as Samsung, Huawei, OnePlus, Sony etc.
Android is open source. The repository can be found here.
The version number of Android is updated approximately once a year. This will likely happen at the yearly Google I/O conference.
Dependent on the speed of adoption from the smartphone manufacture, the new version can be installed anywhere between the same day as the update and several months later.
There is a tradition for Android versions to be alphabetically named after a piece of candy, which is evident from the current version: Android 9 aka. Pie.
With a native technology it should be a given that all device APIs can be easily accessed and implemented.
As a native technology, Android based applications sets the bar for which the webview and hybrid technologies benchmark against. The performance should therefore never be an issue when working with Android.
It should be noted that when comparing the iOS and Android OS, it is commonly known that iOS smartphone comes with less RAM, which could indicate that the iOS systems comes with some sort of performance advantage over Android. This is however a misconception. Both systems uses approximately the same amount of memory to launch and run the same apps. The reason why iOS smartphones come with less RAM, is because of the handling of apps in the background. As soon as an Android app is swapped to the background, the used memory is compress, which naturally saves a lot of memory. However, when compared to iOS it clearly shows that iOS is much better at minimizing the background apps’ memory usage. Unfortunately it is not possible to say how, since Apple have not publicly shared this information.
Android Studio (Android’s IDE) comes with a full set of UI consistent components, which are simple to implement and fits the user’s expectation of how an Android should look and feel. It is of cause necessary to make your own alterations to these components in order to get an interface suitable for your application.
Android does not support hot reload, within the Android Studio IDE, to the same extent as some of the other technologies. However, it does provide the “Apply Changes” functionality (previously known as “Instant Run”), which essentially is a strategic recompilation of the application.
Requires the Android SDK and the appropiate version of the JDK (Java Development Kit).
It should be noted that the Android Studio IDE comes with the SDK manager feature, which can be used to download and install the appropriate Android SDK.
Android applications should be developed using the Android Studio IDE, since it provides a variety of inbuilt features.
Among those features, comes the SDK manager, which can be used to download and install the appropriate Android SDKs.
Another feature which also comes with Android Studio, is the AVD (Android Virtual Device). This feature allows the developer to download and install a variety of different Android smartphone simulators to launch and test their app with.
Several of the other hybrid and webview technologies rely on the AVD utility from Android Studio to provide virtual smartphone emulators to test the application.
Android Studio is based on the IntelliJ IDE developed y Jetbrains, and received regular updates whenever IntelliJ does.
Android Studio can be download here.
My name is Daniel H. Jacobsen and I’m a dedicated and highly motivated software developer with a masters engineering degree within the field of ICT.
I have through many years of constantly learning and adapting to new challenges, gained a well-rounded understanding of what it takes to stay up to date with new technologies, tools and utilities.
The purpose of this blog is to share both my learnings and knowledge with other likeminded developers as well as illustrating how these topics can be taught in a different and alternative manner.
If you like the idea of that, I would encourage you to sign up for the newsletter.