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.
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 useandroid
command everywhere.
iOS:
- OS X and Xcode
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
$ npm run test
$ 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.
Be sure to check requirements above.
See scripts defined in package.json for various environments.
Plug your device with USB, or use an emulator. Then:
$ npm run android-stage
Plug your device with USB, or use an emulator. Then:
$ npm run ios-stage
Build the native code using:
ndk-build -C platforms/android
Through XCode, in the build settings menu:
- Set
C++ Language Dialect
option toC++11
value. - Set
C++ Standard Library
option tolib++
value.
See the wiki.