← Nazaj na blog

Od kosa lesa do trgovine App Store

Pred približno dvajsetimi leti sva s sostanovalcem na univerzi iz smetnjaka potegnila kos lesa, nanj z ravnilom narisala mrežo, v trgovini z umetniškimi izdelki za približno tri funte kupila nekaj steklenih kamnov in začela igrati go. Nisem imela pojma, kaj počnem. Pravzaprav še vedno ne vem. Ampak nekaj pri igri me je takoj pritegnilo – kako je lahko nekaj tako na videz preprostega tako neverjetno globoko. Mreža 19 × 19. Črno-beli kamni. Pravila, ki se jih lahko naučiš v petih minutah. Pa vendar takrat najmočnejši računalniki na svetu niso mogli premagati močnega človeškega igralca. To me je fasciniralo.

Zgodnja obsedenost

Ta fascinacija je bila tako globoka, da je bil moj zadnji projekt na Univerzi Kingston računalniški vid – ročno sem kodiral algoritem za branje stanja igralne plošče Go s fotografije, pri čemer sem dosegel več kot 87-odstotno natančnost. V začetku 2000-ih, pred eksplozijo globokega učenja, sem bil na to tiho ponosen.

Približno v istem času sem za dva tedna obiskal Japonsko, da bi iz prve roke izkusil kulturo igre Go in igral proti lokalnim igralcem. Izgubil sem prav vse tekme. Ena igra izstopa: mladenič, verjetno na ravni dan-a, zelo sramežljiv, z osupljivo dolgimi nohti, v spremstvu očeta. Bil sem popolnoma uničen, še preden sem se zavedel, kaj se je zgodilo – trajalo je nekaj časa, da sem opazil, da moram odstopiti.

Vsak salon za igro Go, ki sem ga obiskal, je bil tako poln cigaretnega dima, da je bilo skoraj nemogoče preživeti igro brez svežega zraka – pa tudi sam sem kadilec. Igralci so bili skoraj izključno starejši. Zdelo se je, da je igra Go zabava za tiste v zlatih letih, kar me je zmedlo glede na japonski sloves tehnologije in inovacij. Zdelo se je, da nihče ne povezuje igre Go z računalništvom. Vsaj še ne.

Dolga vrzel

Življenje je šlo naprej. Delal sem kot razvijalec Jave, med študijem na univerzi sem eno leto preživel pri Accentureju (med tem so mi zaradi stresa izpadli vsi lasje) in se zaradi zdravstvenih težav za dolgo časa znašel brezposeln. Moje znanje Jave je postajalo vse bolj nepomembno, saj se je industrija razvijala brez mene. Poskušal sem dohiteti, a vrzel je postala prevelika – in ugotovil sem, da so se plače v tem delu panoge dejansko znižale. Ni se splačalo.

Ves čas sem igral go. Ne resno – obiskujem go klub Exeter že približno petnajst let in sem v najboljšem primeru povprečen igralec. Ampak igra me ni nikoli pustila iz rok.

Vse je kliknilo naenkrat

Nato se je v izjemno kratkem času zgodilo več stvari hkrati.

Prizadela je karantena zaradi COVID-a. Plezal sem po stenah, ker nisem imel kaj početi, a imel sem srečo, da sem imel tri Applove naprave – darila družine in partnerja. Ogledal sem si dokumentarec AlphaGo in bil sem navdušen. Stvar, ki me je fascinirala na univerzi – nezmožnost, da bi stroj obvladal Go – je bila rešena. In revolucija umetne inteligence, ki jo je sprožila, se je šele začela. Prišel je ChatGPT. Nato Claude. Nato je Apple napovedal Vision Pro.

Začel sem se igrati s KataGo in opazil, da nima pravega vmesnika v App Store®. Pogledal sem aplikacije Go, ki so na voljo za iPhone® in iPad®, in bile so ... v redu. Funkcionalne. Vendar nobena od njih ni imela funkcij za dostopnost. Nobena aplikacija Go v celotni App Store ni deklarirala podpore za VoiceOver, glasovno upravljanje, dinamično tipkanje ali kateri koli Applov standard dostopnosti. Niti ena sama.

Za igro, ki jo slepi ljudje igrajo že desetletja – z uporabo dvignjenih taktilnih tabel na Japonskem, v francoski Go federaciji, v Koreji – se je popolna odsotnost kakršne koli digitalno dostopne različice zdela kot vrzel, ki ne bi smela obstajati. Slepi igralci Goa so bili popolnoma izključeni iz ekosistema aplikacij.

