Development Environment
Table of Contents
Eden Mobile is built on the Apache Cordova platform (sometimes known as Adobe PhoneGap).
- Cordova runs on NodeJS. If your OS distribution does not provide a NodeJS bundle, you can get one from here:
- Use the NodeJS package manager npm to install Cordova (9.0.0 currently):
npm install -g cordova
See also: https://cordova.apache.org/#getstarted
- If you want to build and test EdenMobile, you also need
- Java JDK
- Ensure the bin is in your PATH, e.g. for Windows 10:
- C:\Program Files\Java\jdk1.8.0_341\bin
- Ensure that JAVA_HOME environment variable is set, e.g. for Windows 10:
- C:\Program Files\Java\jdk1.8.0_341
- Ensure the bin is in your PATH, e.g. for Windows 10:
- an SDK for the target platform, e.g.: Android SDK
- Configure as per https://cordova.apache.org/docs/en/latest/guide/platforms/android
- Ensure the SDK tools are in your PATH, e.g. for Windows 10:
- %USERPROFILE%\AppData\local\android\sdk\build-tools\33.0.0
- %USERPROFILE%\AppData\local\android\sdk\platform-tools
- Ensure that ANDROID_HOME environment variable is set, e.g. for Windows 10:
- %USERPROFILE%\AppData\local\android\sdk
- Java JDK
- You can fork/clone EdenMobile from here:
For some reason sqlite-native-driver.jar
is not in the repo, so download from:
& extract this to plugins\cordova-sqlite-storage\node_modules\cordova-sqlite-storage-dependencies\libs
- Run the application
- You cannot run in the 'browser' platform as it doesn't support the local database
- It is easier to run on a real device than the emulator (to run on emulator you need to create an avd:
android avd
) - to run on a real device, you need to enable 'Developer Options' by tapping 7 times on the 'Build Number' in the About section (http://www.greenbot.com/article/2457986/how-to-enable-developer-options-on-your-android-phone-or-tablet.html)
- open Chrome's Developer Tools panel (More Tools menu) & then open Remote Devices inside that (More | Remote Devices | Inspect)
- Screenshots available here Remote-Debugging on Android Device
- Windows users may need to enable Powershell script execution in order to be able to run Cordova:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- NB You may need to manually Clear Storage on the device after install (even for brand new installs)
- NB Do NOT 'reconnect dev-tools' when reinstalling, close window & 'inspect' again, otherwise you will have lots of browser windows left open)
cd eden_mobile npm install q-io cp default.config.xml config.xml # or <appname>.config.xml cordova platform add android cordova plugin add cordova-sqlite-storage # Reinstall needed for some reason (even though 'cordova plugin' shows it installed) # Needed on some platforms anyway, on others just to clear data, when-desired: adb uninstall org.sahanafoundation.eden_mobile # or org.sahanafoundation.eden_mobile.<appname> cordova run android # Builds apk & adb install platforms\android\build\outputs\apk\android-debug.apk
- Accessing your developer PC's version of Sahana Eden.
Using Chrome Tools' Port Forwarding, you can redirect e.g. localhost:8000 on the Android device to localhost:8000 on your Developer PC when connected via USB. This allows you to use that in your Sync Settings.
- jshint is a tool recommended to ensure Code Quality:
npm install -g jshint
Suggested .jshintrc attached (store in the folder just up from eden_mobile):
- Some developers may have problems with settings being retained even when uninstalled due to cloud backup (https://developer.android.com/guide/topics/data/autobackup.html#EnablingAutoBackup), in which case adjust
platforms/Android/AndroidManifest.xml
:<application android:allowBackup="false"
- Currently only Android 6.0 Marshmallow,or later, is supported. Configure the targeted platform in
platforms/android/project.properties
# 6.0 Marshmallow target=android-23
Cordova still supports down to 4.4 KitKat: https://cordova.apache.org/docs/en/latest/guide/platforms/android/
However, many of our plugins require a minimum of Build.VERSION_CODES.M (i.e. Marshmallow)
Attachments (1)
-
.jshintrc
(384 bytes
) - added by 7 years ago.
jshintrc
Download all attachments as: .zip