Sigo con temas pendientes que quería tratar por aquí.
A principios de mayo supimos que Apple estaba enviando emails a los desarrolladores de apps subidas a la App Store informándoles que si sus apps no habían sido actualizadas en los últimos 3 años, y no lo hacían en Mayo, la app sería retirada del market (EN).
El tema me parece muy interesante ya que tanto Apple, como las numerosas quejas que desde entonces han llegado desde diferentes colectivos de desarrolladores, plantean un problema de gran envergadura y de difícil solución:
¿Es necesario que el software se actualice cada cierto tiempo para seguir siendo operativo?
Vamos a ponernos en la piel de todas las partes.
El software debería estar continuamente actualizado
Por un lado, es cierto que la postura de Apple parte de una serie de recomendaciones que además van alineadas tanto con el paradigma de cliente-servidor vigente en la actualidad, como con la propia ideosincrasia del software.
El software nació, sin ir más lejos, de la necesidad de «actualizar el hardware», que por sus propias limitaciones físicas, era mucho menos actualizable.
De esta manera, gracias al software podemos tener un dispositivo de otro tiempo que ofrece funcionalidades actuales.
Hasta aquí, todos de acuerdo, ¿verdad?
Entonces llega el desarrollo móvil, y con él, el paradigma de apps, que no dejan de ser desarrollos de terceros que corren en una serie de capas específicas de un sistema operativo (otro software) que además corre en otra capa por encima de…
Todo esto, para colmo, en un mercado que está profundamente integrado dentro de las mecánicas de evolución incremental (hay que sacar al mercado uno o dos nuevos móviles, ergo tenemos que ofrecer «alicientes» para que los usuarios quieran comprarlos).
Gracias (o debido) a esta fórmula, los sistemas operativos de nuestros dispositivos cambian de versión prácticamente cada año. Y aquellos que no lo hacen, reciben las suficientes actualizaciones menores como para que haya elementos significativos de su interfaz/diseño/usabilidad/funcionalidades que con el tiempo vayan cambiando, agregándose unas, quedando obsoletas otras, etc etc…
Esto sin olvidar que una de las principales recomendaciones que todos los que nos dedicamos a la seguridad hacemos continuamente es… el mantener todos los sistemas actualizados siempre. Tanto el sistema operativo, como también las herramientas y apps utilizadas. Ya que precisamente, gracias a esas actualizaciones, se corrigen fallos de seguridad que se descubren, casualmente, a posteriori de ser explotados, y que por razones obvias, no pueden parchearse antes.
Parece entonces lógico pensar, por todo lo comentado, que la decisión de Apple es la adecuada.
Si tienes una app, aunque sea gratuita, tienes un compromiso para con tus usuarios de mantener aunque sea un mínimo de mantenimiento. Y tres años se nos puede antojar un tiempo más que adecuado de margen como para exigir que ese desarrollador, aunque sea, se moleste en volver a subir una versión nueva de la app.
Versión que, ojo, no tiene por qué cambiar en nada a la versión anterior. Con modificarle el manifest.json de turno y volver a enviarlo, a priori (profundizaré ahora más en detalle en esto último, que es importante), debería ser suficiente.
El software que FUNCIONA no debería tocarse (a no ser que fuera estrictamente necesario)
En el otro lado, como decía, están los detractores de esta medida.
Entre sus defensas, está el hecho de que el ciclo de vida actual del software, y por ende de las actualizaciones, es cada vez más corto. Y no siempre debido a las necesidades reales del hardware y la funcionalidad, sino a criterios puramente de negocios, como los anteriormente comentados.
También tenemos otro hecho, y es que sobre todo en entornos corporativos, como ya expliqué en profundidad en un artículo publicado hace tiempo, no siempre es posible y mucho menos recomendable instalar nuevas actualizaciones.
Cuando una herramienta forma parte de un sistema más complejo de funcionalidad, la actualización de dicha herramienta puede romper el flujo de trabajo de toda o parte de la organización, causando más problemas que los riesgos que se asumen cuando no hay actualizaciones instaladas.
Y, por último, está también la postura de que para qué demonios voy a tener que actualizar mi app de, por ejemplo, linterna, si lo único que necesita esta app para funcionar es acceso a la API de cámara para activar el LED, y esto no ha cambiado ni en tres años, ni en los últimos 10.
Si nuestra aplicación es muy sencilla, y su usabilidad es tan limitada que los cambios estéticos o de diseño que ha sufrido en estos últimos tres años el sistema operativo ni siquiera nos afectan (ya no hablamos de funcionalidad, sino de usabilidad…), ¿por qué forzarme a volver a subir una nueva versión, que de seguro será la misma con el paripé extra de aparentar que hubo algún cambio?
Sobre esto último, y aquí engancho a lo último que dije en el anterior punto, es donde creo que se ve la verdadera razón de que Apple empuje a los desarrolladores en esta línea.
Está claro que esto limpiará fácilmente apps que ya no tienen soporte por parte del desarrollador de turno. Algunas de ellas totalmente útiles hoy en día, pero también muchas otras que ya no funcionan o ya no tienen sentido en un parqué de dispositivos como el actual. Lo que conlleva menos cantidad de apps de dudosa calidad en la App Store, y por tanto, menos complejidad para moderarla.
Pero es que además hay otra razón de peso para hacerlo, y es que gracias a ello, está forzando indirectamente a todos los desarrolladores a cumplir los nuevos estándares de avisos de privacidad de sus apps. Por si no lo sabes, desde hace ya poco más de un año en iOS es necesario que las apps, además de pedir los permisos oportunos al usuario, demuestren que hacen uso de los mismos ya que en caso de no tenerlos la app no funcionaría como tal.
Con esto se buscaba, precisamente, eliminar esa costumbre tan dañina del desarrollo de apps de pedir todos los permisos posibles sean o no necesarios, con vistas a quizás, en un futuro, monetizar el acceso a según qué servicios.
El problema es que esta nueva política no entra en vigor hasta que el desarrollador actualice la app. Por eso, muchísimas apps dejaron de actualizarse hasta que les fue estrictamente necesario hacerlo. Y al hacerlo, tuvieron entonces que cumplir los nuevos estándares.
Pero estoy segurísimo que muchos otros no han actualizado desde entonces (y lo mismo desde bastante antes), por lo que al tener que actualizar ahora por este otro supuesto motivo, estarán en la obligación de pasar los nuevos controles, cerrando el grifo a este tipo de tácticas.
Una jugada magistral por parte de Apple, se mire por donde se mire :).
________
¿Quieres conocer cuáles son mis dispositivos de trabajo y juego preferidos?
Revisa mi setup de trabajo, viaje y juego (ES).
Y si el contenido que realizo te sirve para estar actualizado en tu día a día, piensa si te merece la pena entrar en el Club Negocios Seguros y aprovecharte de todo el contenido exclusivo que publico para los miembros.