Skip to content

lichess-org/mobile

Repository files navigation

Lichess Mobile

Second iteration of the Lichess mobile app.

How to contribute

The project is still in early stage of development. Drastic changes may still happen, including project structure.

If you want to contribute, please read the contributing guide.

Setup

  1. Follow the Flutter guide to install Flutter and the platform of you choice (iOS and/or Android). Note, if you're on Linux, you should install flutter manually because there is an issue with snapd when building Stockfish. Note that this project is not meant to be run on web platform.
  2. Switch to the beta channel by running flutter channel beta and flutter upgrade
  3. Ensure Flutter is correctly configured by running flutter doctor

Flutter version

While the app is in beta we'll use the beta channel of Flutter.

Flutter Version Management

If you want to use FVM to manage your Flutter versions effectively, please consult the FVM (Flutter Version Management) guide for comprehensive instructions on installing Flutter on your specific operating system.

Pro Tip: Remember to prepend the 'flutter' prefix when using FVM commands, like this: fvm flutter [command].

Local lila

You will need a local lila (lichess server scala app) instance to work on this project. You will also need to setup lila-ws (websocket server).

Instructions to install both are found in the lila wiki.

The mobile application is configured by default to target http://127.0.0.1:9663 and ws://127.0.0.1:9664, so keep these when installing lila.

Run

We don't commit generated code to the repository. So you need to run the code generator first:

flutter pub get
dart run build_runner watch

Check you have some connected device with: flutter devices.

If you target an android emulator you need to run these commands so the device can reach the local lila instance:

adb reverse tcp:9663 tcp:9663
adb reverse tcp:9664 tcp:9664

Then run on your device:

flutter run -d <my_device>

You can find more information about emulators in the wiki.

You can find more information about the flutter run command by running flutter run --help.

Test

Before submitting a pull request, please run the tests:

flutter analyze
flutter test

Logging

dart devtools

Then run the app with the flutter run command above, and a link to the logging page will be printed in the console.

Internationalisation

Do not edit the app_en.arb file by hand, this file is generated. More information in the wiki.

Releasing

Only for members of lichess team.

  1. Bump the pubspec.yaml version number. This can be in a PR making a change or a separate PR. Use semantic versioning to determine which part to increment. The version number after the + should also be incremented. For example 0.3.3+000303 with a patch should become 0.3.4+000304.
  2. Run workflow Draft GitHub Release
  3. Run workflow Deploy to Play Store