Moodle Mobile Building the app for Android: Difference between revisions
Line 84: | Line 84: | ||
#* In Eclipse, add a package to src folder. The value should be com.borismus.webintent | #* In Eclipse, add a package to src folder. The value should be com.borismus.webintent | ||
#* In your res/xml/config.xml file, add ''<plugin name="WebIntent" value="com.borismus.webintent.WebIntent" />'' where you define the plugins. | #* In your res/xml/config.xml file, add ''<plugin name="WebIntent" value="com.borismus.webintent.WebIntent" />'' where you define the plugins. | ||
# | # copy the icons | ||
#* ''cp platforms/android/assets/www/img/icon/android/icon-36-ldpi.png platforms/android/res/drawable-ldpi/icon.png'' | |||
#* ''cp platforms/android/assets/www/img/icon/android/icon-48-mdpi.png platforms/android/res/drawable-mdpi/icon.png'' | |||
#* ''cp platforms/android/assets/www/img/icon/android/icon-72-hdpi.png platforms/android/res/drawable-hdpi/icon.png'' | |||
#* ''cp platforms/android/assets/www/img/icon/android/icon-96-xhdpi.png platforms/android/res/drawable-xhdpi/icon.png'' | |||
# TODO: edit the config.xml | # TODO: edit the config.xml | ||
# TODO: edit the AndroidManifest.xml | # TODO: edit the AndroidManifest.xml | ||
# In Eclispe, build and test the app. | # In Eclispe, build and test the app. | ||
# In Eclipse, File > Export the app with the Moodle HQ Google Play keystore. Then upload the APK to Google Play. | # In Eclipse, File > Export the app with the Moodle HQ Google Play keystore. Then upload the APK to Google Play. |
Revision as of 04:11, 26 March 2013
Installing the Android SDK
Building the app for Android is easy once you have successfully installed all the required software.
Since we are using Phonegap as framework for creating the app, the documentation you have to follow is just in this link plus additional steps for installing plugins: http://docs.phonegap.com/en/2.5.0/guide_getting-started_android_index.md.html#Getting%20Started%20with%20Android
Notice the following:
- You must read carefully the document and not use white spaces in some names and ids. (It's adviced in the document)
- You can optionally not use Eclipse and instead use adb command line or cordova script tools
- In the "4. Setup New Project" The package_name is the app id that your app will have in the Android Market (Play Store), so it must be unique. If you are going to develop for the official app you have to use com.moodle.moodlemobile, if you are going to develop a custom app, you will have to add your own unique id.
- If you want to connect a Device to your Eclipse and you are using Windows, you must install the Android USB Drivers, see http://developer.android.com/tools/extras/oem-usb.html#InstallingDriver
Add the Mobile app HTML5 files
Go to your project folder, assets/www and add just there all the files from https://github.com/moodlehq/moodlemobile
Installing additional Phonegap plugins
The Android app requires two additional Phonegap plugins to be installed:
WebIntent
For opening files according their mime type: https://github.com/phonegap/phonegap-plugins/tree/master/Android/WebIntent
For installing the plugin follow this instructions: https://github.com/phonegap/phonegap-plugins/blob/master/Android/WebIntent/README.md#adding-the-plugin-to-your-project
Childbrowser
For opening external browsers: https://github.com/alunny/ChildBrowser
For installing this plugin you need to use: https://github.com/imhotep/plugman (read the README and also http://shazronatadobe.wordpress.com/2012/11/07/cordova-plugins-put-them-in-your-own-repo-2/)
Note that if you are going to use Cordova 2.4, it has core support for plugman (see https://github.com/apache/cordova-cli/blob/master/README.md#project-commands) so you will not have to install plugman
Build, compile, test your app
We suggest you to use Eclipse tools for testing, deploying the app
In any case, you can allways use the Cordova command line tools, see: http://docs.phonegap.com/en/2.5.0/guide_command-line_index.md.html#Command-Line%20Usage
The cli tools are in your project folder, directory cordova
Signing your app
The Android system requires that all installed applications be digitally signed with a certificate whose private key is held by the application's developer. The Android system uses the certificate as a means of identifying the author of an application and establishing trust relationships between applications. The certificate is not used to control which applications the user can install. The certificate does not need to be signed by a certificate authority: it is perfectly allowable, and typical, for Android applications to use self-signed certificates. See: http://developer.android.com/tools/publishing/app-signing.html
And also for Eclipse: http://developer.android.com/tools/publishing/app-signing.html#ExportWizard
Uploading your custom app to the Google Play Store
Build the official Moodle Mobile app on a Mac
- Install SDK
- http://developer.android.com/sdk/index.html#download - it will install Eclipse / ADT plugin / Android SDK
- Add the SDK tools/platform-tools folders to your PATH
- Install NodeJs
- Install cordova-cli
- sudo npm install -g cordova - it will install cordova. Note that on my machine I have some warnings about the android bootstrap process being skipped but everything seems to work ok...
- Create a Android project
- /usr/local/lib/node_modules/cordova/bin/cordova create ~/Apps/moodlemobile_android_cordova com.moodle.moodlemobile MoodleMobileBeta
- cd ~/Apps/moodlemobile_android_cordova
- sudo /usr/local/lib/node_modules/cordova/bin/cordova platform add android
- sudo /usr/local/lib/node_modules/cordova/bin/cordova build - not necessary, just check the build works.
- In Finder change the permission on ~/Apps/moodlemobile_android_cordova folder: Read + Write to everyone
- Open eclipse, add a new Android project from existing source pointing to /Users/jerome/Apps/moodlemobile_android_cordova/platforms/android. Test you can build the default Cordova app on your phone.
- Copy the Moodle mobile app into assests/www folder
- git clone git://github.com/moodlehq/moodlemobile.git ./moodlemobile
- mv platforms/android/assets/www/ platforms/android/assets/www_old/
- mv ./moodlemobile/ platforms/android/assets/www/
- cp platforms/android/assets/www_old/cordova.js platforms/android/assets/www/
- Add the cordova plugins
- git clone git://github.com/alunny/ChildBrowser.git ./ChildBrowser - we are now going to install cordova compatible plugin with the plugin install command line.
- sudo /usr/local/lib/node_modules/cordova/bin/cordova plugin add ChildBrowser/
- Add manually phonegap plugins
- https://github.com/phonegap/phonegap-plugins/tree/master/Android/WebIntent/ - manually install it as described in the README
- git clone git://github.com/phonegap/phonegap-plugins.git ./phonegap-plugins
- cp phonegap-plugins/Android/WebIntent/webintent.js platforms/android/assets/www/
- mkdir platforms/android/src/com/borismus
- mkdir platforms/android/src/com/borismus/webintent
- cp phonegap-plugins/Android/WebIntent/WebIntent.java platforms/android/src/com/borismus/webintent
- In Eclipse, add a package to src folder. The value should be com.borismus.webintent
- In your res/xml/config.xml file, add <plugin name="WebIntent" value="com.borismus.webintent.WebIntent" /> where you define the plugins.
- copy the icons
- cp platforms/android/assets/www/img/icon/android/icon-36-ldpi.png platforms/android/res/drawable-ldpi/icon.png
- cp platforms/android/assets/www/img/icon/android/icon-48-mdpi.png platforms/android/res/drawable-mdpi/icon.png
- cp platforms/android/assets/www/img/icon/android/icon-72-hdpi.png platforms/android/res/drawable-hdpi/icon.png
- cp platforms/android/assets/www/img/icon/android/icon-96-xhdpi.png platforms/android/res/drawable-xhdpi/icon.png
- TODO: edit the config.xml
- TODO: edit the AndroidManifest.xml
- In Eclispe, build and test the app.
- In Eclipse, File > Export the app with the Moodle HQ Google Play keystore. Then upload the APK to Google Play.