Built a feature
I rebuilt the Action Cable implementation for Basecamp 3 iOS. The first version I built -- several years ago -- was a straight Swift port of the Rails Javascript client. This worked great for a vanilla Rails Action Cable deployment.

But having the protocol compiled into the iOS app became a problem when Basecamp 3 needed to be changed for operational reasons. This isn't a problem for the web because the browser will download the new Javascript. But it is a problem for code that is compiled and distributed via the App Store.

I never wanted to write this again so I redesigned it to run the same Javascript client code as the web, but inside of a standalone Javascript Core (JSC) engine. The iOS app now downloads the Javascript that is deployed for the web and bridges to native WebSockets.

There is no longer a need for compiled Action Cable logic in the iOS app and the associated concern of keeping different platform implementations in sync.

I plan to open source this library in the future.