All Projects → openedx → edx-app-android

openedx / edx-app-android

Licence: Apache-2.0 license
The Open edX mobile app for Android!

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects
kotlin
9241 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to edx-app-android

Edx App Android
The Open EdX mobile app for Android!
Stars: ✭ 252 (-10.64%)
Mutual labels:  mooc, a11y
a11y-checker
Identifies accessibility issues in HTML markup.
Stars: ✭ 103 (-63.48%)
Mutual labels:  a11y
ari
Accessible unstyled vue components
Stars: ✭ 22 (-92.2%)
Mutual labels:  a11y
PREREQ-IAAI-19
Inferring Concept Prerequisite Relations from Online Educational Resources (IAAI-19)
Stars: ✭ 22 (-92.2%)
Mutual labels:  mooc
cauldron
cauldron.dequelabs.com/
Stars: ✭ 50 (-82.27%)
Mutual labels:  a11y
accessible-name-automation-proof-of-concept
This is an experiment based on Accessibility Object Model (AOM). It tries to demonstrate that it is theoretically possible (in a certain way) to predict what the screen reader will say by focusing on semantic and non semantic elements with a bit of automated testing, thus reducing the need for manual testing.
Stars: ✭ 15 (-94.68%)
Mutual labels:  a11y
hive
Design system built with A11Y in mind
Stars: ✭ 18 (-93.62%)
Mutual labels:  a11y
openacr
OpenACR is a digital native Accessibility Conformance Report (ACR). The initial development is based on Section 508 requirements. The main goal is to be able to compare the accessibility claims of digital products and services. A structured, self-validated, machine-readable documentation will provide for this.
Stars: ✭ 61 (-78.37%)
Mutual labels:  a11y
edx-app-ios
The Open edX mobile app for iOS!
Stars: ✭ 216 (-23.4%)
Mutual labels:  edx
chaoxing-sign-cli
超星学习通签到Nodejs程序。支持普通签到、拍照签到、手势签到、位置签到、二维码签到,支持自动监测。
Stars: ✭ 522 (+85.11%)
Mutual labels:  mooc
ROS-Academy-for-Beginners
中国大学MOOC《机器人操作系统入门》课程代码示例
Stars: ✭ 2,115 (+650%)
Mutual labels:  mooc
jquery-accessible-simple-tooltip-aria
jQuery accessible simple tooltip window, using ARIA
Stars: ✭ 22 (-92.2%)
Mutual labels:  a11y
referentiel-mobile-tactile
Ce référentiel capitalise sur les travaux actuellement menés dans le cadre de WCAG qui ne propose pas encore de critères ou de techniques spécifiques aux situations de consultation sur les plateformes mobiles/tactiles. English version available: https://github.com/DISIC/referentiel-mobile-tactile/tree/en
Stars: ✭ 14 (-95.04%)
Mutual labels:  a11y
eufemia
DNB Design System
Stars: ✭ 38 (-86.52%)
Mutual labels:  a11y
makeup-js
Mono-repo for all vanilla JavaScript utility modules and headless ui
Stars: ✭ 28 (-90.07%)
Mutual labels:  a11y
agnostic-axe
Framework agnostic accessibility reporter, powered by axe-core
Stars: ✭ 80 (-71.63%)
Mutual labels:  a11y
Tanaguru
Automated accessibility (a11y) testing tool, with emphasis on reliablity and automation
Stars: ✭ 116 (-58.87%)
Mutual labels:  a11y
rgaa methodologie
[archivé] Méthodologie de tests pour la version 3 du RGAA
Stars: ✭ 15 (-94.68%)
Mutual labels:  a11y
a11y-react-emoji
⚛️ An accessible Emoji component for React applications
Stars: ✭ 69 (-75.53%)
Mutual labels:  a11y
vue-modal
A customizable, stackable, and lightweight modal component for Vue.
Stars: ✭ 96 (-65.96%)
Mutual labels:  a11y

edX Android

Get it on Google Play

This is the source code for the edX mobile Android app. It is changing rapidly and its structure should not be relied upon. See http://code.edx.org for other parts of the edX code base.

It has been tested with the "Koa" release of open edX and may not function correctly with previous versions. See https://openedx.atlassian.net/wiki/display/COMM/Open+edX+Releases for more information.

License

This software is licensed under version 2 of the Apache License unless otherwise noted. Please see LICENSE.txt for details.

Building

