Why Android?18 Mar 2016
It isn’t too difficult to tell you why I would choose Android development over other mobile platforms. Google has made Android a widely-popular operating system for mobile devices by simply making it open-source. I believe this is most likely the biggest contributor to its popularity. Because it is open-source, individuals and existing businesses can capitalize on it being free and can build software, hardware, and external devices around the platform with little effort rather than having to conform to strict rules. For instance, if you don’t like the way Android looks, you can simply make your own custom Android-based ROM. That’s exactly what Samsung does and according to recent statistics, Samsung is dominating the Android device market. In fact, the top 5 Android phones are all Samsung phones 1. In addition to Android’s openness and flexibility, I also try to follow the trends in the mobile development market and I’ve found that Android has been dominating the mobile device market share for quite a while (since July 2014).
But, these aren’t actually the reasons why I’ve now chosen to solely work on Android development. Without going too far off onto a tangent, I’d like to fill you in on my background, so you can get to know me a little better. I’ve been developing mobile applications for four years now. I, by no means, consider myself an expert on mobile application development. And in fact, four years is a fraction of how long Android has existed (publicly, 9 years now). However, I have had experience in developing applications for iOS, Windows Mobile and standard Windows applications built for tablet-use, and Android. So, I’ve used all the common tools that are available for those three platforms and have even worked with cross-platform development tools.
What it comes down to is that Android has shown me that it aligns its goals with the way I like to work. If you want to build a quick prototype of a mobile application (even if you have no experience whatsoever), you can at any moment download Android Studio on any popular OS (Mac, Windows, Linux), go online to find well-written documentation and an amazing developer community, and deploy an app quickly. Now, yes, I get “quick” is relative. It depends on a lot of things. But, I’m not referring to knowledge of development languages or how difficult it is to use a particular language. And I’m definitely not going to argue what programming language is the best. If you want to consider the amount of effort it takes to build an application and put it on any Android device available to you, Android will win hands-down. Other mobile OS companies have put restrictions on developers that drastically slow down deployment time, and one of those other companies even charge money to be able to build mobile applications. Some of those restrictions have valid reasoning for their existence. However, if you run into a scenario where you want to deploy a new prototype app that you built to your friend’s smartphone, it’s not always as easy as 1. plug the device into the computer, 2. click “Run” in the IDE (as it is with Android). And don’t get me started on the difficulty of building installation files for desktop applications.
What I’m getting at is that Android can help you build and deploy mobile applications quickly with little fuss. It aligns with my most important goal as a developer: Get shit done. The people who are pushing the world forward and making it better for other people are those who just get shit done, regardless of rules or worriedness of doing everything the right way. If there’s one thing that my last job taught me, it’s that, in general, those who get products built quicker are the ones that get to the finish line quickest.
“A bird in the hand is worth two in the bush”.
It’s completely fine if you decide to take your time to build an application 100% the right way. And if you have the time to do so, by all means, you should do it. But, if you’re competing with the rest of the world and you decide to make your new product as shiny as possible before shipping it out into the world, ten people are going to have already beat you to the punch. And the worst part is that those ten people will have made a duller product than you and will already be moving on to the next thing. I’m not saying that we should build products and completely disregard product safety, sustainability, or usability. I’m saying we should do everything in our power to make the products we build as great as they can be without sacrificing our time to think and work on our future. The mobile development field is constantly changing. So, let’s break down barriers, help as many people as we can, and keep thinking forward.
This is why I feel that my goals align with the goals of Android. This platform simplifies the intricacies of mobile development, cuts out the nitty gritty of deployment, and supports its developers in every way that it can so that we can focus on the next best thing.
Having all of that said, Android development still has a long ways to go to catch up to other mobile platforms in terms of maturity. When actually building Enterprise-ready/”Real World” applications, iOS applications can generally be developed faster (not including deployment time) simply because it’s backed by languages that are either more mature than Java or have been built with mobile development in mind. Android developers are, dare I say, required to develop their interfaces using XML, whereas other platforms have WYSIWYG tools to build and test their interfaces in real-time. Also, any experienced mobile developer will tell you that to build an app the right way you’re going to find yourself writing hundreds of lines more with Android than you will with iOS. So, I still think Android has a ways to go before it becomes the “perfect” mobile platform for developers, but I love where it’s going.