All Projects → woocommerce → Woocommerce Android

woocommerce / Woocommerce Android

Licence: gpl-2.0
WooCommerce Android app

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Woocommerce Android

Woocommerce Ios
WooCommerce iOS app
Stars: ✭ 93 (-21.85%)
Mutual labels:  mobile-app, woocommerce
Woocommerce Subscriptions Importer Exporter
Import your subscribers to WooCommerce from a CSV. Or export your subscription data from WooCommerce to CSV.
Stars: ✭ 117 (-1.68%)
Mutual labels:  woocommerce
Woocommerce Gateway Lightning
A WooCommerce gateway for lightning payments
Stars: ✭ 93 (-21.85%)
Mutual labels:  woocommerce
Boden
Purely native C++ cross-platform GUI framework for Android and iOS development. https://www.boden.io
Stars: ✭ 1,394 (+1071.43%)
Mutual labels:  mobile-app
Book Of Spices
An educational app to help you learn about spices, built on top of react-native, react-native-navigation from wix and lottie-react-native for animations.
Stars: ✭ 94 (-21.01%)
Mutual labels:  mobile-app
Laqul
A complete starter kit that allows you create amazing apps that look native thanks to the Quasar Framework. Powered by an API developed in Laravel Framework using the easy GraphQL queries language. And ready to use the Google Firebase features.
Stars: ✭ 110 (-7.56%)
Mutual labels:  mobile-app
Icon Workshop
图标工场 - 移动应用图标生成工具,一键生成所有尺寸的应用图标和启动图
Stars: ✭ 1,303 (+994.96%)
Mutual labels:  mobile-app
Calculatorapp
scientific calculator basic calculator and unit converter android app
Stars: ✭ 119 (+0%)
Mutual labels:  mobile-app
Lemmur
🐒 A mobile client for lemmy
Stars: ✭ 114 (-4.2%)
Mutual labels:  mobile-app
Brightid
Reference mobile app for BrightID
Stars: ✭ 101 (-15.13%)
Mutual labels:  mobile-app
Wq.app
💻📱 wq's app library: a JavaScript framework powering offline-first web & native apps for geospatial data collection, mobile surveys, and citizen science. Powered by Redux, React, Material UI and Mapbox GL.
Stars: ✭ 99 (-16.81%)
Mutual labels:  mobile-app
Github Native
📱 mobile github client built with react-native
Stars: ✭ 94 (-21.01%)
Mutual labels:  mobile-app
Kompose
🔥 Architecture pattern for multiplatform mobile apps with Kotlin Multiplatform (common), SwiftUI (iOS) & Compose (Android).
Stars: ✭ 113 (-5.04%)
Mutual labels:  mobile-app
Model2app
Turn your Swift data model into a working CRUD app.
Stars: ✭ 118 (-0.84%)
Mutual labels:  mobile-app
React Native Qrcode App
DEPRECATED: QRCode Reader and Generator written with React Native
Stars: ✭ 97 (-18.49%)
Mutual labels:  mobile-app
Wooshop
A Wocommerce Based React Native App for IOS and Android over GraphQL
Stars: ✭ 92 (-22.69%)
Mutual labels:  woocommerce
Mvvm Reddit
A companion project for our blog post on better Android software development using MVVM with RxJava.
Stars: ✭ 106 (-10.92%)
Mutual labels:  mobile-app
Online School Management App Angular Firebase
Angular 11.0 Firebase App - Online School , Student Management App
Stars: ✭ 120 (+0.84%)
Mutual labels:  mobile-app
Unofficial Itc
iTunes Connect manager app for iOS.
Stars: ✭ 119 (+0%)
Mutual labels:  mobile-app
Laravel5 Woocommerce Api Client
Laravel 5 wrapper for the Woocommerce REST API
Stars: ✭ 113 (-5.04%)
Mutual labels:  woocommerce

CircleCI

WooCommerce for Android

