This repository contains the client code for Surround, an iOS app to play Go online on the Online-Go.com server (Online Go Server - OGS). The app aims to provide the best OGS experience on iOS devices.
Surround is a fairly complex application built entirely in Swift, with the UI built mostly in SwiftUI. The project heavily uses SwiftUI previews with a lot of sample data, so I can work on the design using the same tool I use to code the app (Xcode).
I made this project open source with a permissive license in the hope that it can help improving the quality of Go apps in general. If you are working on some Go related app, I hope you can find something useful here.
- It is quite straightforward to run this project, just open the Xcode project file (
Surround.xcodeproj) with a not-too-old version of Xcode, and you should be able to build and run the project. - You might have a warning on missing a "pc file". That is a known issue caused by the Starscream library, which is a dependency of the Socket.io client library for Swift. You can ignore the warning or install
pkg-configas instructed in the issue link to silence the warning. - To run against the isolated OGS beta site, select the shared Surround Beta scheme. It installs beside the production app with a separate bundle ID, icon, app-group data, and URL scheme.
Surround now builds for Mac Catalyst using the Mac-optimized interface. The app and widget build for macOS, while the notification content and notification service extensions remain iOS-only for now.
This is the platform foundation rather than the finished desktop experience. The current adaptive navigation and game UI are shared with iPadOS, and further work will add more Mac-specific interaction and window behavior.
- Send me a message on either OGS or the OGS Forums.
- OGS Forums thread for Surround.
- Send me an email: khoahong@hey.com
This project is released under the BSD 3-Clause license. See LICENSE for details.

