WordPress for Android
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.
- Make sure you've installed Android Studio.
git clone firstname.lastname@example.org:wordpress-mobile/WordPress-Android.gitin the folder of your preference.
cd WordPress-Androidto enter the working directory.
cp gradle.properties-example gradle.propertiesto set up the sample app credentials file.
git submodule update --init --recursiveto pull the submodules (optionally use
--depth=1 --recommend-shallowflags to skip pulling full submodules' history).
- In Android Studio, open the project from the local repository. This will auto-generate
local.propertieswith the SDK location.
- Go to Tools → AVD Manager and create an emulated device.
- 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.
- While loading/building the app in Android Studio ignore the prompt to update the gradle plugin version as that will probably introduce build errors. On the other hand, feel free to update if you are planning to work on ensuring the compatibility of the newer version.
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_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 email@example.com, you will only be able to login with firstname.lastname@example.org. Using another account like email@example.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.
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
. ├── 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 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.
Read our Contributing Guide to learn about reporting issues, contributing code, and more ways to contribute.
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
- Coding Style - guidelines and validation and auto-formatting tools
- Pull Request Guidelines - branch naming and how to write good pull requests
- Subtree'd Library Projects - how to deal with subtree dependencies
Please read the docs for more.
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.