Thursday, August 7, 2014

Mobile Development with Cordova (Phonegap): Appendix C

Appendix C: Phonegap Build

Phonegap was originally an Adobe project -- and still is, Cordova is the open source version. Phonegap Build is a service provided by Adobe, to simplify the process of compiling your apps.
 
Simply put, you upload a ZIP file containing your www content (HTML, JS, CSS files, jQuery, et al) and simply upload it to the PGB website. They will then build the app for iOS, Android, and other platforms. This takes a lot of the overhead out of development, since you don't need a Mac, Xcode, Apache ant, a local copy of Cordova, etc.

But it's not a panacea:

  • You do still need a Mac in order to use the Keychain Access program, to generate certificates and to convert certificates into the P12 format required by Phonegap Build.
  • There is a limit of 10 MB of content in the ZIP file. This is quite generous for some apps, but our apps tend to include JSON and GeoJSON databases, pushing them over the limit or not leaving comfortable space for growth. There are techniques for downloading the database file over the network and storing on disk, so it doesn't need to be bundled with the ZIP file. But those are more complicated, and not as "zero maintenance" as simply bundling data that won't change except between versions.
  • The cycle of waiting tends to be several minutes. Using local builds on the Mac, I can have turnarounds in 60 seconds on the iPad. On Android, I need to transfer and download the APK, which is ultimately about as time-consuming as the Build service.
  • Android apps built in the PhoneGap Build, will not run in singleTop mode. This means that any time someone leaves the app, then resumes it by tapping the icon, it starts all over again starting with the splash screen and then the welcome page. This has been a reported bug for two years...




Because of these limitations, we don't use it anymore. But it certainly bears mention in any publication on the topic of PhoneGap and Cordova.


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.