Coder Social home page Coder Social logo

lichess-org / lichobile Goto Github PK

View Code? Open in Web Editor NEW
2.0K 66.0 314.0 86.87 MB

lichess.org mobile application

Home Page: https://lichess.org/mobile

License: GNU General Public License v3.0

JavaScript 2.46% HTML 0.22% TypeScript 79.10% Java 0.64% C 0.01% Swift 0.31% Objective-C 0.02% Ruby 0.15% Stylus 17.00% Mustache 0.10%
lichess stockfish javascript android ios typescript mithril scalajs chess android-sdk

lichobile's Introduction

Warning

Deprecation notice

This repository is deprecated. Maintainers may respond only to reports of critical bugs and security issues. The application is being rewritten from the ground up in Flutter here. Until it is published, if you run into issues with this app, we suggest you use the mobile website.

Android build Lint and unit tests GitHub contributors GitHub All Releases GitHub

lichess mobile screenshots

Lichess mobile is the lichess.org official application. It is written in TypeScript, with a bit of Kotlin and Swift. It is a web application that accesses the native SDK, thanks to Ionic capacitor. The rendering library is mithril.js. It talks to a native Stockfish engine, supporting multiple variants, through a capacitor plugin. Multi-variant chess library is brought by a JavaScript version of scalachess.

Download

Get it on F-Droid Get it on Google Play

or get the APK from the Releases section

Required dependencies

Android:

  • in addition to capacitor dependencies, android ndk for stockfish compilation (to install with Android Studio).

Setup project

Make sure to install all dependencies:

$ npm install

Capacitor needs the web app before sync, so build it:

$ npm run build

Sync capacitor:

$ npx cap sync

Running in the browser

$ npm run serve

Will serve assets at http://localhost:8080. Once the server is up, browse to http://localhost:8080/www.

You should use a chromium based browser to be close to the android webview which is based on chrome.

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

Running in a device/emulator

Be sure to install all the dependencies and follow the steps above in the Setup project section.

In order to build Stockfish, you need to download the current stockfish plugin NNUE file and save it to the proper location for each platform:

$ npm run fetch-nnue

Android

Using command line:

$ npx cap run android

Using android studio:

$ npx cap open android

More information available here.

Free version

By default, the output APK will rely on Firebase Cloud Messaging to support push notifications. However, it is possible to remove this dependency if you don't care about push notifications.

To build the free version:

$ npm run patch-nonfree
$ npx cap update android
$ cd ./android
$ ./gradlew assembleDebug

iOS

You will need a GoogleService-Info.plist file in order to compile iOS project. You can download a dummy one from the firebase open-source project. Put it in the ios/App/App/ folder. Only debug builds are allowed with that example file. Push notifications won't work, but you will be able to run the app on a simulator just fine.

Using command line:

$ npx cap run ios

Using Xcode:

$ npx cap open ios

More information available here.

Advanced setup

See the wiki.

lichobile's People

Contributors

aldokkani avatar bapmrl avatar burnoo avatar burraabhishek avatar danielshaulov avatar dependabot[bot] avatar dsjoerg avatar duaner avatar ewanmellor avatar frankcalise avatar freefal avatar gbtami avatar gilbsgilbs avatar greatwolf avatar happy0 avatar isaacl avatar izzysoft avatar jas14 avatar kraktus avatar manuelp2 avatar neondactyl avatar niklasf avatar ornicar avatar peutetre avatar sepiropht avatar shabbychef avatar srimethan avatar thuo avatar tmutas avatar veloce avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lichobile's Issues

Requests extraordinary permissions

@ornicar asked I file a report about the permissions the app asks for on installation. Lichobile asks for phone number/ID and voice recording permissions, and these don't seem useful to lichobile.

Device: Samsung GT-S7275R (Galaxy Ace 3 LTR model)
OS Version: Android 4.2.2 w/ TouchWiz, never rooted.
Kernel version: 3.4.0-2715021
Beta build 2

Running the iOS App

I managed to fix the App crashing but there's still a fundamental error, when the App runs it returns an error saying it can't find the index.html file, which indeed is not present at the location specified in the config.

Possible race condition in playCtrl

this.round and this.gameSocket are initialised at null and an asynchronous xhr populates them. But the view depends on those objects.

They should be created before and be playCtrl parameters to avoid problems.

It doesn't respect the "model must always be valid" principle.

Login doesn't seem to work

