Mobile is going wild! Mobile is going to take over! You hear this many many times in the news and I have to agree for the most part. It’s the convenience, the portability, the accessibility, the entertainment, and also the un-productivity that makes mobile devices great.
API to bridge web app and native app
I just discovered PhoneGap.com the other day when trying to evaluate my options when trying to develop an iPhone app. I have not gotten into the technical documents or prototyping yet but it’s a great concept and should be promoted to more web developers like myself.
Gap between web developers (HTML, CSS, JS, back-end) and Objective-C
This is a big gap since I just got introduced to the Mac world not too long ago. Even with a formal university training in C, C++, Java, and many self-taught web techs, learning a new thing is good but takes time, which could mean a delay in other more important things. So the concept (ideally) of PhoneGap is great, you just simply port your existing fine-tuned web app to a native iPhone app of pretty much the same quality (of course optimized for the smaller screen). This is a great idea/business pitch, very simple to understand and yet fill a great need.
Gap between a pro app builder and a single-web-service provider
For us, we don’t want to build a vast array of apps. We do not develop apps for other businesses. We simply want to port our existing web service (an ad management and tracking solution) to a native app so our client would access it anywhere, on their desktop and on the go. If doing the Objective-C way, we would need to either build it in-house or out-source to an app builder. Either way, we do not want to expose our core engines to the app (for security and modularity), so the app would use our API, which we already made public for our clients.
In-house
If the app building process and knowledge can be used as our core competency, meaning we will focus into mobile apps, then it makes sense. If there is some overlap between these platforms and our existing development then it also makes sense. I like learning a new language, new things in general, but not when pushed by deadlines and pressure. However, it’s quite a different world and frankly I don’t see myself getting too deep into it, unless we have no other choice.
Out-sourcing
Easy, fast, many options, developers, firm out there to compete for your business. However, this approach could get expensive with multiple app and on-going maintenance. We frequently add new features and improve existing ones on a daily basis. Upgrades are daily to weekly. With out-sourcing, we would need to request service from the external firm to push these new features and updates regularly. If the update frequency is slower, choosing to out-source would be a straight-forward decision.
Gap between different mobile platforms
iPhone is still the biggest player in town, but more are becoming bigger like WebOS, Android. Call them what you want, copycats, imitators. It’s part of the evolution and a needed one. So instead of paying one Objective-C team, one Java team (or other languages) to port your app, what’s better than having to write one web app that works just from any browsers. Then port/compile it to a native app on all platforms with ease (ideally).
Reality
Of course I understand PhoneGap is still in its very early stage with few up-to-date documentation/tutorials and an active codebase (unstable interface). But it will be stable and get more popular and more support. Of course you can argue that performance, stability, etc. cannot be the same as an fully native app written in Objective-C. Yes, but everything comes with some trade-offs. Some apps won’t be able to use these API bridges (eg: graphic-intensive games) but some apps (like our ad management and ad serving solution) are ideal candidates for PhoneGap (and other similar alternatives). I have only been reading on PhoneGap and iPhone app processes recently. When can we stop learning and focus on doing? I guess the answer is never and if/when it happens, it’s a bad thing. So the goal is to maintain a good balance and thing will flow along.
Leave a Reply