“Online GO” App for Android

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:

9 Likes

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?

1 Like

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:

1 Like

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.

2 Likes

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.

4 Likes

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.

2 Likes

[off-topic], forgive me …

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

1 Like

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

2 Likes

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

3 Likes

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:

2 Likes

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.

2 Likes

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

1 Like

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…

1 Like

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.

3 Likes

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

2 Likes

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

1 Like

My life changed when I got confronted with a disease called Friedreich Ataxia.
Serious stuff, not much time anymore for fun and games.

3 Likes

Oh … that sounds bad :frowning: I can imagine how Go etc. can become totally unimportant under such circumstaces … hope you’re in good hands re: treatment … hope they can help you … take good care.

Best wishes, Tom

2 Likes

@Bart-Jan I know about this disease and I hope that you remain mentally strong. Although @trohde is correct about Go, I think that it is still possible to use it as one of your weapons to fight against resignation to this disease. Go offers us not only beauty but can teach us mental discipline, and through this mental training it helps us to develop tactics and strategies to confront our daily challenges.

I wish you the best,

– Musash1

6 Likes

If you need beta testers, let me know mate. I’m very much interested in a native app, mainly for the notification features and also ogs doesn’t work on my browser of choice (brave) unfortunately… https://github.com/brave/browser-android-tabs/issues/262

I tried nathans ogs client from f-droid but notification didn’t work… Your apps UI looks really nice as well. Well done. Looking forward to playing with it… And thanks for your work.

1 Like