#ShiftYourPerspective / A.E. Hellar / Archives / Contributors / Pt. 8 / Technology

#Technology Crash Course: 4 Languages and 4 Platforms To Build Awesome Apps // The District Nerd

By A.E. Hellar

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: 1) Android Studio; 2) NativeScript; 3) Kivy; and 4) 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.

Android mobile app language history

There are numerous differences between building an Android app to an iOS app. A simple google search 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 international users. A high percentage of those users are in developing country’s — which speaks volumes considering that there are few things from developed countries that translate well into a culture of a developing country. 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.

open sourced definition

Ruby On Rails // Rails

Ruby On Rails Website

Developed by Yukihiro “Matz” Matsumoto and released in 1995, Ruby is an object-oriented, general purpose, multi-paradigm, programming language (edited: in which Ruby On Rails is based on). Ruby was designed to “optimize the programmer’s happiness.” In this way, the code is flexible and forgiving, unlike its contemporaries Java or Python. Since Ruby’s syntax shares similarities to C++, Python, and Perl, to name a few, it is possible that anyone coming from another language will find commonalities.

After reading The Rails Doctrine, it becomes evident that for David Heinemeier Hansson, Ruby on Rails is a passion project. Released in 2005, Ruby on Rails was designed to continue Matz’s philosophy of simplicity, Convention Over Configuration, and Don’t Repeat Yourself. The framework is web-based and uses a model view controller. HTML, CSS, and JavaScript libraries are key parts of the environment. I strongly encourage you to read “The Rails Doctrine” as it shines a poetic light on the heart of Ruby on Rails. To learn more about using ROR, visit the website or GitHub where volunteers are welcome to make contributions.

Notable apps built using Ruby on Rails: AirBnB and Hulu.

Android/Android Studio // Java // Android

Android Website

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.” Built on C (programming language), Java was created to be concurrent, class-based, and to have “as few implementation dependencies”. Another feature was “WORA: write once, run anywhere” which meant that any code complied can run on all platforms that support Java. Since its release in 1995, that is Perhaps part of the reason why Java has become the most popular programming language.

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. 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 built using Android: Instagram and Uber

Python/Kivy // Python // Kivy

Kivy Website

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.”

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 of which are found through the website.

JavaScript/NativeScript // Javascript // NativeScript

Javascript Website

While JavaScript might sound like Java, that is where the similarities end. JavaScript is a general purpose, multi-paradigm programming language created by Brendan Eich and released in 1995. Over the last two decades, JavaScript has become a dominate programming language for web development. And along with HTML and CSS, it has become one of the core technologies for web development. Initially, JavaScript apps ran in a WebView using hybrid-mobile technology, but they provided limited functionality for the user, so an improved platform was designed — enter stage right: NativeScript.

NativeScript is an open-sourced framework released in 2015 by Telerik for creating mobile applications using JavaScript, Angular, and TypeScript. The platform uses runtime environments to give mobile applications the performance necessary to be competitive. For Android apps, JavaScript code is run using the V8 virtual machine. NativeScript.org is a great source for getting an overview of the language and the type of apps that NativeScript can produce. NativeScript’s suggested online resources include GitHub and the online discussion forum on the NativeScript.org website.

Notable apps: Southwest and Cigna

Now we know there are four different platforms (Android Studio, Kivy, Ruby on Rails, and NativeScript) and languages (Android, Ruby, Python, and JavaScript) to create a mobile application. While all vary in difficulty, each language will produce a useable Android application. But the question remains: which language is the best to use? Which language is the easiest to use? Which language should I (you) use? I do not believe there is one answer. Programmers know more than one language and if you do not know more than one, you eventually will. I suggest using a language you are comfortable with. And if you are not sure, that is okay too. Thanks to Codecademy, it is easy to get a free introduction with a few clicks.

Alright, now go find your language. If you are already a programmer, what is your favorite language?

|| Tech + Brew || About Adrienne

Adrienne is a DMV native with an interest in homebrewing (beer and wine), app development, and most things science fiction/fantasy. The District Nerd emphasizes the culture of beer, wine, and technology in the District, Maryland, and Virginia (DMV) communities.

BL | Black Lion Journal | Black Lion

Article By A.E. Hellar Of The District Nerd | The Black Lion is a humble interdisciplinary journal that values your voice. For contribution opportunities, visit the Opportunities page; to learn more about submitting to the journal’s creative magazine, visit the The Wire’s Dream Magazine: Submit. | Copyright Policy

Advertisements

Discuss

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s