Quindici anni dopo, il mistero dei 20 byte che salvarono l’iPhone 4 è stato svelato
Correva l’anno 2010. Apple aveva appena lanciato l’iPad, ma i riflettori si spostarono rapidamente sull’Antennagate. Poco dopo l’arrivo dell’iPhone 4, gli utenti scoprirono che impugnando il telefono in un modo del tutto normale, il numero di tacche del segnale scendeva drasticamente.
Apple reagì in vari modi, e tra questi rimase celebre la frase di Steve Jobs, che suggerì agli utenti che “stavano tenendo l’iPhone nel modo sbagliato”. Ma il problema venne risolto semplicemente con soli 20 byte di codice.
Purtroppo per Apple, l’iPhone 4 è oggi ricordato più per quella controversia che per il suo design, all’epoca considerato uno dei migliori mai realizzati. La vicenda costrinse l’azienda a offrire gratuitamente un bumper case ai clienti e a chiudere una class action con un accordo legale.Con l’iPhone 4S, Apple migliorò l’antenna, ma il problema era dovuto al software e non all’hardware.
Apple spiegò all’epoca di aver commesso un errore nella formula che calcolava il numero di tacche di segnale da mostrare sul display.
“Dopo un’indagine, siamo rimasti sorpresi nel scoprire che la formula che utilizziamo per calcolare quante barre di segnale mostrare è completamente errata. Spesso, la nostra formula mostra erroneamente due barre in più rispetto al segnale reale. Ad esempio, a volte mostriamo quattro barre quando dovremmo mostrarne solo due. Gli utenti che notano un crollo improvviso di più barre quando impugnano l’iPhone in un certo modo, si trovano probabilmente in un’area con segnale molto debole, ma non lo sanno perché mostriamo erroneamente quattro o cinque barre. Il loro calo improvviso è dovuto al fatto che le alcune barre non erano reali fin dall’inizio.”
All’epoca nessuno sapeva esattamente cosa Apple avesse cambiato nel firmware. Oggi, a distanza di quindici anni, il software engineer e designer Sam Henry Gold ha finalmente scoperto la verità.
“Ho scaricato entrambi i firmware e ho iniziato a curiosare. Nel framework CoreTelephony ho trovato un binario interessante: CommCenter. Analizzando le stringhe, ho capito che era lì che si trovava la formula delle barre.”
Gold ha scoperto che la formula in sé era piuttosto semplice: il sistema caricava le soglie di segnale dalla memoria e le confrontava fino a trovare l’intervallo giusto. Questa parte non era il problema.
“Il problema era la tabella di riferimento. Tracciandola su un grafico, si nota subito che i valori erano troppo ottimistici. La maggior parte delle volte vedevi quattro o cinque barre, ma appena impugnavi il telefono, la caduta era così netta che passavi da cinque a due in un istante.”
Con iOS 4.0.1, Apple modificò quei valori rendendo la curva molto più dolce.
“Mappando i nuovi valori su un grafico, si nota chiaramente che è necessario un segnale molto più forte per passare da cinque a zero tacche. È più difficile vedere cinque tacche, ma anche più difficile perdere improvvisamente tutto. Ed eccoli lì: venti byte.”
Gold ha anche pubblicato un grafico che mostra la differenza tra prima e dopo, con una transizione visibilmente più graduale.
Gold ha notato che Apple aumentò anche l’altezza grafica delle barre, in modo che una o due tacche non sembrassero più così “deboli” agli occhi degli utenti.