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:
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.
viewing and joining other challenges
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)
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.
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.
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.
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.
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? It would also help me to make my own game later
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.
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.
@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.