Skip to content
WordPress for Android
Java Kotlin Ruby TSQL Shell HTML Other
Branch: develop
Clone or download

Latest commit

Latest commit e39863e May 26, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.bundle Add gradle task for production dependencies Nov 27, 2019
.circleci Resolving merge conflicts May 16, 2020
.configure-files Update shared debug keystore location Apr 29, 2020
.github added accessibility item to checklist. Jan 24, 2020
.idea reverting idea-codingStyles-project.xml back to the commit right befo… Feb 14, 2020
WordPress Merge remote-tracking branch 'origin/develop' into merge/14.9-rc-2-to… May 26, 2020
config Merge pull request #11833 from wordpress-mobile/gutenberg/embedded-bu… May 12, 2020
docs Docs: Add link to TalkBack Guidelines in Home Mar 16, 2020
fastlane Update metadata translations for 14.8 May 15, 2020
gradle/wrapper Upgrade Gradle to 5.4.1, gradle plugin to 3.5.1 and fix various errors Oct 7, 2019
keystore first BUCK integration Apr 13, 2015
libs Update gutenberg submodule ref to match `develop` May 26, 2020
tools Disable a release check that breaks the build Jan 26, 2020
.configure Update shared debug keystore location Apr 29, 2020
.editorconfig Squashed 'libs/login/' changes from 0f85054215..3d1d5e57f6 Apr 17, 2018
.gitattributes Change merge method for RELEASE-NOTES.txt Jan 17, 2019
.gitignore Add debug store to configuration Apr 29, 2020
.gitmodules Set the gutenberg-mobile submodule as shallow Apr 24, 2020
.ruby-version Update ruby version Apr 9, 2020
.travis.yml Disable the login library strings validation check on Travis Dec 4, 2018
CODE-OF-CONDUCT.md Updated Code of Conduct with contact information Feb 10, 2017
CONTRIBUTING.md CONTRIBUTING: Fix links to docs Oct 25, 2019
Gemfile Update Fastlane and release-toolkit Apr 29, 2020
Gemfile.lock Fix merge conflicts May 1, 2020
LICENSE.md Squashed 'libs/mocks/' content from commit 03f0ad9164 Jun 13, 2019
README.md Update build.instructions with update submodules git command May 21, 2020
RELEASE-NOTES.txt Remove release note May 26, 2020
build.gradle Update FluxC version to 1.6.12 May 18, 2020
gradle.properties-example Reinstate parallel flag in gradle May 7, 2020
gradlew Squashed 'libs/utils/' changes from 6f09341..452a7a9 Apr 7, 2017
gradlew.bat Squashed 'libs/mocks/' content from commit 03f0ad9164 Jun 13, 2019
settings.gradle Merge pull request #11833 from wordpress-mobile/gutenberg/embedded-bu… May 12, 2020

README.md

WordPress for Android

CircleCI

If you're just looking to install WordPress for Android, you can find it on Google Play. If you're a developer wanting to contribute, read on.

Build Instructions

  1. Make sure you've installed Android Studio.
  2. git clone git@github.com:wordpress-mobile/WordPress-Android.git in the folder of your preference.
  3. cd WordPress-Android to enter the working directory.
  4. cp gradle.properties-example gradle.properties to set up the sample app credentials file.
  5. git submodule update --init --recursive to pull the submodules (optionally use --depth=1 --recommend-shallow flags to skip pulling full submodules' history).
  6. In Android Studio, open the project from the local repository. This will auto-generate local.properties with the SDK location.
  7. Go to Tools → AVD Manager and create an emulated device.
  8. Run.

Notes:

  • To use WordPress.com features (login to WordPress.com, access Reader and Stats, etc) you need a WordPress.com OAuth2 ID and secret. Please read the OAuth2 Authentication section.

OAuth2 Authentication

In order to use WordPress.com functions you will need a client ID and a client secret key. These details will be used to authenticate your application and verify that the API calls being made are valid. You can create an application or view details for your existing applications with our WordPress.com applications manager.

When creating your application, you should select "Native client" for the application type. The applications manager currently requires a "redirect URL", but this isn't used for mobile apps. Just use "https://localhost".

Once you've created your application in the applications manager, you'll need to edit the ./gradle.properties file and change the wp.oauth.app_id and wp.oauth.app_secret fields. Then you can compile and run the app on a device or an emulator and try to login with a WordPress.com account. Note that authenticating to WordPress.com via Google is not supported in development builds of the app, only in the official release.

Note that credentials created with our WordPress.com applications manager allow login only and not signup. New accounts must be created using the official app or on the web. Login is restricted to the WordPress.com account with which the credentials were created. In other words, if the credentials were created with foo@email.com, you will only be able to login with foo@email.com. Using another account like bar@email.com will cause the Client cannot use "password" grant_type error.

For security reasons, some account-related actions aren't supported for development builds when using a WordPress.com account with 2-factor authentication enabled.

Read more about OAuth2 and the WordPress.com REST endpoint.

Build and Test

To build, install, and test the project from the command line:

$ ./gradlew assembleVanillaDebug                        # assemble the debug .apk
$ ./gradlew installVanillaDebug                         # install the debug .apk if you have an
                                                        # emulator or an Android device connected
$ ./gradlew :WordPress:testVanillaDebugUnitTest         # assemble, install and run unit tests
$ ./gradlew :WordPress:connectedVanillaDebugAndroidTest # assemble, install and run Android tests

Directory structure

.
├── libs                    # dependencies used to build debug variants
├── tools                   # script collection
├── gradle.properties       # properties imported by the build script
├── WordPress
│   |-- build.gradle        # main build script
│   └── src
│       ├── androidTest     # Android test assets, resources and code
│       ├── test            # Unit tests
│       ├── main
│       │   ├── assets      # main project assets
│       │   ├── java        # main project java code
│       │   └── res         # main project resources
│       ├── debug           # debug variant
│       └── wasabi          # wasabi variant specific resources and manifest

Google Configuration

Google Sign-In is only available for WordPress.com accounts through the official app. Contributors can build and run the app without issue, but Google Sign-In will always fail. Google Sign-In requires configuration files which contain client and server information that can't be shared publicly. More documentation and guides can be found on the Google Identity Platform website.

Contributing

Read our Contributing Guide to learn about reporting issues, contributing code, and more ways to contribute.

Security

If you happen to find a security vulnerability, we would appreciate you letting us know at https://hackerone.com/automattic and allowing us to respond before disclosing the issue publicly.

Getting in Touch

If you have questions or just want to say hi, join the WordPress Slack and drop a message on the #mobile channel.

Documentation

Please read the docs for more.

Resources

License

WordPress for Android is an Open Source project covered by the GNU General Public License version 2. Note: code in the libs/ directory comes from external libraries, which might be covered by a different license compatible with the GPLv2.

You can’t perform that action at this time.