← Torna al blog

Da un pezzo di legno all'App Store

Circa vent'anni fa, io e il mio compagno di stanza all'università tirammo fuori un pezzo di legno da un cassonetto, ci disegnammo sopra una griglia con un righello, comprammo delle pietre di vetro in un negozio di articoli per hobby per circa tre sterline e iniziammo a giocare a Go. Non avevo la minima idea di cosa stessi facendo. A dire il vero, non lo so ancora. Ma qualcosa in quel gioco mi catturò immediatamente: il modo in cui qualcosa di apparentemente così semplice potesse essere incredibilmente profondo. Una griglia 19×19. Pietre bianche e nere. Regole che si imparano in cinque minuti. Eppure, a quel tempo, i computer più potenti del mondo non riuscivano a battere un giocatore umano forte. Questo mi affascinava.

Un'ossessione precoce

Quel fascino era così profondo che il mio progetto di tesi alla Kingston University riguardava la visione artificiale: ho scritto a mano un algoritmo per leggere lo stato di una scacchiera di Go da una fotografia, raggiungendo un'accuratezza superiore all'87%. Per i primi anni 2000, prima dell'esplosione del deep learning, ne ero discretamente orgoglioso.

Nello stesso periodo, ho visitato il Giappone per due settimane appositamente per immergermi nella cultura del Go e giocare contro giocatori locali. Ho perso ogni singola partita. Una in particolare mi è rimasta impressa: un giovane, probabilmente di livello dan, molto timido, con unghie incredibilmente lunghe, accompagnato dal padre. Sono stato completamente annientato prima ancora di rendermi conto di cosa fosse successo — ci ho messo un po' a capire che dovevo arrendermi.

Ogni sala da Go che ho visitato era talmente satura di fumo di sigaretta che era quasi impossibile giocare senza prendere una boccata d'aria fresca — e io stesso sono un fumatore. I giocatori erano quasi esclusivamente anziani. Il Go sembrava essere un passatempo per persone della terza età, il che mi ha lasciato perplesso vista la reputazione del Giappone in fatto di tecnologia e innovazione. Nessuno sembrava collegare il Go all'informatica. Almeno non ancora.

Il lungo divario

La vita è andata avanti. Ho lavorato come sviluppatore Java, ho trascorso un anno in Accenture durante l'università (durante il quale ho perso tutti i capelli per lo stress) e alla fine mi sono ritrovato disoccupato per un lungo periodo a causa di problemi di salute. Le mie competenze Java sono diventate sempre meno rilevanti man mano che il settore si evolveva senza di me. Ho cercato di recuperare il terreno perduto, ma il divario era diventato troppo ampio — e ho scoperto che gli stipendi in quel settore erano addirittura diminuiti. Non ne valeva la pena.

Nonostante tutto, ho continuato a giocare a Go. Non seriamente — frequento l'Exeter Go Club a intermittenza da circa quindici anni e sono, nella migliore delle ipotesi, un giocatore nella media. Ma il gioco non mi ha mai abbandonato.

Tutto ha avuto un senso in un istante

Poi, in un lasso di tempo incredibilmente breve, accaddero diverse cose contemporaneamente.

È arrivato il lockdown per il COVID. Non avevo niente da fare e stavo impazzendo, ma per fortuna avevo tre dispositivi Apple — regali della mia famiglia e della mia compagna. Ho guardato il documentario AlphaGo e ne sono rimasto folgorato. La cosa che mi aveva affascinato all'università — l'impossibilità per una macchina di padroneggiare il Go — era stata risolta. E la rivoluzione dell'intelligenza artificiale che ne è scaturita era appena agli inizi. È arrivato ChatGPT. Poi Claude. Poi Apple ha annunciato il Vision Pro.

Ho iniziato a usare KataGo e ho notato che non aveva un'interfaccia adeguata sull'App Store®. Ho dato un'occhiata alle app di Go disponibili per iPhone® e iPad® ed erano... discrete. Funzionali. Ma nessuna di esse aveva funzionalità di accessibilità. Non c'era una singola app di Go sull'intero App Store che dichiarasse il supporto per VoiceOver, Voice Control, Dynamic Type o qualsiasi altro standard di accessibilità di Apple. Nessuna.

Per un gioco praticato da non vedenti da decenni — utilizzando tavolette tattili con linee in rilievo in Giappone, presso la Federazione francese di Go, in Corea — la completa assenza di una versione digitale accessibile sembrava una lacuna ingiustificata. I giocatori di Go non vedenti erano stati completamente esclusi dall'ecosistema delle app.

