Ask HN: mobile development with Phonegap vs. native?
7 comments
>What are your experiences with Phonegap?
I started very early in PhoneGap. Keeping up with the changes as the product has matured has been a pain, but expected. You'll be glad it's pretty mature at this point.
That said, starting with v3.0 the move to NPM has taken development reliability back a few steps in my opinion. I like the new command line interface, I just wish it worked more consistently. I'm sure it will get better.
>Is it generally permissibe for making enterprise mobile applications?
That's what I use it for. It works well for this purpose. I wouldn't use it for B2C apps though, especially for Android because the browser on Android performs poorly, especially for scrolling - very laggy and spastic.
>What features could be missing?
There are a lot of plugins that fill in the gaps. I don't recall not being able to do something a native app could do. I've used, the GPS, photo gallery, camera, enabled "Open In", FileTransfer, media recording, and probably a few other plugins.
>Why doesn't everyone use Phonegap if it can deploy to multiple platforms?
Because there are other platforms that could be used. If C# is your thing, you could check out http://xamarin.com With that you could write apps in a MVVM style and reuse your ViewModels in a PCL that could be reused across Windows Phone, Android, and iOS.
The thing is, mobile apps are now typically an extension of a web app, so if you already have web developers then PhoneGap gets you there faster. The end result will be a good product, but will never be a truly great product.
I started very early in PhoneGap. Keeping up with the changes as the product has matured has been a pain, but expected. You'll be glad it's pretty mature at this point.
That said, starting with v3.0 the move to NPM has taken development reliability back a few steps in my opinion. I like the new command line interface, I just wish it worked more consistently. I'm sure it will get better.
>Is it generally permissibe for making enterprise mobile applications?
That's what I use it for. It works well for this purpose. I wouldn't use it for B2C apps though, especially for Android because the browser on Android performs poorly, especially for scrolling - very laggy and spastic.
>What features could be missing?
There are a lot of plugins that fill in the gaps. I don't recall not being able to do something a native app could do. I've used, the GPS, photo gallery, camera, enabled "Open In", FileTransfer, media recording, and probably a few other plugins.
>Why doesn't everyone use Phonegap if it can deploy to multiple platforms?
Because there are other platforms that could be used. If C# is your thing, you could check out http://xamarin.com With that you could write apps in a MVVM style and reuse your ViewModels in a PCL that could be reused across Windows Phone, Android, and iOS.
The thing is, mobile apps are now typically an extension of a web app, so if you already have web developers then PhoneGap gets you there faster. The end result will be a good product, but will never be a truly great product.
We had to make the same choice a couple months ago with my startup. After some feedback from native & phonegap developers and building a quick prototype with Phonegap we went with native.
Basically Phonegap is cool if you want something for both platforms pretty fast and the UI is not too complex (works well for showroom apps for example). However, performance might be an issue (especially since iOS throttles Webkit outsides of safari), and I've heard that you'd more or less need to use pure JS since existing frameworks (e.g. Sencha) would be too slow. Last thing is that you'd generally still need to write 5-15% of native code for your app, depending on its complexity (again, haven't been far enough but got it from devs who use Phonegap for most of their apps).
Basically Phonegap is cool if you want something for both platforms pretty fast and the UI is not too complex (works well for showroom apps for example). However, performance might be an issue (especially since iOS throttles Webkit outsides of safari), and I've heard that you'd more or less need to use pure JS since existing frameworks (e.g. Sencha) would be too slow. Last thing is that you'd generally still need to write 5-15% of native code for your app, depending on its complexity (again, haven't been far enough but got it from devs who use Phonegap for most of their apps).
I had to revert from Phonegap to Java (native/android) for eCommerce mobile app when I found that I had to write too many "plugins" and tweaks to Phonegap to accomplish what i need.
Phonegap and alike "wrappers" are ok if you have general purpose type of app.
But if you need more optimizations for high performance, or fine grained "under the hood" control - native is the best/only way to go.
Otherwise you're risking to find yourself spending too much time trying to squeeze square peg into round hole.
Phonegap and alike "wrappers" are ok if you have general purpose type of app.
But if you need more optimizations for high performance, or fine grained "under the hood" control - native is the best/only way to go.
Otherwise you're risking to find yourself spending too much time trying to squeeze square peg into round hole.
Have you seen Steroids.js?
http://www.appgyver.com/steroids
Check out the video on that page, it uses PhoneGap and the results are pretty impressive.
http://www.appgyver.com/steroids
Check out the video on that page, it uses PhoneGap and the results are pretty impressive.
From what you are describing, phonegap would work really well. Easier to maintain that ways. You would need to get into more specifics to work out what features you may miss, but for a CRUD, it should work out well.
In my limited experience, PhoneGap is good for getting a quick proof-of-concept up and running on a few platforms or for wrapping basic mobile HTML sites in a native wrapper. Once you start using native functionality (camera, accelerometer, location, etc), you'll find that you have to customize your code for each platform. You will likely hit the biggest wall when you want to do notifications. That's where I gave up on it and went native, so to speak.
There is already something like Notification as a Service. You can push notification to iOS, Android, Windows Phone, Windows desktop, Mac OS and even to all browsers.
check http://push.io/
check http://push.io/
Did you try using urban airship or similar service?
For iOS Users in particular when someone tells us their app is "Native" we expect it to be just that! Not a website wrapped in some native code. Further more wrapping your web app in native code is a good way to get you picked on in reviews. No one likes it. We want it designed for the device we are running on. Not something that was put together for to simply check something off a list.
What are your experiences with Phonegap? Is it generally permissibe for making enterprise mobile applications? What features could be missing? Why doesn't everyone use Phonegap if it can deploy to multiple platforms?
Cheers