Jetpack-powered WooCommerce Android app codenamed Dervish. If you're just looking to install WooCommerce for Android, you can find it on Google Play. If you're a developer wanting to contribute, read on.

Contents

Setup Instructions

  1. Make sure you've installed Android Studio.

  2. Clone this repository in the folder of your preference, and then enter that folder:

    $ git clone https://github.com/woocommerce/woocommerce-android.git
    $ cd woocommerce-android
    
  3. Generate the developer oauth2 tokens. These values get copied into the main gradle.properties file in the next step. See the OAuth2 Authentication section for details.

  4. Generate the gradle.properties file for this app:

    $ cp ./gradle.properties-example ./gradle.properties
    
  5. Generate the gradle.properties file for the Login Library dependency:

    $ cp ./libs/login/gradle.properties-example ./libs/login/gradle.properties
    
  6. Open and modify the newly created gradle.properties files. See the Configuration Files section for a breakdown of the properties.

  7. In Android Studio, open the project from the local repository. This will auto-generate local.properties with the SDK location.

  8. Go to Tools → AVD Manager and create an emulated device.

  9. Run.

Build & 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 a device connected
$ ./gradlew :WooCommerce:testVanillaDebugUnitTest         # assemble, install and run unit tests
$ ./gradlew :WooCommerce:connectedVanillaDebugAndroidTest # assemble, install and run Android tests

Project Overview

OAuth2 Authentication

The WooCommerce for Android app connects to stores via WordPress.com APIs so if a WooCommerce store is not hosted on WordPress.com, it will require the Jetpack plugin to setup a common interface for communicating with a self-hosted store. In order to use these APIs, 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 "Website URL", "Redirect URLs", and "Javascript Origins" fields are required but not used for the 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 [email protected], you will only be able to login with [email protected]. Using another account like [email protected] 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.

Configuration Files

Main gradle.properties

Property Description
wc.oauth.app_id Required to build the app. See OAuth2 Authentication
wc.oauth.app_secret Required to build the app. See OAuth2 Authentication
wc.zendesk_app_id Used for Zendesk integration. Can be ignored.
wc.zendesk.domain Used for Zendesk integration. Can be ignored.
wc.zendesk.oauth_client_id Used for Zendesk integration. Can be ignored.
wc.reset_db_on_downgrade Debug builds: If true will drop all tables and recreate the db if a database downgrade is detected.
wc.sentry.dsn Used for Sentry integration. Can be ignored.

Login library gradle.properties

Property Description
wp.debug.wpcom_login_email Optional: used to autofill email during login on debug build only
wp.debug.wpcom_login_username Optional: used to autofill username during login on debug build only
wp.debug.wpcom_login_password Optional: used to autofill password during login on debug build only
wp.debug.wpcom_website_url Optional: used to autofill store url during login on debug build only

Setting up Checkstyle

The woocommerce-android project uses Checkstyle. You can run checkstyle using ./gradlew checkstyle. You can also view errors and warnings in realtime with the Checkstyle plugin. When importing the project into Android Studio, Checkstyle should be set up automatically. If it is not, follow the steps below.

You can install the CheckStyle-IDEA plugin in Android Studio here:

Android Studio > Preferences... > Plugins > CheckStyle-IDEA

Once installed, you can configure the plugin here:

Android Studio > Preferences... > Other Settings > Checkstyle

From there, add and enable the configuration file for woocommerce-android, located at config/checkstyle.xml.

Using ktlint

The woocommerce-android project uses ktlint for Kotlin linting. You can run ktlint using ./gradlew ktlint, and you can also run ./gradlew ktlintFormat for auto-formatting. There is no IDEA plugin (like Checkstyle's) at this time.

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.

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.

Resources

Help & Support

Usage docs can be found here: docs.woocommerce.com

General usage and development questions:

License

WooCommerce 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.



Made with 💜 by Automattic.
We're hiring! Come work with us!

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].