OutSystemsDev Zone

The 3 Mobile Architectures Distilled

I don’t know about you, but I am getting asked more and more to deliver some type of application that has a mobile front end. Of course mobile is one of the big trends nowadays, and there are good reasons for it. In a recent Forrester survey, 75% of decision makers claim that deploying mobile apps has increased their workforce productivity.

The question I seem to get asked often is, how should you implement mobile? 

Mobile

To keep it simple, I have found that there are three implementation strategies you can choose from to build your mobile app:

  1. Native Applications
  2. Mobile Web Applications
  3. Hybrid
Native Applications
These are apps built for a particular device and operating system. They’re cool because you can build extremely rich and interactive apps that take advantage of all of the phone’s features. The problem is they’re hard to build, and you need to have different code (and sometimes different dev teams) for each different device – a maintenance nightmare…
Mobile Web Applications
These are applications that run on the device’s browser. Using standards like HTML5 and CSS3, they provide a very good level of interactivity that is getting closer and closer to what you get from native. They run on a web server, instead of running on the device, which gives the possibility to deploy the same app for multiple devices and greatly simplifies application maintenance. The Financial Times is an example of a major player that has decided to move from native to Mobile Web.
Hybrid Applications
These are a mix of Native and Mobile Web. A thin native shell is built around a browser, where the bulk of the application runs. The thin shell allows the application to access phone features that are not available in HTML5 (yet!). It also meets the requirements of being native in order to distribute the application on the appstore. On the maintenance front, well you guessed it a bit of a mix between the native and mobile web. Major players such as Facebook have chosen this route by building their own “wrapper” and then executing all the site content as a web app in that shell.
So, which to pick?
I believe the best choice is Mobile Web Applications. Of course the decision depends on the context, but most of the time Mobile Web is the way to go – particularly if you’re considering Enterprise Mobile Applications. Here’s why:

  1. Use what you know: Reuse all the knowledge you have from web development. There are still new things to learn, but it beats learning a whole new system.
  2. No approval process: Skip all the steps necessary to have your app on the appstore. Just publish to your servers and you’re done.
  3. Auto-upgrade: All your users will be using the latest version of your app. No need to manually upgrade the app on their devices.
  4. Ready for a lot of devices: Using standard technologies like HTML5, your app will be ready to run in a lot of devices in one go.
  5. Be Agile! By skipping the appstore approval process and by being able to release for multiple devices at once, you can have truly short iterations and release new features early to your users.
Click here to learn more about this topic by watching the “Mobile has arrived so start building those apps!” webinar. Happy development!
 
About the author

Rodrigo Coutinho

A member of the founder’s team, Rodrigo has a passion for web development, great products, and geeky stuff. He spends his time designing future versions of the OutSystems Platform and dreaming about the cool future of the web.

Comments

Robert Chanphakeo

This really depends on what type of application you are building and for who.
For example, If you are building an enterprise app, then it would be best to go with a mobile web app, for reasons that you have already mentioned in your article.
However If you are building a consumer mobile app, it would be best to go with a hybrid app, … now you would ask why?
If you need to sell your mobile app to your customers, it would be essential to distribute/market your app via the appstore, without the appstore your business will fail, Especially if your business is new, your a start up, in this case your success will depend on the appstore.
Best Advice? Choose the right technology that is most suitable for your product, and your customer that will be using your mobile app.

João Filipe Rodrigues

As a guy that was in the trenches of the WAP mobile sites war almost ten years ago, to me, the Native option looks frighteningly deja vu.
I would go for that option only if all my target users had the same device model (a company’s workforce for example, where the phone is the same model for all), and only if my app needed to do something that wasn’t possible to do with Mobile Web.

PHenry

The major malfunction I have with mobile web apps (or hybrid) is the increasing reliance on HTML5. That’s what everyone is touting. The problems with html5 is no exception handling capabilities, hard to do offline support (not nearly as trivial as native apps) and the increased testing required. Sure you might save dev time with doing html5, but you just shot up your testing time to test on all the different browsers. And thats NOT even talking about the fact that html5 still isnt’ standardized…ya, it’s going to be standardized, but it’s not yet and it’s been perpetually going to be for over a year now. The last hiccup I have with html5 is EVERYTHING is “oh just get another JS library.” Really? html5 isn’t really html5, its really JS. Have you tried debugging that? I prefer my native IDE thank you.

Leave Your Comment