Giter VIP home page Giter VIP logo

rsg-chess-mobile's People

Contributors

radi-cho 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

Watchers

 avatar  avatar  avatar  avatar  avatar

rsg-chess-mobile's Issues

React native issues.

Firebase is doing great job with reporting bugs so I can fix them.
This time I got the following issues:

Issue 1:

image

Issue 2:

image


The logs reveal the bugs occur mostly on Galaxy S5 with Android 4.4.2. I'll wait to see if the bug continues to happen on newer devices.
Anyways there are already open (and some closed) React Native Github issues for the both errors. They haven't been resolved yet but some workarounds are provided.

(I have enabled multidex, so it could cause these problems...)

Translate the app to Bulgarian & Russian - Globalization

We will support multiple languages in 2.O and newer versions of RSG Chess mobile.
Starting with English, Russian & Bulgarian in 2.0.0-beta.5 we will continue to add new languages in every major update. My plans are we to support: English, Russian, Bulgarian, German, Spanish, Italian, French, Greek, Japanese and some additional languages as of 3.O

Programmatically we will create one big set of strings in the config.js file as JS objects. Then the app will detect the preferred language using navigator.globalization.getPreferredLanguage provided by the globalization plugin. This data will be stored in the component's state so the preferences can be easily customized by the user.

The AI doesn't wait until pawn is promoted which causes bug: undefined is not an object (evaluating 'o.x')

The reports for 29th June - 1 July from Firebase showed new bug in RSG Chess:

undefined is not an object (evaluating 'o.x'), stack:
<unknown>@556:4165 <unknown>@556:4145 <unknown>@556:4091 warning@556:4069 <unknown>@556:2951
simulateAndFilter@556:2731 getValidMoves@556:14119 checkmate@556:3207 moveSelected@556:2546 handlePress@306:3766
touchableHandlePress@178:1279 _performSideEffectsForTransition@167:8505 _receiveSignal@167:7292 touchableHandleResponderRelease@167:4757
g@41:296 invokeGuardedCallback@41:496 invokeGuardedCallbackAndCatchFirstError@41:611 A@41:2410
D@41:3172 U@41:2969 <unknown>@41:15497 batchedUpdates@41:135715 Ie@41:14848 ze@41:15343 receiveTouches@41:16180
value@18:3582 <unknown>@18:1067 value@18:3009 value@18:1039

image

The bug affected 3-4 users until July 1st, 12:15 PM GMT in version 2.0.1 and is predicted to occur around 400 times in 10 000 sessions...

image

That means the bug isn't too rare, and can be reproduced, but I'm still not able to find it...

Also the additional event logging shows the bug is somehow related to the pawn promotion:
image

I tried to follow the callstack in index.android.bundle release file, but It seems the columns of the characters reported with the callstack are different than the actual ones in index.android.bundle.

I'm pretty sure o.x stands for king.x in https://github.com/RSG-Group/RSG-Chess-API/blob/master/rsg-chess-api/src/game.js#L231

...
if (xxx && xxx.color !== color) {
   xxx.getValidMoves().forEach(function (mmm) {
      if (mmm.x === king.x && mmm.y === king.y) result = true
   })
}
...

However there are few another places in the minified bundle where o.x is used:

image

The globalization API doesn't work on Android

I translated the app to Bulgarian and Russian (#8). Everything worked in phoneGap on Windows, but when I changed the language of physical phone RSG Chess wasn't able to detect it. There are two main POSSIBLE problems:

  1. Some of our checks don't work, because the output on Android may be different:
// such as:
let lang = language.value.split(/\s*-\s*/g)[0]
if (_.includes(Object.keys(strings.languages), lang)) {
  this.setState({ lang })
}
  1. The globalization plugin fails.

I'm gonna test the posibble problems and find out what's actually happening.

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.