Which programming language should I learn to make apps?


Mobile apps can be divided into three groups, and which one you choose will determine what programming language you’ll need to learn: native apps, hybrid apps, and web apps.

Native apps
With native apps, you use the native programming language for that device, such as Objective-C for Apple devices or Java for Android devices. What you code for one device cannot be used on the other device. However, their strength is that, with best code practices, you’ll get the smoothest and fastest apps that have the look and feel of the native environment. You’ll work with different software development kits (SDKs) for each environment (such as Xcode for Apple and Eclipse for Android) to create the final product (such as an apk file for Android). Android apps can be built on PCs and Macs; Apple apps need a Mac machine to compile the final product that is uploaded to the App Store. Apple applies strict rules for apps to adhere to make it into the App Store; Google Play applies few rules for form or content.

Hybrid apps
Hybrid apps use a combination of HTML, CSS, and Javascript to create the apps, then they are packaged with a wrapper like PhoneGap, which ties in the code with the device. With PhoneGap (or other software), one may use plugins to access the various phone functions like camera. Hybrid apps are generally slower and not as smooth as their native counterpart. Although you can program this kind of app on any computer, you’ll still need a Mac to compile the final iOS product, and you’ll still need the SDK for each device you create apps for.

You’ll find web sites devoted to app creation by simply filling in some fields, or drag-and-drop software that lets you create a variety of different apps. But whether they’ll get accepted into the Apple Store is another matter; their generalized nature usually disqualifies them.

Web apps
Web apps are simply web pages hosted on normal web servers, but sized to fit comfortably in smartphones. They are coded with any number of web technologies, including PHP/MySQL and other database technologies, since they are web sites at heart. They are accessed by smartphones the same way as any other web site; but with a little extra coding, you can provide a custom icon that will reside on the home screen of the device if the user chooses to save your site to the home screen.

Web apps don’t use device SDKs because they are uploaded to web servers just like any other web site content. Because they don’t use SDKs, they cannot access device capabilities like camera, etc. Web apps should work well in any device, since they are viewed as any other web page is viewed: in a browser on the device. Nowadays, web designers are creating web apps through Responsive Web Design techniques, which uses media queries and other techniques that allows the content to fit a wide array of device screen widths.

Since I came from a web design background, it was natural for me to choose to go the Hybrid app route, which allows me to create one HTML/CSS/Javascript code base with skills I already possess and deploy it, with some variations, to the Apple and Android platforms.

The above is a simplification. If you are an experienced web dev, get more details on the Google Group for Cordova here: https://groups.google.com/forum/#!topic/phonegap/IugJMv2A8Jg

5 thoughts on “Which programming language should I learn to make apps?

  1. Pingback: What programming language should you learn if you want to make apps? | iPhone Dev Log

  2. I wish to devolope a web application for java mobile.what all softwares are required for that???what all programming languages i should know.pls give me instructions.

Leave a Reply

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s