Are you a developer? Want OGS on a mobile device?


#85

I’d like to also bring up Sabaki http://sabaki.yichuanshen.de/ as a possible starting point. It’s already written in html5 (and quite beautifull) and has a nice interface to command line go clients.

Creating a command-line tool to play on OGS (I think one would need to speek the GO Modem Protocoll here) could be a viable way to get a Desktop Client, as well as a relatively easy road towards a iOS and Android client.

Prototyping this comand line client in python is something I could do - for the iOS & Android port however, python IMO isn’t an option. Does anybody know?


#86

Has there been any progress on an Android app?


#87

Yes


#88

I’m a developer and would be keen to contribute and review code. I suppose react-native would do the job for the mobile app!


#89

Hi guys! Are people still interested in an Android client? I’m asking because I’m quite far ahead in developping one but not sure how it will be received. Who should I talk to about getting permission to release it to the public? Why do you guys think so many people have failed over the years? Is it because of lack of interest from the potential users?

The app is fully native and written in Kotlin. Right now it can:

  • login
  • persist and refresh token so you never have to log in a second time
  • fetch a list of games to spectate and display them in a list (at the moment just the highest rated 9 games)
  • fetch a list of active games and display them in a list
  • can spectate live games (using the socket.io connection)
  • can make moves and pass/resign. Moves are validated with the notable exception of KO
  • moves by opponents are instantly shown and you are notified (but only when you have the app open right now)
  • get notified of challenges (but only when the app is open right now)
  • can rewind a game and navigate through the move history

What doesn’t work (first 4 are MVP features):

  • stone removal phase. After playing a few games on the website and sniffing the comms it seems that there is some logic in the client to determine which territory and stones to remove. Any guidance would be appreciated.
  • timer
  • issuing challenges
  • viewing and joining other challenges
  • chatting
  • notifications of any kind while outside the app. While these would be quite easy to implement, they are hard to implement properly (e.g. without pointlessly eating your battery life)
  • KO move rejection
  • retry mechanism for move sumbission

Here are a couple of screenshots:


#90

I’m really stuck with the stone removal phase: I’m not sure how to code what is territory and what’s not and also which stones are dead. I tried reverse engineering the website, but it seems to do a sort of Monte Carlo estimation and the code is in a native module that runs in the browser (I was not even aware you could do such a thing). Anyway, the code is opaque to me and kinda beyond the scope of this implementation (it’s supposed to be a thin client, not do clever AI stuff.

Any help?


#91

the lack of interest is probably due to OGS working perfectly fine in browsers on most phones as is. it would be nice to have a crisp, quick app, but the browser works okay so the demand is not high.

i am liking how what you got there looks, though, keep it up :slight_smile:


#92

I’ll echo what @Jonasd said. I’m very happy with the browser interface on my android phone for playing on OGS and not sure what the advantage would be to moving to a client. I save the site as a shortcut to on my main screen and it opens in full screen mode and looks just like an app.

The only functionality I would like to see is a move notification for correspondence games.

I admire what you are attempting to build and would check it out when it’s available, but I’m just a little skeptical that I would switch.


#93

Fair enough Tom, thank you for the honest oppinion. I’m sure that many would think this way and that’s why I haven’t put any real effort into it (having started the project back in 2015, but stopping until Nov this year).

Indeed notiffications is one area where the native app would shine compared to the website, but I also think that the native experience will be better if I manage to come up with a good enough design (which not my strong point). For example there should be hardly any loading and all the needed stuff should be on the screen without the need of scrolling (since it’s designed with the phone screen ration and only the phone screen ratio in mind). For what it’s worth, the transitions between the screens should be nicer too.


#94

First and foremost: I do appreciate the huge amount of work which the devs poured into OGS, but I politely would like to differ from what @Jonasd and @Tom_Newman wrote: for me things work great in a browser, but could be improved on a mobile device. Over time I found myself playing on OGS if I am on my Mac, but using the native iOS-App if I use my iPhone or iPad.
But that maybe because they are looking at correspondence game play and I tend to do “live” play and for me things like 'Live game submit mode"'s “Double click to move” and Submit-move button" doing exactly the same thing kinda take the fun out of live play on OGS.
I would encourage you to review Pandanet’s client (Tetsuki), in particular on iOS.

So I would say: keep up the good work!

Just my 2c,

Bart-Jan.


#95

[off-topic], forgive me …

Wait, are you saying there’s a native iOS app for OGS? How could I’ve missed that? :astonished:


#96

nah, I stopped working on the OGS one. The one we did for Pandanet/IGS is nice though.
Sorry for the confusion :frowning:


#97

Out of curiosity, why did you stop working on the OGS app?


#98

I also want to make a mobile go app, but was not thinking of connecting it with OGS at first. I know C# and learning Java right now. If there is any help needed, we could start a Github maybe and start working on a good mobile app? :slight_smile: It would also help me to make my own game later :slight_smile:


#99

The world is moving on, ZyBeX86, my humble suggestion is getting ahead of the game and learning Kotlin directly instead of Java if you want to dabble into Android development.

Update on my progress: I’m pretty much done with the stone removal logic, this turned out to be the most complicated thing so far. There is a bug with the API though which makes game in the stone removal phase not show up as active games on Socket IO so I have to use the REST API for that as well before I release.


#100

Just noticed @nathanj439 isn’t in this chat yet… He also has an ogs app that he hosts over on f-droid


#101

I know, I looked at his code when setting up the Socket.IO communication. He did a great job on that, I just wanted to take it further…


#102

Hi guys, instead of starting a new mobile client from scratch what do you think about improving the existing, open-source, github-hosted react client and build a progressive web app that would work fine on mobile and take advantage of native notifications and offline use with service workers?

I like the existing, responsive client app (I’m playing on my android mobile mostly) and I feel like only a few improvements would be needed to make it a great mobile app.


#103

I’m inclined to agree that, for such a limited market, we should be working towards a common goal wherever possible rather than competing.


#104

Thnx for the advice - gonna check some Kotlin tutorials/courses online :wink: Maybe Udemy? they have a BlackFriday sale now :wink: