Surround — iOS client for OGS

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.


Ahh, I was talking about the iOS version, worked on that, hardly ever tried the MacOS version to be honest.

1 Like

I plan to release my app to the App Store soon (after 1 more beta), so probably it will be simpler that I make another announcement thread when it happens?

Glad to know that you like it. I will probably not have time for the macOS app though, so I am planning to make my app open source after the App Store release and let the community figure out the macOS side.


IF it has FULL OGS functionality I’d be interested—I think I’d like to have OGS playing independent of all my other browsing.

“Surround - iOS client for OGS” would be my choice. For the sub-forum, I think either “Announcements” (same place with OGS-Notify) or “Go Resources” (same place with The Conquest of Go and Katrain) would be good option.

Currently I only plan for Start new games, Analyze Mode/Conditional Move, and Puzzles. What other features need to be implemented before you would consider it “Full OGS functionalily”? Literally replicating all features to the app would take years :sweat_smile:

1 Like

Currently I only plan for Start new games, Analyze Mode/Conditional Move, and Puzzles.

I believe that’s perfectly enough!

1 Like

Puzzles I personally wouldn’t need as I do them with Tsumego Pro on the iPhone.
And the others are nice already for a beginning :slight_smile:

Heh, yeah, I imagine. But hey, updates :wink: and make it a reasonable price for the update, like, say, 3–5 € every time you add something?
If App Store (which will mean some trouble also) then make the updates something that could be purchased in-app as a “power-up” or something?

I’m quite sure a total price of ~15–20 € would be appropriate for such an app, but yeah, I guess it would probably mean a full-time job with no sure income, so… maybe spend the time on something more worthwile.

1 Like

Now we have an extra section for #3rd-party-apps, thanks @anoek!

The other threads that folks might want to watch (even if it is not “your” OS, especially developers):

@MrAlex’s OGS client app for Android:

The thread where this all began:

1 Like