Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a front-end developer that is looking into mobile apps development. When I'm searching for ways getting into app development PhoneGap comes as first and most familiar language stack development method. It's really sweet that I can develop an app with HTML/CSS/JavaScript using PhoneGap APIs. But is PhoneGap scalable enough? How far I can go with it in making complex apps and large scale apps?

Why and why not I should start learning Objective-C to get into app development?

share|improve this question
1  
"Is phonegap scalable enough"? You might want to quantify what you mean by "enough". –  user16764 Mar 13 '12 at 3:38
add comment

3 Answers

up vote 8 down vote accepted

PhoneGap is client-side, so scalability is fairly irrelevant - you always have one user on one device.

As for app complexity, you can do a lot with HTML5 and JavaScript - There's no IE on iPhone, which makes everything a lot easier. There may be some things that can't be done from html or require the performance of native code, but PhoneGap has a fairly good plugin mechanism to handle that - you'll need to learn some Objective C, but not as much as you would for a full native app.

As an additional benefit, debugging/testing is much quicker than with a native app - if you avoid relying on plugins too much you can just refresh your browser instead of building and installing to an emulator.

share|improve this answer
add comment

The answer, of course, is "it depends". Most types of application can be built fine with Phonegap, but you do not, for instance, want to build a high performance 3D video game with it. There are cases where a native app is more appropriate.

There's a balance to be considered here, so you need to think about what an app needs to do before choosing between Phonegap and native. Time to market will likely be quicker with Phonegap as you can leverage existing web development skills, but typically complex preformance hog tasks like image processing, even if you can do them in javascript in PhoneGap, should be done natively.

You can, however, make a hybrid application that would do some parts natively like image processing and the rest in PhoneGap. So, if you consider this, Phonegap is infinitely scalable!

share|improve this answer
add comment

I like Phonegap/Cordova (I stuck more with the cordova cli) and would use it again but wouldn't choose it under the following circumstances:

  • Complex HTML-heavy pages - You really want to keep your CSS and HTML as minimal and tidy as possible or things can get messy with swiping, scrollable areas, etc... Webviews are still pretty bleeding edge owing to the vendors not being in a huge hurry to give us a perfect alternative to their native platforms. Also, try to avoid a lot of overlapping scrollable elements and learn about CSS reflow. You don't want more layout than a typical layout would have. Don't leave anything to chance. If the need for some CSS properties goes away, toss 'em out even if they don't affect layout as-is. I left some unnecessary overflow properties in place that made a mess out of scrolling performance on my first PG app.

  • It involves Canvas and HTML - Unless you're willing to use an openGL canvas workaround (there are pg plugins) with a canvas API that sits on top of all your HTML and can't be treated as an HTML element, Android's webviews are hopeless at canvas. Versions as recent as 4.1 have some really annoying freshly introduced bugs like frames that stick during animation. But mostly it's just a glitchy, buggy, underperformer that won't be worth wrestling with any time soon if I understand the situation correctly and it's actually a core Android issue they're not likely to address in the near future (browser canvas perf is lousy too). IMO, without the benefit of being able to use HTML for UI, it's kinda not worth bothering with.

  • You haven't written a phonegap app yet and it's a tight deadline - It's a learning curve full of nasty bumps on the road. Do yourself a favor and write something not totally trivial for yourself before taking the plunge on a tough deadline. Just swiping pages with scrollable content on them was a bit of an adventure for me but it's do-able when you know the pitfalls. Get your feet wet with some proofs of concept if you can at the very least.

  • You just have to have 20 libraries/frameworks before you can start anything - This is a bad choice for you. jQuery's okay. I didn't bother with jQMobile as it didn't really do anything I wanted help with and it had an early rep for being way too heavy. I also used a pretty light swiping library that I had to kill some preventDefaults in to avoid conflicts with vertical scrolling.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.