# Tuesday, September 25, 2012

I often get the question, “why the focus on hybrid development for your accelerator?” This question has come up more and more as Mark Zuckerberg said that Facebook’s focus on HTML5/hybrid development was a mistake.

As I argued over a year ago on this blog, it is mistake to bet exclusively on native or hybrid since some Apps will call for a native approach and some will call for a hybrid approach. Projects that need maximum performance and hardware interaction will require a native approach (medical scanning/rendering apps and some games come to mind) and projects that require larger reach and very fast time to market require a hybrid approach. Each approach has its limitations and trade offs.

If I advocate both approaches in a developer’s toolkit, why would I be starting the world’s only Hybrid Accelerator? The reason is that a startup should never, ever, go native. The very nature of a startup is that you have no money and require a super fast time to market. Just last week at a startup networking event in Hong Kong two super cool startups showed me their native apps on their iPhones. They then asked me what I thought of the app. I said: “your app sucks since over 75% of the smartphone market can’t use it, myself included as an Android user.” They countered: “we have no money, so we choose one platform to build the prototype on.”

My advice for them and most startups: For your prototype and V1 release you should go hybrid. You will have a much broader reach and won’t have to maintain two or more codebases (and double the programmer staff.) You’ll save time and money. Once your company matures and you have lots of users and the money to spend on the development, then you should consider going native if you are bumping into the limitations of hybrid development (chances are only a small percentage of apps ever will).

What about a company with 1 billion users, over $1b in profits post-IPO, and a super slow API in the first place? Yes, Mark Zuckerberg proves my point, hybrid development helped Facebook get to market fast with its hybrid mobile app. It was not a mistake for Facebook to go to market fast and cheap with a hybrid app. The mistake Zuckerberg made was not deploy some of those profits to build a better hybrid or go native years ago.

Tuesday, September 25, 2012 2:20:28 AM (Eastern Daylight Time, UTC-04:00)
Interesting and valid point. What do you think of SDK's like Xamarin's MonoTouch, Mono for Android and native WP? Allowing to build native apps for iOS, Android, Windows Phone, and you can have the codebase shared for a large part. Not to forget code sharing with ASP.NET web services and the ability to host it in the cloud with Windows Azure.

I'm using this for my HK startup. Any thoughts?
Tuesday, September 25, 2012 11:55:44 AM (Eastern Daylight Time, UTC-04:00)
One can argue that in most cases the "Once your company matures and you have lots of users" moment has lower chances to happen at all, if you offer inferior (as it is in most cases with hybrid apps) user experiences compared to your existing and potential competitors.
Tuesday, September 25, 2012 12:19:39 PM (Eastern Daylight Time, UTC-04:00)
Hi Steve,
These are extremely valid points. However, can you tell me how to use barcode scanner , slide-out menu using the hybrid approach. I think hybrid is the future but there are still pieces missing for which most of the startups and app using those features choose native. Even i am not using those , how to create a simple gesture rich todo app like "Clear" using hybrid model. The answer is it is easy to do using CAnimation and UITableView than using Javascript.

Thanks
Mehfuz
Wednesday, September 26, 2012 3:27:10 AM (Eastern Daylight Time, UTC-04:00)
Hey Mehfuz,

That's why they call it hybrid approach. When it's not available in HTML5, just use the native functionality (usually done through some hooks / plugins /etc.).
E.g. when implementing a barcode scanner (and if you're using PhoneGap) you could use:

http://github.com/phonegap/phonegap-plugins/tree/master/iPhone/BarcodeScanner

And you can still use JavaScript :)
JeffG
Comments are closed.