Syd Lawrence

My thoughts and likes

 

Find me elsewhere

 

HTML5 Powered with CSS3 / Styling, and Semantics

 

Blog powered by Tumblr

Themed by Syd

 

JavaScript Function arguments

Blog posts

Articles I have written

Apple’s decision that changed cross platform development.

Take yourself back to 2007. The first iPhone was released… The media, love to claim that this device changed everything. One thing everyone seems to forget is that at first, we, as developers, could not make applications for the iPhone. There was no app store. There were no apps.

What was Apple doing? They were pushing for the web. They said, “Just make a web app”. They had their ‘add to home screen’ functionality (which is yet to be duplicated by other manufacturers, but it REALLY needs to be). 

The problem with this solution was that developers wanted access to cool stuff. We wanted to play with the camera, the location services, the address book etc.

Now imagine this scenario. Apple improve mobile safari at this point to include access to all the native functionality and features. This would be what Mozilla are trying to do with their WebAPIs. Or perhaps what W3C are trying to do with the web applications API. They also add hardware acceleration and key performance improvements at this point. They make web apps, look and behave like native apps.

Now what would other manufacturers have on their devices? A decent brower that enabled developers to have access to the native functionality of the device. Now remeber, the beauty of the web is that any device anywhere can access it. There are only two requirements, a browser & an internet connection.

But what did Apple do? They released a native SDK in their very own language of choice Objective-C. Developers then started making native iOS apps. Only iOS devices have access to these tools and services. Native apps aren’t new, in fact they are old. So what was the big deal? The App Store, that is what changed everything.

Don’t get me wrong, obviously there are still the type of tools, that can’t work well using high level languages. Native apps will always be with us for heavy duty software. But for angry birds? For the type of app your mum has downloaded and installed. Do these really need to be native? No.

What we need now is device manufacturers to develop decent browsers with native funcionality APIs and the “Add to home screen” functionality.

Let’s not party like its 1999

Currently (at time of writing) there are 4 main desktop platforms (Windows, Mac, Linux, Chrome OS) and 6 main mobile platforms (iOS, Android, Blackberry, Windows Phone 7, Symbian, WebOS). In the future there is going to be even more platforms. Smart TVs will become mainstream, even the long awaited smart fridges.

Each of these platforms support applications of one type or another.

The current feeling, by many, certainly not all, and not sure if even most. Is that there has recently been a flocking to the native applications.

Why is this?

“You get a better experience with native applications”

I think I might be alone in this, but I hate this kind of argument. A ‘better’ experience depends on what you are actually wanting to experience. If you want something that you can access from any device anywhere in the world. Then the web provides an infinitely better experience.

You can put in extra functionality in a native application

Camera, Address Book, App purchases etc. These are either not possible via the browser or just not ‘easy’ to implement.

Now let’s take it back a few years ago. We had various desktop platforms. Mobile platforms weren’t really mainstream. The web was a wonderful place. Us makers, developers, software craftsman could make something that everyone with an internet browser could use. That was all you needed. That one application, the browser. It didn’t matter what desktop platform you were using. The web was our new platform.

So why have we gone back to the past?

My answer is simple. Mobile browser vendors.

They have only recently implemented hardware acceleration into the browsers. That isn’t necessarily their fault. Let’s remember that the standards have only recently been formalised.

But more importantly, they don’t currently implement any of the useful native features.

Many of you will have heard of PhoneGap. PhoneGap is basically a browser wrapper adding these extra bits of native functionality into applications built using web technologies.

PhoneGap in my opinion is an excellent interim solution, but it won’t be long until browser vendors start implementing native functionality. The problem we have is again the standards issue.

W3C have a draft proposal for their Device APIs

Mozilla are creating their own implementation, WebAPIs. Which is set to be completed within the next 6 months.

As long as you have a good browser, your device won’t become a brick,
Paul Rouget

I don’t write for devices. I write for people.
Jeremy Keith

I guess what I am trying to say, is let’s not have the same discussions we were having back when the web became the platform the first time round.

Media

Visual shares