Before we delve into breaking down the technical aspects of a mobile app, I want to go over the four platforms for building Android applications: Android Studio, NativeScript, Kivy, and Ruby-on-Rails(ROR). Each platform has a mission to provide developers with options to make high caliber native apps. In addition, each platform has a dynamic volunteer community that supports and advocates for its status as the “best” platform. Online, and in some cities, in real life resources abound. Most importantly, each platform allows you to develop Android apps using free, open-sourced technology.
There are numerous differences between building an Android app to an iOS app. A simple google query will produce pages of responses, so I won’t bother repeating. However, I will name a few that I feel make my case for Android. For me the advantage of building Android apps begins with its open-sourced nature. Since its debut in 2009 Android has acquired over two billion users internationally. A high percentage of those users are in developing country’s, which speaks volumes considering there are few things from developed countries that translate well into developing countries culture. In addition, aside from phones and tablets, Android is available in cars, wearables, televisions, and computers. Its ability to be anywhere and do anything along with the backing of a vibrant and passionate google community make Android my number one pick for building mobile applications.
Ruby / Ruby On Rails
Developed by Yukihiro “Matz” Matsumoto and released in 1995, Ruby is an object-oriented, general purpose, multi-paradigm, programming language. Ruby was designed to “optimize the programmer’s happiness” (Hansson, n.d.) in this way the code is flexible and forgiving, unlike its contemporaries Java or even Python. Since Ruby’s syntax shares similarities to C++, Python, Perl to name a few it is possible that anyone coming from another language will find commonalities.
Notable apps: AirBnB and Hulu.
Android / Android Studio
Java was developed by James Gosling as a general purpose, multi-paradigm, object orientated computer program language. Hansson describes it as a language meant to protect the programmers. (Hansson, n.d.) Built on C, Java was created to be concurrent, class-based, and to have “as few implementation dependencies”. (Wikipedia, 2017) Another feature was “WORA, write once, run anywhere”, any code complied can run on all platforms that support Java. Perhaps that is part of the reason that since its release in 1995, Java has become the most popular programming language. (Wikipedia, 2017)
Android was developed by Android Inc and eventually became a mobile operating system for touchscreens. In 2005, Google acquired Android Inc but it wasn’t until 2008 that Android (operating language) made its public appearance on Nexus devices. Based on Linux Kernel Android uses Java for the UI and C for the Core. (Wikipedia, 2017) The Android code is run in a Java runtime environment. The Android Studio IDE was released in 2015, before that Eclipse was the default platform. Like NativeScript, Android is backed by a company which maintains the language and built the IDE. Online communities on GitHub create additional libraries that extend or create features.
Notable apps: Instagram, Uber
Python / Kivy
Python is an open-sourced general purpose, multi-paradigm, programming language. Released in 1991, it was designed by Guido van Rossum to be highly readable focusing on using space instead of brackets for syntax. “It is designed to have an uncluttered visual layout, often using English keywords where other languages use punctuation”. (Wikipedia, 2017)
Kivy, is the framework for building mobile applications using Python and Cython. Released in 2011 Kivy was developed and maintained by the Kivy Organization. Online resources for the app can be found on GitHub, the blog- Kivy Planet, and the user forum all found through the website.
Notable apps: Southwest and Cigna
Alright, now go find your language. If you are already a programmer, what is your favorite language?
Hansson, D. H. (n.d.). The Rails Doctrine. Retrieved from Ruby On Rails: http://rubyonrails.org/doctrine/
NativeScript. (2017, September 16). Frequently Asked Questions. Retrieved from NativeScript: https://www.nativescript.org/faq
Wikipedia. (2017, September). Android_(operating_system). Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Android_(operating_system)
Wikipedia. (2017). General-purpose programming language. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/General-purpose_programming_language
Wikipedia. (2017, September). Java. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Java_(programming_language)
Wikipedia. (2017). Programming paradigm. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Programming_paradigm#Multi-paradigm
Wikipedia. (2017, September). Python. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Python_%28programming_language%29
Wikipedia. (2017, September). Ruby on Rails. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/Ruby_on_Rails