Pressing the menu-icon, then LOGIN-button. The startview glides back and wifi-icon in statusbar sends/receives for a bit. I'm expecting to see a login form of some sort.

Now nothing happens when pressing menu-icon, starting games still work though. If I start a game and then go back then the menu-icon is working again to show the sidebar.

Samsung I9100 Galaxy S II
Android 4.1.2
lichess 1.0.0 (beta2)
connected via wifi (playing with computer works)

Cannot checkout repo on Windows

$ git clone https://github.com/veloce/lichess-mobile.git .
Cloning into '.'...
remote: Counting objects: 7840, done.
remote: Compressing objects: 100% (5510/5510), done.
emote: Total 7840 (delta 1969), reused 6887 (delta 1500)
Receiving objects: 100% (7840/7840), 8.84 MiB | 3.43 MiB/s, done.
Resolving deltas: 100% (1969/1969), done.
Checking connectivity... done.
fatal: cannot create directory at 'node_modules/gulp/node_modules/vinyl-fs/node_
modules/glob-stream/node_modules/glob2base/node_modules/lodash.findindex/node_mo
dules/lodash.createcallback/node_modules/lodash._basecreatecallback/node_modules
': Filename too long
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'

and after setting core.longpaths=true

$ git checkout -f HEAD
Unlink of file 'node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-stream
/node_modules/glob2base/node_modules/lodash.findindex/node_modules/lodash.create
callback/node_modules/lodash._basecreatecallback/node_modules/lodash.bind/node_m
odules/lodash._createwrapper/node_modules' failed. Should I try again? (y/n)

fresh install on macosx

With the current master of tarifa (0.5.0-dev) what I had to do build the ios app:

  • remove android platform folder
  • remove ios and android in platforms attribute inside tarifa.json
  • remove all plugins from the tarifa.json
  • re install each plugin (we need to do something about that on tarifa)
  • tarifa platform add ios
  • tarifa platform add android
  • copy https://github.com/veloce/lichobile/blob/master/tarifa.json#L23-L26 into default ios configuration in tarifa.json

and then run tarifa run ios -V

reproducible irresponsiveness

  • open a game with > 20 moves
  • hit the back button 20 times very fast
  • App stops responding to any input.

Galaxy SII, Android 4.4.4

Board doesn't update after move

Playing anonymously with computer. After I make a move my time is still ticking and the piece doesn't move. The pieces valid destinations gets dots on them and the target square gets highlighted as if I moved there. If i start another game via the star and then press "back", then the board is updated and I can see the opponents move.

Samsung I9100 Galaxy S II
Android 4.1.2
lichess 1.0.0 (beta2)

After move: http://i.imgur.com/svUt6JN.png

Since last commits

I now get this error while compiling:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'ERROR: config.xml does not exist. Please run cordova-ios/bin/cordova_plist_to_config_xml path/to/project.'

Ability to change board and piece themes

Personally (at least to start with), I'd suggest that the default board and piece theme be the same as the lichess website.

These are small details, but lichess has a minimalistic image to maintain. I think that the app will be better received if it follows on with the same design cues as the website.

I think I saw a while ago that a white on white cburnett splash screen was going to be used on the application originally. I'm not sure what happened to these images or if they'll make a return, but they were much more appropriate than the current splash screen.

Never get a game

I tried to play another human, and set the time control to 3 0. After selecting my game I see a screen with

Waiting for opponent
3100 players and the number keeps changing.
X and Cancel button

After 10 minutes I have yet to get a game. If I go to my mobile browser and select 3 0 I get a game fairly quickly.

Sounds only play after computer move

It plays two movement sounds at once but only after the computer's move.

This might be a bug.

Device: HTC Incredible S
OS: Android 4.4.4 w/ Cyanogen mod 11-20140919-UNOFFICIAL-vivo
Steps to reproduce: Played a KoTH game against AI lvl 3
Expected function: Sounds to play immediately after piece was placed.

clock font should be monospace

or else it keeps moving while time is decreasing.
We need a good-looking monospace font.
Maybe something that looks like a digital display (like the chess clock in the cafet')

Menu buttons become unresponsive

Steps to reproduce: Use application a bit by moving back and forwards between menus, sliding the current games tiles, etc...

Device: HTC Incredible S
OS: Android 4.4.4 w/ Cyanogen mod 11-20140919-UNOFFICIAL-vivo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.