/lichobile

lichess.org mobile application

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Build Status

lichess mobile screenshots

Lichess mobile is a cordova application. It is written in TypeScript and JavaScript. The rendering library is mithril.js. It uses babel, browserify and gulp as build tools. It talks to a native Stockfish engine, supporting multiple variants, through a cordova plugin. Multi-variant chess library is brought by a JavaScript version of scalachess.

Requirements

Android:

  • the android SDK
  • SDK packages API 23
  • last version of Android SDK tools and platform tools
  • android ndk for stockfish compilation
  • make sure the sdk/tools/ directory is in your path, so you can use android command everywhere.

iOS:

Build the web application

Make sure you installed all deps:

$ npm install

Then copy env.json.example to env.json and modify settings to link your app to a lichess server.

To build and watch for changes:

$ npm run watch

Run the tests

$ npm run test

Run in a browser

$ chromium --user-data-dir=/tmp/lichobile-chrom --disable-web-security www/index.html

Be sure to Toggle Device Mode in your browser, or else you won't be able to click on anything.

Build cordova application and run on device

Be sure to check requirements above.

See scripts defined in package.json for various environments.

Android

Plug your device with USB, or use an emulator. Then:

$ npm run android-stage

iOS

Plug your device with USB, or use an emulator. Then:

$ npm run ios-stage

Build stockfish

Android

Build the native code using:

ndk-build -C platforms/android

iOS

Through XCode, in the build settings menu:

  • Set C++ Language Dialect option to C++11 value.
  • Set C++ Standard Library option to lib++ value.

Advanced setup

See the wiki.