Vse se je naenkrat zarotilo in preprosto kliknilo na svoje mesto. Naučil bi se razvoja za iOS iz nič, pri čemer bi uporabljal orodja umetne inteligence za pospešitev učenja, in zgradil bi aplikacijo Go, ki bi jo lahko igral vsak – ne glede na to, ali vidi ali ne.

Začetek iz ničle

1. julija 2024 sem ustvaril prazen projekt Xcode z imenom »RenderedGoApp« – ne ravno navdihujoče ime. Nisem vedel ničesar o Swiftu, SwiftUI, RealityKitu ali kateri koli Applovi razvojni tehnologiji. Vsega sem se naučil sam prek Applove uradne dokumentacije in brezplačnih sej WWDC, brez formalnega usposabljanja, bootcampov ali dogodkov za razvijalce.

Dva tedna pozneje, 17. julija, sem ga preimenoval v »Goban3D«. Goban je tradicionalno japonsko ime za debelo leseno desko z nogami, na kateri se igra Go. Ime se je zdelo prav – ustrezalo je Applovim standardom poimenovanja in je natančno povedalo, za katero aplikacijo gre.

Podporo za disleksijo sem prejemal od osnovne šole pa vse do fakultete. Vem, kako je, ko orodja niso zgrajena z mislijo nate. Torej, že od prve vrstice kode dostopnost ni bila pozabljena – bila je razlog za obstoj projekta.

Katastrofa SceneKita

Eden najtežjih trenutkov se je zgodil, ko je Apple opustil SceneKit – 3D-ogrodje, v katerem sem zgradil celoten prizor s ploščo. V tem sem postal dober. Prizor je imel metulja, ki je švignil naokoli, travo, ki se je zibala, in fizično zasnovano osvetlitev. Deloval je čudovito z minimalno porabo procesorja. Nato je Apple napovedal, da ga bo nadomestil RealityKit.

Bil sem besen. Ker pa sem bil zavezan k ustvarjanju nečesa vrhunskega in nisem imel tolerance do tehničnega dolga, sem vedel, da je treba vsako vrstico SceneKita iztrgati in zamenjati. Metulj ni preživel. RealityKit je Applov novi sinonim, vendar je veliko bolj lačen kot njegov predhodnik – nekaj, o čemer bi se nekega dne rad pogovoril z Applovim inženirjem.

Kje so stvari

Danes je Goban3D v zunanji beta različici v trgovini App Store za iOS in macOS. Ima 100-odstotno pokritost dostopnosti v vseh sedmih Applovih kategorijah dostopnosti – VoiceOver, Dynamic Type, Voice Control, Reduce Motion, Reduce Transparency, Sufficient Contrast in Differentiate Without Color. Deluje na vseh iPhonih od 3,5-palčnega SE do 6,9-palčnega Pro Max, na vseh iPadih od 9,7-palčnega do 13-palčnega in izvorno na Macu prek Catalysta. 3D-plošča je upodobljena v RealityKitu s fizikalno podprtimi materiali, ki lovijo svetlobo, kot pravi les in kamen. Na voljo je tudi čist 2D-način za situacije, ko želite preprostost ali daljšo življenjsko dobo baterije.

Nihče zunaj razvojnega procesa še ne ve, da obstaja. Ni medijske pokritosti, ni ozaveščenosti skupnosti, ni zunanjih beta testerjev. Ta objava na blogu je na nek način prvič, da o tem komurkoli javno povem.

Kaj sledi

Največja prioriteta je najti beta testerje z resničnimi potrebami glede dostopnosti – slepe igralce, ljudi s slabim vidom, motorične okvare. Aplikacija je bila zgrajena po Applovih standardih, vendar so standardi šele začetek. Potrebujem prave ljudi, ki mi bodo povedali, kaj deluje, kaj ne in na kaj nisem pomislil. Najti jih bo kot najti samoroga, vendar ne bom odnehal. Vključeni bi morali biti vsi.

Če bi radi preizkusili Goban3D ali poznate koga, ki bi mu koristila dostopna aplikacija Go, bi bil vesel, če bi se oglasil. Pošljite e-pošto na support@goban3d.com z zadevo »Beta Tester« in e-poštnim naslovom Apple ID za vaš iPhone, iPad ali Mac®. Kmalu zatem boste prejeli povabilo za TestFlight®.

To je bila najtežja in hkrati najbolj zadovoljujoča stvar, kar sem jih kdaj naredil. Od kosa lesa v univerzitetnem stanovanju do trgovine App Store – trajalo je dvajset let, a smo prišli do sem.