Ah, 2010. El año en que Apple lanzó el iPad, pero el protagonismo se lo robó otra cosa: Antennagate. Poco después del lanzamiento del iPhone 4, los usuarios descubrieron que al sostener el teléfono en un conector típico para una llamada telefónica, la cantidad de barras que se mostraban para indicar la intensidad de la señal inmediatamente disminuía dramáticamente.
Apple respondió de varias maneras, incluido Steve Jobs sugiriendo que los usuarios sostenían el teléfono incorrectamente, pero el problema se solucionó cambiando solo 20 bytes de código…
Desafortunadamente para Apple, el iPhone 4 es mejor recordado no por su excelente diseño, sino por una controversia que se salió completamente de control.
Apple se vio obligada a ofrecer a los compradores una funda protectora gratuita y a resolver una demanda colectiva. Posteriormente, la compañía mejoró la antena del iPhone 4S, pero el verdadero problema no estaba en el hardware, sino en el software.
Apple dijo en ese momento que había cometió un error en la fórmula responsable de mostrar el número de barras de intensidad de la señal.
Tras investigar, nos sorprendió descubrir que la fórmula que utilizamos para calcular la cantidad de barras de intensidad de señal que se muestran es completamente incorrecta. En muchos casos, nuestra fórmula muestra por error 2 barras más de lo que debería para una intensidad de señal determinada. Por ejemplo, a veces mostramos 4 barras cuando solo deberíamos mostrar 2. Los usuarios que ven una caída de varias barras cuando agarran su iPhone de cierta manera probablemente se encuentran en un área con muy baja intensidad de señal, pero no lo saben porque estamos mostrando por error 4 o 5 barras. Su fuerte caída en las barras se debe a que, en primer lugar, sus barras altas nunca fueron reales.
No estábamos seguros de qué cambió Apple, pero el ingeniero y diseñador de software Sam Henry Oro ahora lo ha entendido.
Descargué ambos firmwares y comencé a investigar. En el marco de CoreTelephony, encontré un binario prometedor: CommCenter. Al mirar las cuerdas, sentí que ahí estaba la fórmula de la barra.
El cálculo real es extremadamente simple. Al convertir la intensidad de la señal a barras, CommCenter carga cada umbral desde la memoria y lo compara hasta encontrar el rango correcto. Este código no es el problema.
Es. Esta es la tabla de búsqueda.
Cuando trazas esto en un gráfico puedes ver como los valores están un poco jodidos ya que los valores son realmente optimistas. La mayoría de las veces verás entre 4 y 5 barras. Pero cuando lo captamos, como la caída es tan brutal, vemos una caída catastrófica de 5 a 2 bares.
En la versión 4.0.1 cambiaron estos valores para hacerlos mucho más fluidos. Mapeado en un gráfico, puedes ver que se necesita mucho para pasar de 5 a 0 barras. Es más difícil ver 5 barras, pero es más difícil soltarlas. Así que ahí lo tienes. 20 bytes.
Publicó un gráfico que muestra el antes y el después de las caídas en el número de barras mostradas.
En un poco de psicología divertida, Gold señala que Apple también aumentó la altura de las barras para que las intensidades de señal uno y dos no se vean tan mal.
Es una mirada divertida a una parte interesante de la historia de Apple.
Accesorios destacados
Foto por Brett Jordán seguro desempaquetar