This project is meant to be built using Android Studio. It can also be built from the gradle command line.

  1. Check out the source code:

     git clone https://github.com/openedx/edx-app-android
    
  2. Setup the Android Studio. The latest tested Android Studio version is v3.3.2, you can download it from the previous versions archive. (You can find further details to run the project on the said version of Android Studio on this PR.

  3. Open Android Studio and choose Open an Existing Android Studio Project

  4. Choose edx-app-android.

  5. Click the Run button.

Configuration

The edX mobile Android app is designed to connect to an Open edX instance. You must configure the app with the correct server address and supply appropriate OAuth credentials. We use a configuration file mechanism similar to that of the Open edX platform. This mechanism is also used to make other values available to the app at runtime and store secret keys for third party services.

There is a default configuration that points to an edX devstack instance running on localhost. See the default_config directory. For the default configuration to work, you must add OAuth credentials specific to your installation.

Setup

To use a custom configuration in place of the default configuration, you will need to complete these tasks:

  1. Create your own configuration directory somewhere else on the file system. For example, create my_config as a sibling of the edx-app-android repository.

  2. Create an edx.properties file inside the OpenEdXMobile directory of edx-app-android. In this edx.properties file, set the edx.dir property to the path to your configuration directory relative to the OpenEdXMobile directory. For example, if I stored my configuration side by side with the edx-app-android repository at my_config then I'd have the following edx.properties:

     edx.dir = '../../my_config'
    
  3. In the configuration directory that you added in step 1, create another edx.properties file. This properties file contains a list of filenames. The files should be in YAML format and are for storing specific keys. These files are specified relative to the configuration directory. Keys in files earlier in the list will be overridden by keys from files later in the list. For example, if I had two files, one shared between ios and android called shared.yaml and one with Android specific keys called android.yaml, I would have the following edx.properties:

    edx.android {
        configFiles = ['shared.yaml', 'android.yaml']
    }
    

The full set of known keys can be found in the org/edx/mobile/util/Config.java file or see additional documentation.

Build Variants

There are 3 Build Variants in this project:

  • prodDebug: Uses prod flavor for debug builds.
  • prodDebuggable: Uses prod flavor for debug builds with debugging enabled.
  • prodRelease: Uses prod flavor for release builds that'll work on devices with Android 4.4.x (KitKat) and above.

Building For Release

To build an APK for release, you have to specify an application ID and signing key.

Specifying your own Application ID

Application ID is the package identifier for your app.
Edit the constants.gradle file inside the edx-app-android directory. For example:

APPLICATION_ID=com.example.yourapp

Specifying the Signing Key

Place your keystore file inside the OpenEdXMobile/signing directory of edx-app-android & then create a keystore.properties file inside the same directory with the following configurations:

RELEASE_STORE_FILE=signing/your_keystore_file.keystore
RELEASE_STORE_PASSWORD=your store password here
RELEASE_KEY_PASSWORD=your key password here
RELEASE_KEY_ALIAS=your key alias here

Now you can build a release build from Android Studio. Or, in the directory of edx-app-android you can build a release build with this gradle command:

./gradlew assembleProdRelease

Note: For release branch naming convention take a look at this PR #774 that creates the versionCode automatically based on branch name. The output APK will be named with the version.

Customization

Resources

To customize images, colors, and layouts, you can specify a custom resource directory. Create or edit the gradle.properties file inside the OpenEdXMobile directory of edx-app-android. For example:

RES_DIR = ../../path/to/your/res

Any resources placed here will override resources of the same name in the OpenEdXMobile/res directory.

To remove all edX branding, override the drawables for: edx_logo, edx_logo_login, ic_launcher, ic_new_cert, and profile_photo_placeholder. These come in a number of resolutions, be sure to replace them all.

If you need to make more in depth UI changes, most of the user interface is specified in standard Android XML files, which you can also override by placing new versions in your RES_DIR.

Assets

To customize assets such as the End User License Agreement (EULA) you can specify a custom assets directory. Create or edit the gradle.properties file inside the OpenEdXMobile directory of edx-app-android. For example:

ASSETS = ../../path/to/your/assets

Any assets placed here will override resources of the same name in the OpenEdXMobile/assets directory.

Third Party Services

The app relies on the presence of several third party services: Facebook, NewRelic, Google+, SegmentIO, and Crashlytics. You may need to remove services you choose not to use. You can comment out the lines of code that mention these services.

We're working on making it easier for Open edX installations to apply customizations and select third party services without modifying the repository itself.

Frequently Asked Questions

Q: I see an error that mentions "Unsupported major.minor version 51.0". How do I fix this?

A: Our build system requires Java 7 or later. If you see this error, install Java 7 or later.

 You will also need to specify the new JDK version in Android Studio. Refer to this Stack Overflow entry for help doing so:

 http://stackoverflow.com/questions/30631286/how-to-specify-the-jdk-version-in-android-studio

Q: After I upgraded to Android Studio v2.3, I've been facing alot of issues while compiling/building the project. How do I fix this?

A: We recently upgraded our project to support Android Studio v2.3.x and below. After the upgrade changes done in PR #938, we too faced some issues. The fixes for the common issues can be seen in the Issues section of this GitHub project. The most common and helpful issue with the fixes is Issue #976.

Q: I want to use Firebase in my project, where do I place my google-services.json file?

A: You don’t need to place the google-services.json into the project, we are generating it through gradle script (AndroidHelper.gradle) that picks keys and values required in the google-services.json file from the app's configuration file. For configuration details see

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].