Surround — iOS client for OGS

Hi everyone,

I just wanted to share some screenshots of my (in progress) iOS app for OGS. For a long time it has been something I wanted to work on; and recently I managed to find some time for it, so it might be ready soon. :slightly_smiling_face:

Screenshots for iPhone and iPad


well done, looks great so far, and iOS definitely needs an OGS app!
will you open it to contributions on github?

one remark: I think you should avoid putting multiple board thumbnails on the game screen; it’s important that the player has a place to focus on one particular game without their attention unconsciously switching to other visible patterns.
The thumbnail view should be kept to the “active games” screen only.


Thank you.

I’m not sure about opening to contributors on GitHub yet, will think more about it after the first release.

The thumbnails only appear in correspondence games, I personally like it that way since I prioritize games based on patterns (“do I currently have enough time to answer this position?”); so after making a move, the thumbnails help me find the next game to play faster without having to go back. For now maybe I will make it a setting.


Hi everyone,

It has been nearly a month since I posted some screenshots of my iOS app for OGS. Here is the link to download the first beta version:

I have been trying to support all the possible game options on OGS, but there are a lot of them so it’s likely that I am missing some cases (some situations that broke the app recently: games with no time limit, free handicap placement, non-square boards). That’s why I really need your help to find out which options I am still missing.

Also, here is a roadmap for what’s coming next:

  • Push notification and widgets.
  • Starting new games from the app.
  • First version on the App Store.
  • In-game chat.
  • Analyze mode.

It is subject to change depending on how the beta testing goes, so please let me know if you have any feedbacks/suggestions.


Just wanted to post a sneak peek of the widget for correspondence games, coming soon in the next beta :smile:


Hi everyone, a new beta version of my iOS app is ready. This version adds notifications, widgets for correspondence games, many bug fixes, and performance improvements. You can download it using the same link as before:

Some screenshots of the new features:

Thank you for all the feedbacks on the previous version, I have fixed all of them (hopefully) and I am looking forward to your feedbacks to improve this new version. :smile:


Congrats, it looks really nice. Out of curiosity, how did you implement the notifications? Are you polling?


Thank you. Yes, it works by polling, but the polling happens on my server.

I tried several ways to make polling work on device, but none of them worked out. On iOS the timing of background tasks is not guaranteed, if the system decides it needs to conserve battery or CPU then your background tasks will be delayed until the device is plugged in. So I set up a simple server and proxied OGS API calls through that, the server will then poll and send out push notifications when necessary.

By the way, thank you very much for making your app open source, I have learned a lot about how to work with OGS API from your code.


An interesting choice. I considered it, but then thought that I would hit the rate limiter with enough users. There are about 11k active users on the Android app now, and some of them have 10+ games. I’m thinking that maybe we should try and see if we can’t get Anoek to implement push notifications directly on the server or perhaps give us access to do it…

Glad to hear it was useful to somebody. There are no proper docs so I spent a lot of time reverse engineering what’s going on…


It’s not that interesting, I was kinda forced into it with the limitations on iOS :sweat_smile:.

I though notifications on Android have been working fine? Maybe a detailed proposal with the current shortcomings and desired outcomes would help the case.

Before deciding to go this way, I had checked the number of users on your app and estimated that it would be okay; but scaling things up on server side is quite hard to predict and I am still a long way from your numbers so I’m not sure how it will go. If it does go bad at some point, I think that asking for a higher rate limit is still easier than asking for access to the backend.

Android has the same limitations. In fact I think they were first introduced in Android and then copied over to iOS (don’t quote me on that though). There are frameworks by google that help with this, but I ended up implementing the notification system about 4 times in the app until I reached this implementation.

Well define “fine”… They do work, but there is a big delay sometimes between the move and the notification, in the worst case scenario (when the phone is in a deep doze mode) it can be up to a few hours. Typically it’s around 10 minutes though. The phone is also wasting battery (and server resources) by polling.


I see, looks like we are both trying to solve the same issue.

For now, let me focus on releasing to the App Store and observe how the server handles more users first, then we can get back to this.

Meanwhile, do you want to join my GitHub repositories to see how it currently works? I can add you on there.

1 Like

Wow, I just realized that my app can just run on macOS without any modification :exploding_head:

I don’t think there is a lot of demand for a macOS app though, since we can just use the web version; but I wanted to check anyway :sweat_smile:: Is there anyone interested in a macOS native client for OGS?


Duuude your variations load directly in chat??? That’s an awesome idea!!!


Wait, what, …? What exactly did you try there? Send me a link, please and I’ll give a try also, provide feedback, etc. :slight_smile:
There is demand for a (native) MacOS / iOS -App, in fact I started coding one a while ago … From the feedback I am getting : the “web”-interface of OGS is good, better then most online Go playing platforms, but compare the (native) client of PandaNet …

1 Like

We should have this feature for the official OGS

Even in the main chatroom as well, link to a variation in a game.


Agreed. This would be awesome!

1 Like

yeah, that is a very cool idea, maybe I’ll steal it :sweat_smile:


The Pandanet client melts my mac with high cpu usage or crashes. I don’t really like using it on mac if I don’t have to :slight_smile:

I’d make a comparison on windows, but it seems like everything on windows 10 (all the MS software) hogs all the cpu and disk usage anyway.

Would that be a hard to implement front end change?

I imagine people might want it as a setting too though, in case the chat is flooded with variations that people don’t want to see :slight_smile:

1 Like

I have just published a new beta version of my iOS app. This version adds support for in-game chat, which you might already have a glimpse of from my previous post. You can download the app using the same link as before: Join the Surround - Online Go client beta - TestFlight - Apple

Sharing variations is not supported yet (it has to wait for Analyze mode), but viewing shared variations in chat should work fine.

Some screenshots of the new feature:

As always, I am looking forward to your feedbacks on this new version. :slightly_smiling_face:

The macOS app is currently still very rough (messy UI and bad performance), since it just happened to work and I have not done anything to optimize it for mac; but if you want to try it out, you can download it here:

For now, I don’t have any plan to work on the macOS version yet, so it will probably stay that way for a while.