I designed and built the coach app for a beach tennis platform: classes, attendance, scouting and a tactics board.
caso-02 · beach-tennis
01 · problem
The backend belongs to another team and didn't have the coach routes yet. Waiting for them would have delayed the app.
02 · decision
I wrote the contract first, in the Swift package the API and the apps share, and made every screen read from a single data source. Today that source is a mock; once the routes exist, it just gets swapped. Until then, the app runs on sample data.
03 · number
89 Swift files · 51 endpoints in the contract · 13 contract tests