Thursday, 28 January 2016

How your Mobile Apps are made

Mobile applications (or "apps"), technically, come in three different forms - native, web and hybrid. To most people, they are "mobile apps", and that's all there is to it. Laypeople have that luxury. But the web developer needs to understand that there are differences - and not just in terms of Android, iOS or Windows Phone.

Native 

Native apps are created in a language native to their platform. Native apps for iOS are written in Objective-C or Swift, and native apps for Android are written in Java. So if your app needs to function on both platforms, you will need to write that same application twice - once for each platform. As you may conclude from this, development of a native app tends to take a bit of time.

Of course, since the app is created in a native language and can interface with the device's operating system and hardware directly, it has a distinct advantage in terms of speed and versatility. Anything that your device can do, your app can manipulate. Need to access the camera on your tablet? Maybe tune the brightness and sound? No problem. It's all there.

Here's an example of Facebook's Android app.

Accessing the
native app via
an icon.


Facebook for
Android.

Web 

Web apps, in the mobile context, are like your desktop/laptop browser-based websites. You type in a URL or access a bookmark, and with a working internet connection, you're able to access the functionality of those sites. These are written in HTML5, styled with CSS and coded with JavaScript. Again, like any other website. The only difference here is that these sites are designed to fit onto the screen of your mobile device. Functionality is limited to whatever traditional web applications can do - retrieval/updating/deletion of data, animations, playing of videos, and so on.

You don't need any special skills outside of the average web developer's repertoire (I'm making some huge assumptions here, but bear with me) to create a web application. But you're severely limited by the need for a browser.

Here's an example of accessing the Facebook and Quora's mobile web apps.

First, you access
the internet via a
web browser's icon,
like Chrome.

Next, you type in the
URL of Facebook...

... or Quora.

Note that we first start up Chrome (or any web browser), then type in the URL.

Hybrid 

Hybrid apps are, simplistically put, web apps that have been ported over to a mobile device in a native app-like wrapper (via platforms such as Cordova and Phonegap) and therefore simulate the behavior of native apps. How so? Well, for starters, you no longer need to start up your browser and access a URL. You merely need to click on your app's icon, just like a native app. Limited access to the native functions of your mobile device can be accomplished via plug-ins. As you may surmise, this slows things down somewhat on the hardware side of things.

Development of a hybrid app tends to be fast, though. You're basically taking the same web app and porting them to different platforms. Write once, run anywhere. Maintenance is also markedly easier. Excellent if you just want a quick-and-dirty prototype.

Here's an example of Quora's hybrid app.

Editor's Note: It's not confirmed that Quora is a hybrid app. But the interfaces of their web app and mobile app look suspiciously similar.

As in a native app,
you access the app
directly via an icon.

Quora

 

What to use for Mobile Development? What's better? 

This probably feels like a cop-out answer but, as with most things, it really depends on what you're going for. Is this a final product or a prototype? How crucial is speed or development time? Do you foresee a lot of maintenance? Your answer will determine the direction you eventually head towards.

Thanks for reading. Much app-reciated.
T___T

No comments:

Post a Comment