Developing Mobile Apps with Web Technologies

Guillaume Montard
mythoughts.io
Published in
4 min readNov 3, 2013

Nowadays everyone is making Apps (understand mobile application for the purpose of this article) or at least everyone wants to make Apps! Not long ago this was websites.

Apps is the new Web!

For the past 10 years we all learned how to make websites, technology evolved and now we all make powerful websites we called Web applications (or Web Apps!).

Suddenly mobile technology rise and a new kind of application comes in, mobile applications. Firstable Apple wanted us to make mobiles Apps as Web Apps (read here) but technology wasn’t ready (shortcut taken) and then AppStore were born with their own native technologies opposed to Web technologies.

What is the problem with Apps?

Mobile as evolved since Apple introduced the iPhone and now we have between 3 (iOS, Android, WindowsPhone) to 6 (add Amazon, Blackberry, Firefox OS) ecosystems and technologies battling for you to build Apps. Doesn’t it sound to you like Mac vs PC war from the 80’s but only far worst?

For companies and individual willing to develop those Apps it’s merely impossible to keep up with all those different technologies unless maybe you call yourself Facebook, Evernote or LinkedIn… and yet!

As I said we all learned Web technologies and it did evolve a lot for past years, HTML5 is now a reality, CS33 is powerful and JavaScript is king! Why not use those, as Apple once told us, to build great Apps? But not Apps running inside the browser, we’re talking native Apps sold in the Appstore and using all the great features your device has to offer!

Turns out I’m not the only one thinking about it! For the past years there has been different projects with this goal. Still it seems a majority are stuck with objective C or java to build Apps, how come?

Using the Web as a technology

I won’t make a list of all those projects or companies that made or still make kind of Web technology solutions to build Apps.

The biggest project, which is, in my opinion, the most « Web » friendly is PhoneGap.
Basically PhoneGap is a native App shell which let you run inside HTML/JS/CSS. The genius behind it is that they managed to bind all (almost) native mobile functions (GPS, Accelerometer, FileSystem etc.) to JavaScript in order for you to build Apps like native one. At the end you get a native App that you can send to your favorite Appstore or I must say to your favoriteS AppStoreS since this is cross platform. With only one code base you are now able to build Apps for iOS, Android and even WindowsPhone!

PhoneGap is not new, it’s around for at least 3 to 4 years but as the Web evolved, as technology became more mature, they did too and their solution.

There is still one big problem with this approach that Facebook famously made public (in September 2012) as saying :

Our biggest mistake was betting too much on HTML5

Why did they say that? Mostly because of the slowness of the execution of those technologies.

The one problem with Web technologies is that they are not optimized at low level as Objective C or Java and as you know Mobile is still limited in power compared to a computer. This claim is true but tend to be less and less at each new generation of device. Take a look at the new iPhone or iPad, it’s only 4 times slower than a Macbook Air and 60 times more powerful than the first iPhone ! Anyway there is one thing at which native Apps are really good, interface. And yes in this area any slowness is a serious hit for your App. CSS3 performance are still pretty bad on a computer, you can imagine how it performs on mobile, right?

Native interface is the key

Until a few weeks ago there was no way of using native interface using something like PhoneGap. Yes I said until because something called Steroid was released and it does change everything!

Folks at AppGyver created a way to use native elements inside PhoneGap exactly the same way PhoneGap did with native device functions, by binding it to JavaScript! Pretty awesome no?

PhoneGap Apps didn’t feel native. That’s why we built Steroids.

But they didn’t only create a new library, they even built automation tools for developing such Apps a lot faster and cleaner!

As you can imagine I’m more than thrilled with this as I consider it a real game changer in the way people see Web technologies for App development.

Give it a try here.

There is many more to cover to this topics, but it won’t fit in one post, so be prepared to read more about this!

--

--