Tutto si è incastrato alla perfezione. Avrei imparato da solo a sviluppare per iOS, usando strumenti di intelligenza artificiale per accelerare l'apprendimento, e avrei creato un'app di Go a cui chiunque avrebbe potuto giocare — vedente o non vedente.

Partendo da zero

Il 1° luglio 2024, ho creato un progetto Xcode vuoto chiamato "RenderedGoApp" — un nome non molto originale. Non sapevo nulla di Swift, SwiftUI, RealityKit o di qualsiasi altra tecnologia di sviluppo Apple. Ho imparato tutto da solo, consultando la documentazione ufficiale di Apple e le sessioni gratuite della WWDC, senza seguire corsi di formazione formali, bootcamp o eventi per sviluppatori.

Due settimane dopo, il 17 luglio, l'ho rinominata "Goban3D". Goban è il nome tradizionale giapponese della spessa tavola di legno con le gambe su cui si gioca a Go. Il nome mi sembrava azzeccato — rispettava gli standard di denominazione di Apple e descriveva esattamente di cosa si trattava.

Ho ricevuto supporto per la dislessia dalle elementari fino all'università. So cosa significa quando gli strumenti non sono pensati per te. Quindi, fin dalla prima riga di codice, l'accessibilità non è stata un ripensamento — ma la ragione stessa dell'esistenza del progetto.

Il disastro di SceneKit

Uno dei momenti più difficili è arrivato quando Apple ha dichiarato obsoleto SceneKit — il framework 3D con cui avevo creato l'intera scena del tabellone. Ero diventato bravo a usarlo. La scena includeva una farfalla che svolazzava, l'erba che ondeggiava, un'illuminazione basata sulla fisica. Funzionava benissimo con un consumo minimo di CPU. Poi Apple ha annunciato che sarebbe stato sostituito da RealityKit.

Ero furioso. Ma, determinato a realizzare un prodotto all'avanguardia e con una tolleranza zero per il debito tecnico, sapevo che ogni singola riga di SceneKit doveva essere eliminata e sostituita. La farfalla non è sopravvissuta. RealityKit è il nuovo fiore all'occhiello di Apple, ma è una bestia ben più vorace del suo predecessore — un argomento che mi piacerebbe approfondire un giorno con un ingegnere Apple.

La situazione attuale

Oggi Goban3D è disponibile in versione beta esterna sull'App Store per iOS e macOS. Offre una copertura del 100% delle funzionalità di accessibilità in tutte e sette le categorie di accessibilità di Apple — VoiceOver, Dynamic Type, Voice Control, Reduce Motion, Reduce Transparency, Sufficient Contrast e Differentiate Without Color. Funziona su tutti gli iPhone, dal modello SE da 3,5" al Pro Max da 6,9", su tutti gli iPad, dal 9,7" al 13", e nativamente su Mac® tramite Catalyst. La tavola 3D è renderizzata in RealityKit con materiali basati sulla fisica che catturano la luce come il vero legno e la pietra. È disponibile anche una modalità 2D semplificata per chi desidera semplicità o risparmio energetico.

Nessuno al di fuori del processo di sviluppo sa ancora della sua esistenza. Nessuna copertura mediatica, nessuna notorietà nella community, nessun beta tester esterno. Questo post sul blog è, in un certo senso, la prima volta che ne parlo pubblicamente con qualcuno.

Cosa succederà dopo

La priorità assoluta è trovare beta tester con reali esigenze di accessibilità — giocatori non vedenti, persone ipovedenti, persone con disabilità motorie. L'app è stata sviluppata secondo gli standard Apple, ma gli standard sono solo l'inizio. Ho bisogno di persone reali che mi dicano cosa funziona, cosa non funziona e cosa non ho considerato. Trovarle sarà come trovare un unicorno, ma non mi arrenderò. Tutti devono essere inclusi.

Se desideri provare Goban3D, o conosci qualcuno che potrebbe trarre vantaggio da un'app di Go accessibile, mi farebbe piacere sentirti. Invia un'email a support@goban3d.com con oggetto "Beta Tester" e l'indirizzo email dell'Apple ID per il tuo iPhone, iPad o Mac. Riceverai a breve un invito TestFlight®.

Questa è stata la cosa più difficile e gratificante che abbia mai fatto. Da un pezzo di legno in un appartamento universitario all'App Store — ci sono voluti vent'anni, ma ce l'abbiamo fatta.