← Voltar ao Blog

De um pedaço de madeira à App Store

Há uns vinte anos, meu colega de quarto da universidade e eu pegamos um pedaço de madeira de uma caçamba de entulho, desenhamos uma grade com uma régua, compramos umas pedrinhas de vidro numa loja de artesanato por umas três libras e começamos a jogar Go. Eu não fazia a menor ideia do que estava fazendo. Na verdade, ainda não faço. Mas algo naquele jogo me cativou imediatamente — a forma como algo aparentemente tão simples podia ser tão incrivelmente profundo. Uma grade de 19x19. Pedrinhas pretas e brancas. Regras que você aprende em cinco minutos. E, no entanto, naquela época, os computadores mais poderosos do mundo não conseguiam vencer um jogador humano habilidoso. Isso me fascinava.

Uma obsessão precoce

Essa fascinação era tão profunda que meu projeto de conclusão de curso na Universidade de Kingston foi em visão computacional — eu desenvolvi manualmente um algoritmo para ler o estado de um tabuleiro de Go a partir de uma fotografia, alcançando mais de 87% de precisão. No início dos anos 2000, antes da explosão do aprendizado profundo, eu tinha um orgulho discreto disso.

Por volta da mesma época, visitei o Japão por duas semanas especificamente para vivenciar a cultura do Go em primeira mão e jogar contra jogadores locais. Perdi todas as partidas. Uma partida em particular me marcou: um jovem, provavelmente de nível dan, muito tímido, com unhas incrivelmente longas, acompanhado de seu pai. Fui completamente aniquilado antes mesmo de perceber o que havia acontecido — levei um tempo para notar que precisava desistir.

Em todos os salões de Go que visitei, o cheiro de cigarro era tão intenso que era quase impossível jogar uma partida sem respirar ar fresco — e eu mesmo sou fumante. Os jogadores eram quase exclusivamente idosos. Go parecia ser um passatempo para pessoas na terceira idade, o que me intrigou, dada a reputação do Japão em tecnologia e inovação. Ninguém parecia estar associando o Go à computação. Pelo menos, ainda não.

A Grande Lacuna

A vida seguiu em frente. Trabalhei como desenvolvedor Java, passei um ano na Accenture durante a faculdade (período em que perdi todo o cabelo por causa do estresse) e, eventualmente, fiquei desempregado por um longo período devido a problemas de saúde. Minhas habilidades em Java se tornaram cada vez mais irrelevantes à medida que o mercado evoluía sem mim. Tentei me atualizar, mas a diferença era muito grande — e descobri que os salários nessa área do mercado haviam, na verdade, diminuído. Não valia a pena.

Durante todo esse período, continuei jogando Go. Não seriamente — frequento o Clube de Go de Exeter de vez em quando há uns quinze anos, e sou um jogador mediano, na melhor das hipóteses. Mas o jogo nunca me abandonou.

Tudo se encaixou perfeitamente de uma vez.

Então, em um período notavelmente curto, várias coisas aconteceram ao mesmo tempo.

O confinamento da COVID chegou. Eu estava ficando louco sem nada para fazer, mas tive a sorte de ter três dispositivos Apple — presentes da minha família e do meu parceiro. Assisti ao documentário do AlphaGo e fiquei eletrizado. Aquilo que me fascinava na universidade — a impossibilidade de uma máquina dominar o jogo Go — tinha sido resolvido. E a revolução da IA que isso desencadeou estava apenas começando. O ChatGPT chegou. Depois veio o Claude. E então a Apple anunciou o Vision Pro.

Comecei a usar o KataGo e percebi que ele não tinha uma interface adequada para a App Store®. Dei uma olhada nos aplicativos em Go disponíveis para iPhone® e iPad® e eles eram... bons. Funcionais. Mas nenhum deles tinha recursos de acessibilidade. Nenhum aplicativo em Go em toda a App Store declarava suporte para VoiceOver, Controle por Voz, Tipo Dinâmico ou qualquer um dos padrões de acessibilidade da Apple. Nenhum.

Para um jogo praticado por pessoas cegas há décadas — usando tabuleiros táteis com linhas em relevo no Japão, na Federação Francesa de Go e na Coreia — a completa ausência de uma versão digital acessível parecia uma lacuna que não deveria existir. Os jogadores cegos de Go estavam completamente excluídos do ecossistema de aplicativos.

