Experimentation of a peer to peer technique that is called Hole Punching. This project has a sample iOS app with a golang library (build with gomobile).
To build the rendez-vous server, run ./rdv.sh in p2p folder.
To build a terminal client, run ./terminal.sh in p2p folder.
To build the core (golang mobile library), run ./build_core.sh. After, you can replace Core.framework in the iOS folder and launch the project with Xcode.
Have fun!