Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Using the Moodle App in a browser: Difference between revisions

From MoodleDocs
No edit summary
Line 57: Line 57:


== Inspecting and changing the DOM ==
== Inspecting and changing the DOM ==
Using the "Elements" option you can manipulate the DOM:
* Add/modify style to elements
* Delete elements
* Move elements
* Inject HTML code
You have complete information here: https://developer.chrome.com/devtools/index
And also a free interactive course here: https://www.codeschool.com/courses/discover-devtools


== Monitor XHR (ajax) requests ==
== Monitor XHR (ajax) requests ==

Revision as of 08:47, 27 June 2014

Chromium or Google Chrome browser are the recommended tools for Moodle Mobile development. But remember that if you are going to use functions provided by Phonegap you should use the Android SDK o iOs developer tools.

Differences between Chromium and Google Chrome

Google Chrome is the Chromium open source project built, packaged, and distributed by Google. We can say that Chromium is Google Chrome without the "Google" add-ons

See https://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoogleChrome for more information

We recommend to use Chromium instead Google Chrome

Advantages and disadvantages of using Chromium/Google Chrome

Main advantages

  • Quick development
  • DOM inspector
  • Network monitor
  • Database (local storage) inspector
  • Emulation options

Disadvantages

  • You can't test/develop using Phonegap APIs and Plugins
  • If you use custom Phonegap code (including plugins) you will need to edit the mm.cordova.js for "emulate" that APIs in a browser
  • You will need always to test in a real device and emulator prior to a production release
  • You will need to verify that your CSS/layout works the same in an Android/iOs device

Installation

Install the “Chromium” browser just downloading it from https://download-chromium.appspot.com/

In order to be able to access any domain via AJAX from the local file:/// protocol, you must run Chromium or Google Chrome in Unsafe mode adding this param:

--allow-file-access-from-files --disable-web-security

IMPORTANT: I strongly recommend you create a new link or application launch called "Chrome Unsafe" and use it only for testing the app. Better if you only use this browser for development

How to open the browser:

"Path to chrome\chrome.exe" --allow-file-access-from-files --disable-web-security

or in Mac (you can use Automator for creating an app bundle)

open -a "Google Chrome" --args --allow-file-access-from-files --disable-web-security

or for Chromium

open -a /Applications/Chromium.app --args --allow-file-access-from-files --disable-web-security

In Mac you can use Automator for creating a launching app

Browser Settings

moodlemobile developer.png

You should develop always with the "Developer tools" panel open, you can open that panel with F12 (cmd + alt + i in Mac) or "Developer tools" in the Tools menu.

moodlemobile options.png

Once opened, click on the wheel top-right corner to see the General options, you must Disable the cache there (this setting will work only if you have the Developer tools panel open)

You can dock or undock into a separate window the developer panel using the "Dock" option just at the right of the settings wheel, you can move the developer panel to your right and resize the main browser window to emulate a Mobile device

Inspecting and changing the DOM

Using the "Elements" option you can manipulate the DOM:

  • Add/modify style to elements
  • Delete elements
  • Move elements
  • Inject HTML code

You have complete information here: https://developer.chrome.com/devtools/index

And also a free interactive course here: https://www.codeschool.com/courses/discover-devtools

Monitor XHR (ajax) requests

moodlemobile network.png


Browsing the data base (local storage)

moodlemobile localstorage.png


Console log and errors

moodlemobile log.png


Enable logging in the app

Emulating devices

moodlemobile emulation.png

You can emulate mobile devices changing orientation, resolution, geo-location, touch events... It's not recommended to use de "Emulation Device" option because it just changes the user-agent and you could get some fails because of the jQuery Swipe library.

The best option to test with the browser is just rescaling the window to get a new viewport size or use the screen settings in the "Emulation" screen.