Tudo se encaixou perfeitamente de uma vez. Eu aprenderia desenvolvimento iOS do zero, usando ferramentas de IA para acelerar o aprendizado, e criaria um aplicativo em Go que qualquer pessoa pudesse jogar — com ou sem visão.

Começando do zero

Em 1º de julho de 2024, criei um projeto em branco no Xcode chamado "RenderedGoApp" — um nome nada inspirador. Eu não sabia nada sobre Swift, SwiftUI, RealityKit ou qualquer outra tecnologia de desenvolvimento da Apple. Aprendi tudo sozinho, por meio da documentação oficial da Apple e das sessões gratuitas da WWDC, sem treinamento formal, bootcamps ou eventos para desenvolvedores.

Duas semanas depois, em 17 de julho, renomeei para "Goban3D". Goban é o nome tradicional japonês para o tabuleiro de madeira grossa com pés onde se joga Go. O nome pareceu certo — estava de acordo com os padrões de nomenclatura da Apple e descrevia exatamente o que o aplicativo era.

Recebi apoio para dislexia desde o ensino fundamental até a faculdade. Sei como é quando as ferramentas não são criadas pensando em você. Por isso, desde a primeira linha de código, a acessibilidade não foi uma reflexão tardia — foi a razão de ser do projeto.

O desastre do SceneKit

Um dos momentos mais difíceis foi quando a Apple descontinuou o SceneKit — a estrutura 3D na qual eu havia construído toda a cena do tabuleiro. Eu tinha me tornado bom nisso. A cena tinha uma borboleta voando, grama balançando, iluminação fisicamente realista. Funcionava perfeitamente com o mínimo de uso da CPU. Então a Apple anunciou que ele seria substituído pelo RealityKit.

Fiquei furioso. Mas, com o compromisso de lançar algo de ponta e tolerância zero para dívida técnica, eu sabia que cada linha do SceneKit tinha que ser arrancada e substituída. A borboleta não sobreviveu. O RealityKit é o novo queridinho da Apple, mas é uma fera muito mais voraz que seu antecessor — algo que eu adoraria discutir com um engenheiro da Apple um dia.

Situação Atual

Hoje, o Goban3D está em versão beta externa na App Store para iOS e macOS. Ele oferece 100% de acessibilidade em todas as sete categorias da Apple: VoiceOver, Dynamic Type, Controle por Voz, Reduzir Movimento, Reduzir Transparência, Contraste Suficiente e Diferenciar sem Cor. Funciona em todos os iPhones, do SE de 3,5" ao Pro Max de 6,9", em todos os iPads de 9,7" a 13" e nativamente no Mac® via Catalyst. O tabuleiro 3D é renderizado em RealityKit com materiais fisicamente realistas que captam a luz como madeira e pedra de verdade. Há também um modo 2D simplificado para quando você busca simplicidade ou economia de bateria.

Ninguém fora do processo de desenvolvimento sabe ainda da sua existência. Nenhuma cobertura da imprensa, nenhuma divulgação na comunidade, nenhum testador beta externo. Este post no blog é, de certa forma, a primeira vez que conto a alguém publicamente sobre isso.

O que vem a seguir?

A prioridade máxima é encontrar testadores beta com necessidades reais de acessibilidade — jogadores cegos, pessoas com baixa visão, pessoas com deficiência motora. O aplicativo foi desenvolvido de acordo com os padrões da Apple, mas os padrões são apenas o começo. Preciso de pessoas reais para me dizerem o que funciona, o que não funciona e o que eu não considerei. Encontrá-las será como encontrar um unicórnio, mas não vou desistir. Todos devem ser incluídos.

Se você gostaria de experimentar o Goban3D ou conhece alguém que se beneficiaria de um aplicativo Go acessível, entre em contato. Envie um e-mail para support@goban3d.com com o assunto "Beta Tester" e o endereço de e-mail do seu ID Apple para iPhone, iPad ou Mac. Você receberá um convite para o TestFlight® em breve.

Esta foi a coisa mais difícil e mais gratificante que já fiz. De um pedaço de madeira em um apartamento universitário até a App Store — levou vinte anos, mas chegamos aqui.