Acceptance testing for the Moodle App
In order to run tests that carry out automated functionality testing for the Moodle App, you can write Acceptance tests. This can be useful if you want to test plugins that are compatible with the app, or you're contributing to the app core. Behat tests for the app work the same way as tests for Moodle core, but they are not run as part of a normal Behat execution and there are some differences that we'll go through in this page.
Applying accessibility on the Moodle App
Screen readers
Continuous Integration for the Moodle App
Tests can be useful during development, but a good test suite really shines with CI processes in place. Running tests and other checks on a regular basis can be helpful to maintain good quality assurance, and catch regressions as early as possible.
Course Formats
You can implement custom course formats using the CoreCourseFormatDelegate:
Course Modules
You can implement custom course modules using the CoreCourseModuleDelegate.
Custom Moodle Apps
Unfortunately, the core team does not have the resources to help people use the open source code to build custom apps.
Debugging network requests in the Moodle App
Introduction
Forms
In this example, we are going to see how to display a form and send the data to a Web Service when it's submitted.
Groups Selector
If you have an activity that uses groups, you may want to implement a group selector to filter the rendered content. There are many ways to achieve this, and we're going to outline some of them in this example.
Link Handlers
You can create a link handler to intercept what happens when links are clicked using the CoreContentLinksDelegate.
Links in the Moodle App
Pressing a link inside the app
Moodle App
Welcome to the Moodle App developer documentation!
Moodle App 3.5.0 release notes
Release date: 25th June 2018
Moodle App 3.5.1 release notes
Release date: 6th July 2018
Moodle App 3.5.2 release notes
Release date: 10th September 2018
Moodle App 3.6.0 release notes
Release date: 11th January 2019
Moodle App 3.6.1 release notes
Release date: 29th March 2019
Moodle App 3.7.0 release notes
Release date: 7th June 2019
Moodle App 3.7.1 release notes
Release date: 30th August 2019
Moodle App 3.7.2 release notes
Release date: 20th September 2019
Moodle App 3.8.0 release notes
Release date: 20th December 2019
Moodle App 3.8.1 release notes
Release date: 25 March 2020
Moodle App 3.8.2 release notes
Release date: 2 April 2020
Moodle App 3.9.0 release notes
Release date: 26 June 2020
Moodle App 3.9.1 release notes
Release date: 3 July 2020
Moodle App 3.9.2 release notes
Release date: 16 July 2020
Moodle App 3.9.3 release notes
Release date: 30 November 2020
Moodle App 3.9.4 release notes
Release date: 28 December 2020
Moodle App 3.9.5 release notes
Release date: 27 August 2021
Moodle App 4.0.0 release notes
Release date: 22 April 2022
Moodle App 4.0.1 release notes
Release date: 26 May 2022
Moodle App 4.0.2 release notes
Release date: 25 October 2022
Moodle App 4.1.0 release notes
Release date: 19 December 2022
Moodle App 4.1.1 release notes
Release date: 28 February 2023
Moodle App 4.2.0 release notes
Release date: 9 June 2023
Moodle App 4.3.0 release notes
Release date: 10 November 2023
Moodle App 4.4.0 release notes
Release date: 28 June 2024
Moodle App 4.4.1 release notes
Release date: 9 July 2024
Moodle App 4.5.0 release notes
Release date: 31 October 2024
Moodle App Acceptance Tests Upgrade Guide
In the following guide, you will learn how to upgrade your plugins' acceptance tests to support newer versions of the app.
Moodle App Coding style
The Moodle App Coding Style guidelines
Moodle App Customisation
The Moodle App can be customised in different ways:
Moodle App Deep Linking
Overview
Moodle App Development Guide
This document contains information that developers should know before starting to code on the Mobile App. If you are only interested in developing a site plugin, you should read the Moodle App Plugins development guide instead.
Moodle App Development process
The development of new features and improvements in the Moodle App is organised in the following six phases:
Moodle App Docker Images
Moodle HQ provides a couple of Docker images that contain the Moodle App ready for use. You can search all the available versions in Docker Hub.
Moodle App FAQ
How can I contribute to the Moodle App?
Moodle App Notification Links
Push notifications will open the app when clicked, and you can customize which page is open by default.
Moodle App Overview
The Moodle App is a mobile application that helps users make the best of their Moodle sites on handheld devices. It has some additional features like offline access, and a dedicated interface adapted to mobile. It's focused on student functionality, so you won't find all the features you have on the web for teachers and admins. You can learn more about the features available in the user documentation.
Moodle App Plugins API Reference
Content responses
Moodle App Plugins Development Guide
If you want add mobile support to your plugins, you only need to write PHP code. You can also use JavaScript for advanced functionality, but mobile plugins are written the same way as any other Moodle plugin: using PHP and Mustache templates.
Moodle App Plugins Upgrade Guide
In the following guide, you will learn how to upgrade your plugins to support newer versions of the app.
Moodle App Release notes
Moodle App 4.x
Moodle App Release Process
Six weeks before (Code freeze)
Moodle App Remote Themes
How do Remote themes work?
Moodle App Remote Themes Upgrade Guide
In the following guide, you will learn how to migrate your styles from an older version of the app.
Moodle Mobile 1.x release notes
Version 1 was jQuery based with usage of Cordova.
Moodle Mobile 2.0 release notes
Release date: 31th July 2015
Moodle Mobile 2.1 release notes
Release date: 28th August 2015
Moodle Mobile 2.2 release notes
Release date: 10th September 2015
Moodle Mobile 2.3 release notes
Release date: 8th October 2015
Moodle Mobile 2.4 release notes
Release date: 21th October 2015
Moodle Mobile 2.5 release notes
Release date: 6th November 2015
Moodle Mobile 2.6 release notes
Release date: 27th November 2015
Moodle Mobile 2.7 release notes
Release date: 29th December 2015
Moodle Mobile 2.8 release notes
Release date: 22th January 2016
Moodle Mobile 2.9 release notes
Release date: 29th February 2016
Moodle Mobile 3.0.0 release notes
Release date: 15th April 2016
Moodle Mobile 3.1.0 release notes
Release date: 23th May 2016
Moodle Mobile 3.1.1 release notes
Release date: 14th June 2016
Moodle Mobile 3.1.2 release notes
Release date: 26th July 2016
Moodle Mobile 3.1.3 release notes
Release date: 19th October 2016
Moodle Mobile 3.2.0 release notes
Release date: 12th December 2016
Moodle Mobile 3.2.1 release notes
Release date: 28th February 2017
Moodle Mobile 3.3.0 release notes
Release date: 26th May
Moodle Mobile 3.3.1 release notes
Release date: 28th July
Moodle Mobile 3.3.2 release notes
Release date: 29th September
Moodle Mobile 3.4.0 release notes
Release date: 30th November 2017
Moodle Mobile 3.4.1 release notes
Release date: 28th February 2018
Moodle Mobile 3.4.2 release notes
Release date: 19th March 2018
Prefetch Handlers
CoreCourseModuleDelegate handlers allow you to define a list of offline functions to prefetch a module. However, you might want to create your own prefetch handler to determine what needs to be downloaded. For example, you might need to chain Web Service calls (passing the result of a Web Service request to another), and this cannot be done using offline functions.
Question Types
You can implement custom question types using the CoreQuestionDelegate:
Self Enrolment
Using CoreEnrolDelegate handlers you can support enrolment plugins in the app. In this example, we can see how to support a self enrol plugin. You'll need to register a handler in db/mobile.php and return the following JavaScript from the method implementation:
Sending custom Push Notifications to the Moodle App
There are two ways to send custom Push Notifications to the Moodle app users:
Setting up your development environment for the Moodle App
The structure of this page is the following:
Testing LMS issues in the mobile app
Information related to mobile app testing of LMS issues
Troubleshooting Moodle App Plugins Development
Plugin changes are not picked up in the app
Troubleshooting when setting up your development environment for the Moodle App
This page contains a list of common errors that have been found and how to solve them. However, keep in mind that these may be platform-dependent and could not fix the problem in your machine, even if you are seeing the same error message.
Unit testing for the Moodle App
Unit tests are written in JavaScript using Jest. If you want to create a new one, Jest is already configured and you only need to create a file ending with .test.ts within the project. If you're going to do so, remember to follow the file location conventions.
Using the Moodle App in a browser
Browsers are not officially supported by the application in production, but you can use a Chromium-based browser for development if you don't need any native functionality.