javascript - checklist of creating phonegap project- Can SomeOne add More elements -
for updated list pls see url
http://www.aurigait.com/blog/checklist-of-creating-phonegap-project/
- we doing core html dev. jquery mobile can used platform wide range device support & ease in making forms tradeoff of performance on lower-end devices.
- ui transitions not supported in various devices either can selectively apply transitions.
- ios , android navigation kept same or different since button navigation in available in android
- language / audio / tectical support
- analytics / notifications , intensity [notificatioin pages history] / adwords / geolocation based
- resposive layout resolution breakup
- we supporting resolutions of 320*480 , above. (for can have ui designs 320*480 (mobile portrait) / 768*1024 (tablet portrait) / 1280*720 (desktop)
- updates & news
- event calender & reminders
- user feedback forms
- swipe gestures
- sharing of content application
- single page applications [single page layouts implement those. (follow examples of paytm / asana / gmail)]
- bringing html directly server ui being container of view.
- using application transforms mobstac this. / xslts / transforms
- single page applications [single page layouts implement those. (follow examples of paytm / asana / gmail)]
- bringing html directly server ui being container of view.
- using application transforms mobstac this. / xslts / transforms.
- sharing ios , android
- back button navigation support
- documentation of application/admin panel needed
- export options of reports
(1)back button navigation support in android important should planned day 1 of development cycle. in ios button must provided desired navigation. remember android , ios have different navigation patterns.
document.addeventlistener("backbutton", onbackkeydown, false); //onbackkeydown
(2)avoid using form elements inside pages because there no use, never submit.
(3)for phonegap splash screen please use navigator splash hide() rather autohide=true , timeout.
<preference name="auto-hide-splash-screen" value="false" />
(4)android splash landscape supported pls put landscape splash images system (for ios looking it)
(5)when using cloud build phonegap , native build remember delete repo’s images since if using cloud build images uploaded zip package increasing size of application.
(6)for android , ios different js plugin maintain seperate files remember 1 repository kept android , ios in svn there no exception.
<!--ios / android cordova <script src="js/ios/cordova-2.5.0.js"></script>--> <script src="js/android/cordova-2.5.0.js"></script> <!--android cordova--> <script src="js/android/flurry.js"></script> <script src="js/android/pushnotification.js"></script> <script src="js/android/admobplugin.js"></script> <script src="js/android/share.js"></script> <script src="js/android/executeplugin.js"></script> <!--ios / android cordova <script src="js/ios/admobplugin_ios.js"></script> <script src="js/ios/flurryplugin_ios.js"></script> <script src="js/ios/pushnotification_ios.js"></script> <script src="js/ios/ios_execute.js"></script> <script src="js/ios/share.js"></script>-->
(7)do not use javascript confirm box , alerts use native boxes. good
navigator.notification.confirm("do want exit km?", function (idx) { if (idx == 2) { navigator.app.exitapp(); } }, 'exit application', 'no,yes'); function native_alert(msg) { if (navigator.notification != undefined) { navigator.notification.alert(msg); } else alert(msg); }
(8)when using list select use native option list , check list because better. not html select items
<select id="select2" name="select2" data-role="none" > <option>town</option> </select>
(9)inorder remove white overlays android 4.0.3 element use below
input{ -webkit-user-modify: read-write-plaintext-only;}
(10)never preferred installation sd card not supported in ~android 2.2
(11)screen width can not change mobile app vertical scroll can come exceptions. screen moves outside areas should taken care @ time of writing markup , css.
(12)native loading panels android , ios preferred due blocking nature. http://abstractlayers.com/2013/03/09/phonegap-adding-progress-dialogspinner/
(13)dynamic , eval script registering , de-registering
(14)phonegap childbrowser can not trusted loading every content can use, open windows in new browser outside phonegap instead can use inappbrowser.
function openlinkinnewwindow(weblink, sharecontrol, subjectval) { try { if (global_devicetype == undefined || global_devicetype == "") global_devicetype = (navigator.useragent.match(/ipod/i)) == "ipod" ? "ios" : (navigator.useragent.match(/ipad/i)) == "ipad" ? "ios" : (navigator.useragent.match(/iphone/i)) == "iphone" ? "ios" : (navigator.useragent.match(/android/i)) == "android" ? "android" : (navigator.useragent.match(/blackberry/i)) == "blackberry" ? "blackberry" : "other"; switch (sharecontrol) { case 'facebook': weblink = 'http://www.facebook.com/sharer.php?u=' + encodeuri(weblink) + '&t=' + encodeuri(subjectval); break; case 'twitter': weblink = 'http://twitter.com/share?text=' + encodeuri(subjectval) +'&url=' + encodeuri(weblink); break; default: break; } consolelog('sharer weblink : ' + weblink); //incase of videos android , ios have different problems while loading videos since childbrowser can open vid on ios if (global_devicetype == "android") navigator.app.loadurl(weblink, { openexternal: true }); else if (global_devicetype == "ios") window.open(weblink, '_system', 'location=yes'); //andriod changes else window.open(weblink); //andriod changes } catch (ex) { consolelog('error in openlinkinnewwindow : ' + ex); window.open(weblink); } }
(15)application offline check html5 features
(16)while creating ios native build please copy references folder of build otherwise build have issues while porting system.
(17)phonegap cloud build must locked particular version of phonegap otherwise create build latest rc versions may have bugs. config.xml file should read thoroughly before using feature of phonegap build.
(18)for creating next android , ios build version must updated version 1.0 + 0.1 or suitable.
(19)keep application namespace, bundle id correct @ first moment because can never change once app deployed on app / play store. [*dont put com.demo.demoapp]
(20)keep apple provisioning , distribution profiles in backup developer profile mac using since application code base & certificates, public keys , p12 file dependent on macs.
(21)disable unwanted permission android , ios avoid unwanted components loaded , shown on app stores permissions tab , while installation user may confused seeing unwanted permissions being required application.
<plugins> <plugin name="app" value="org.apache.cordova.app"/> <plugin name="geolocation" value="org.apache.cordova.geobroker"/> <plugin name="device" value="org.apache.cordova.device"/> <!-- commented <plugin name="accelerometer" value="org.apache.cordova.accellistener"/> <plugin name="compass" value="org.apache.cordova.compasslistener"/> <plugin name="media" value="org.apache.cordova.audiohandler"/> <plugin name="camera" value="org.apache.cordova.cameralauncher"/> <plugin name="contacts" value="org.apache.cordova.contactmanager"/>--> <plugin name="file" value="org.apache.cordova.fileutils"/> <plugin name="networkstatus" value="org.apache.cordova.networkmanager"/> <plugin name="notification" value="org.apache.cordova.notification"/> <plugin name="storage" value="org.apache.cordova.storage"/> <plugin name="filetransfer" value="org.apache.cordova.filetransfer"/> <plugin name="capture" value="org.apache.cordova.capture"/> <!-- commented <plugin name="battery" value="org.apache.cordova.batterylistener"/>--> <plugin name="splashscreen" value="org.apache.cordova.splashscreen"/> <!--<plugin name="echo" value="org.apache.cordova.echo" />--> <plugin name="globalization" value="org.apache.cordova.globalization"/> <plugin name="share" value="com.schaul.plugins.share.share"/> </plugins>
(22)no hover css classes applied mobile application cases. hover not used in mobile , otherwise creates issue.
14.. forget solution if want publish app apple store. promptly rejected.
revisited: bringing raw data server , using jqm application generate front end gui
16.. performance improvements depending on platform, on android 2.x. phonegap , jqm know badly underperforme on older android platforms.
17.. add more complex set of touch gestures hammer.js (compatible jquery mobile)
18.. if possible make app more native looking using phonegap plugin native nav/tab bar on ios , android platform (will make app more acceptable during publishing process).
Comments
Post a Comment