Como saben, algunos autores en YouTube están extremadamente insatisfechos con las condiciones que ofrece esta plataforma. Los desarrolladores de aplicaciones de Android ahora luchan una batalla similar en la plataforma Google Play. Intentaré explicar en 20 minutos qué está mal con Android.Android alguna vez fue considerada la mejor plataforma móvil: control, personalización, funciones avanzadas, multitarea real, soporte incluso para casos raros de uso y libertad de los desarrolladores. Era la mejor plataforma para la ciencia y la educación: en primer lugar, las herramientas de desarrollo son gratuitas y multiplataforma, y en segundo lugar, Android era un sistema operativo muy flexible que no interfería con la experimentación con conceptos innovadores y la manipulación de los equipos. Ahora todo esto está desapareciendo rápidamente.
Anteriormente, los principales lanzamientos de Android traían nuevas características que deleitaban tanto a los desarrolladores como a los usuarios. Pero en algún momento ya tenía miedo de los anuncios de nuevas versiones, y todavía estoy buscando la fuerza (heh) en mí mismo para mirar la lista de cambios y recomendaciones para desarrolladores para la última versión. Y las nuevas versiones no son la única razón de la molestia: los cambios en las políticas de Google Play Store también son siempre divertidos de leer.
Para empezar, hay un pequeño contexto: antes de Android, experimenté con Windows Mobile 6.xy cambié a Android después del lanzamiento de la versión 4.2: recuerdo que 4.4 se anunció poco después y permaneció en mi primer teléfono Android por el resto de su vida. Android fue el primer y hasta ahora el único sistema operativo móvil en el que invertí seriamente en el desarrollo de aplicaciones.
Comencé a jugar con el desarrollo de aplicaciones poco antes del lanzamiento de 6.0 (Marshmallow), por lo que no era un veterano y no puedo decir que vi la evolución de Android desde el principio y, por supuesto, no observé todo el proceso desde el punto de vista del desarrollador. Sin embargo, una década de cambios pasaron ante mis ojos, incluso durante los experimentos con Windows Mobile presté atención a lo que estaba sucediendo en el campamento de Android, aunque todavía no tenía suficiente dinero para estos teléfonos (todo fue para "computadoras de mano" en Windows Mobile) . Entiendo perfectamente lo inconveniente que era antes para los usuarios y desarrolladores de Android 4.x: yo mismo podía probar estas versiones y mis aplicaciones tenían que admitirlas.
Desuso de API y pérdida de compatibilidad con versiones anteriores
Con cada versión de Google cambia la API de Android. Estas interfaces determinan en gran medida lo que las aplicaciones pueden y no pueden hacer. Además, algunas API requieren permisos que usted acepta durante la instalación, y algunos de estos permisos se pueden configurar al inicio (la idea es que la aplicación se
degrade con gracia al proporcionar funciones separadas sin obtener algunos permisos). Esto se aplica a la lista de contactos o la API de ubicación.
Las versiones más recientes de Android incluyen API más nuevas. Anteriormente, casi no se realizaban cambios en las API antiguas de versiones anteriores. Es decir, las aplicaciones antiguas continuaron funcionando normalmente.
En los últimos dos o tres años, las nuevas versiones de Android han comenzado a eliminar y modificar las API antiguas. Por ejemplo, si una aplicación desea permanecer activa en segundo plano, ahora debería mostrar una notificación constante. La idea suena bien en teoría, pero al final constantemente tienes varias notificaciones, una para cada aplicación en segundo plano. Por ejemplo, dos notificaciones se cuelgan constantemente en mi teléfono: una para la grabadora y la otra para el ecualizador. Una de mis propias aplicaciones también debería mostrar constantemente una notificación en Android 8 / Oreo y versiones más recientes para un escaneo confiable en segundo plano de Wi-Fi para establecer la apariencia del usuario en ciertos lugares.
En la futura versión de Android 10 / Q, las capacidades de la aplicación se limitarán aún más. Google
elimina el acceso al portapapeles ,
eliminando toda una categoría de aplicaciones para administrar el portapapeles (historial de fragmentos copiados, sincronización con otros teléfonos, computadoras, etc.). Actualmente, todas las aplicaciones pueden acceder al búfer sin permisos especiales. Puede resolver el problema agregando una solicitud de permiso, en lugar de eliminar por completo la API.
Las aplicaciones ya no pueden encender y apagar el Wi-Fi , lo que impide, por ejemplo,
apagar automáticamente
el Wi-Fi mientras viaja en automóvil. Google piensa
prohibir completamente que las aplicaciones accedan a archivos arbitrarios en el "almacenamiento externo" (tarjetas SD y el área de memoria interna de su teléfono, que contiene capturas de pantalla y fotos, MP3, imágenes para emulación, etc.).
Tenga en cuenta que eliminan todas estas cosas por "seguridad", pero podrían simplemente protegerse con una solicitud de permiso, como con una lista de contactos o ubicación. En cambio, decidieron eliminar por completo las características. Incluso si los usuarios lo desean, las aplicaciones no podrán implementarlas. Es probable que las aplicaciones existentes sean aplastadas por los usuarios, porque las personas no entenderán por qué el programa dejó de funcionar repentinamente después de actualizar a una nueva versión maravillosa de Android.
Estos son cambios significativos. Las aplicaciones normales pueden dejar de funcionar. Los desarrolladores tendrán que actualizarlos para implementar soluciones alternativas menos convenientes, implementar mensajes explicativos, etc. Esto requiere tiempo, esfuerzo, dinero, etc., que podrían gastarse en solucionar otros problemas o desarrollar nuevas funciones. Para equipos pequeños o desarrolladores independientes, especialmente aquellos que hacen esto en su tiempo libre, puede ser muy difícil ponerse al día con las últimas tendencias de Google. Por ejemplo, debido a un cambio en la operación de los servicios en segundo plano, durante el verano pasé la mayor parte de mi tiempo libre rediseñando la arquitectura de una de las aplicaciones, lo que a su vez condujo a nuevos errores que tuvieron que ser diagnosticados, corregidos, etc., para hacer la aplicación mencionada mostró una notificación y funcionó correctamente en las últimas versiones de Android.
Incluso sin el lanzamiento de nuevas versiones de Android, Google puede enviar API antiguas a la chatarra: por ejemplo, establecer nuevas reglas para Play Store al prohibir las aplicaciones con ciertos permisos. Recientemente, Google ha prohibido los permisos para acceder a SMS y registros de llamadas: en consecuencia, todas esas aplicaciones se expulsan del directorio.
Dichas aplicaciones aún se pueden instalar directamente desde el APK o directorios alternativos, pero no desde Play Store. En la práctica, resulta que de muchas aplicaciones en Play Store, la funcionalidad clave se corta. Por ejemplo, la grabadora ya no puede indicar el número de teléfono en las grabaciones de audio, y las aplicaciones de automatización ya no pueden usar mensajes SMS como desencadenante de acciones. Dado que el 99% de los usuarios descargan aplicaciones de Google Play, esta funcionalidad ahora está prohibida y está disponible solo para una minoría muy absoluta de usuarios que saben cómo sortear estas restricciones.
Google Play Store es YouTube para desarrolladores de aplicaciones.
Los desarrolladores de Play Store se sienten cada vez más como creadores de contenido para YouTube, donde los cambios en las políticas ocurren repentinamente y sin previo aviso. En YouTube, los productores siempre temen que el contenido sea desmonetizado por alguna razón: esto se decide mediante un sistema opaco y totalmente automatizado, además de responder a las quejas de los titulares de derechos de autor. Play Store ahora también tiene que monitorear constantemente por qué nuevas razones pueden eliminar repentinamente su aplicación o bloquear la cuenta de desarrollador, junto con todas las otras cuentas que Google considera involucradas:
Y estos son solo ejemplos aislados de ni siquiera las historias más "aterradoras" que se publican cada dos días en r / androiddev. En la correspondiente "categoría" docenas de historias sobre cada tema. A veces, casos similares aparecen en Hacker News. Parece que Google trata la prohibición de cuentas y la desinstalación de aplicaciones de Play Store con la misma frivolidad que los moderadores de juegos en línea, quienes, por la menor razón, prohíben a los jugadores por sospecha de fraude. Para la mayoría de los jugadores, los juegos en línea son solo entretenimiento, a diferencia del desarrollo de aplicaciones de Android. Surge la pregunta obvia: ¿qué hacer con las personas que han sido prohibidas?
Ahora entiendo que la analogía con YouTube es terrible. Verá, YouTube generalmente recibe advertencias. No existe tal cosa que despertó y de repente descubrió que su cuenta estaba prohibida. Los autores de videos generalmente tienen la oportunidad de capitalizar el drama al comunicarse con los usuarios. La audiencia generalmente simpatiza con ellos, mientras que los desarrolladores de aplicaciones lidian con la indignación de los usuarios que no tienen idea o no quieren saber por qué tenemos que eliminar de manera masiva la funcionalidad o reducir el rendimiento de nuestras aplicaciones. Por ejemplo, el desarrollador de la popular grabadora ACR, después de eliminar el permiso para acceder al registro de llamadas, se
enfrentó a malas críticas, abusos y malas palabras de miles de usuarios enojados , y esto es después de una extensa advertencia de campaña de los próximos cambios (como usuario de ACR, desinstalé la versión de Play Store e instalé a través de XDA Labs, una versión sin ataduras que conserva la funcionalidad anterior).
Para los desarrolladores independientes y las pequeñas empresas, el desarrollo de Android se ha vuelto más riesgoso que nunca. Hoy comenzaré a trabajar en el proyecto, y seis meses después, cuando prepare la primera versión, los cambios en la política del catálogo no permitirán que se publique o afecten gravemente la funcionalidad ... además del párrafo anterior sobre API, que se vuelven obsoletos y cambian la semántica, lo que requiere un soporte constante del código, para mantenerse al día con las últimas versiones.
Si seguiste los enlaces anteriores, entendiste algo más: Google realmente carece de soporte para usuarios de personas reales, y si sus bots respondieron tan bien como el Asistente de Google ... Si no son bots, sino personas, entonces la diferencia no se siente: Escupieron respuestas de plantilla. Es ampliamente conocido que la mejor manera de resolver problemas con la inclusión en Google Play es llamar la atención de un empleado de Google en las redes sociales.
Parece que el nivel de soporte de Google depende del ruido que hagas en las redes sociales. Y esta es una correlación exponencial, porque mucho ruido no es suficiente para obtener un nivel moderado de soporte; Necesito levantar un ruido gigante. Este es un problema con la mayoría de los servicios de Google, especialmente si no está utilizando G Suite (aparentemente, los desarrolladores de aplicaciones no se consideran "clientes pagados" cuando se trata de soporte). Una de las cosas que me gustaría regular a nivel estatal, por supuesto, es la obligación de tales megacorporaciones de proporcionar soporte real a los usuarios.
Aunque la analogía de YouTube probablemente fue errónea, hay otro paralelismo aquí: muchos creen que en los últimos años YouTube ha estado haciendo cambios en los modelos y algoritmos de negocios, favoreciendo a autores grandes y conocidos y haciéndolo más difícil para los más pequeños. Creo que estamos viendo una tendencia similar en Google Play Store: solo tenga en cuenta que la popularidad de la aplicación o su "nivel" no debe estimarse por la cantidad de descargas o usuarios activos, sino por la cantidad de comisiones para Google de la publicidad y las compras en el juego.
"Android es de código abierto"
"Android es de código abierto" se convirtió en una broma hace cinco años. Aunque el Proyecto de Código Abierto de Android (AOSP) todavía existe, muchos componentes que son realmente importantes para los usuarios finales y los desarrolladores están cada vez más cerrados.
Las aplicaciones de Google pueden hacer cosas que son casi inaccesibles para aplicaciones de terceros, debido a su estrecha interacción con el hipopótamo patentado, que es Google Play Services. Esto es especialmente notable en la aplicación de Google en sí, así como en el Asistente de Google y el Iniciador de Google (Google Start).
Falta mucho en el ensamblaje de AOSP, y muchas aplicaciones, incluida la mía, tendrán problemas con el funcionamiento normal. Los proyectos de "eliminación de errores" de Android han desarrollado alternativas gratuitas para muchas de las funciones de Google Play. Pero el hecho de que la comunidad tenga que desarrollar estas alternativas y que sean esenciales para el lanzamiento de las aplicaciones más populares muestra que, en la actualidad, Android puede considerarse gratuito, excepto como una distribución de Linux.
AOSP en sí está controlado efectivamente por Google. Este proyecto es importante porque define API comunes para las diferentes "versiones OEM" de Android, de modo que podamos desarrollar para Android, no para "Samsung Android" o "Nokia Android". Pero qué API implementar y cuáles excluir depende totalmente de Google. Lo mismo ocurre con la arquitectura general del sistema, el modelo de seguridad, etc. Esto significa que Google puede inclinar el AOSP en cualquier caso, eliminar funciones y transferirlo a componentes propietarios lo que quiera.
Obviamente, la implementación de funciones importantes a través de Google Play y la vinculación del sistema operativo a los componentes de Google es importante para mantener el control sobre los "ensambladores OEM". El efecto positivo para los usuarios y desarrolladores es que las funciones y las correcciones de seguridad están disponibles incluso en dispositivos que no reciben actualizaciones de OEM o reciben actualizaciones solo para su versión de Android, pero no para una nueva. El efecto negativo es que estos cambios durante la noche pueden afectar incluso versiones anteriores de Android. Esto queda totalmente a discreción de Google, así como las restricciones de la aplicación en Play Store.
Parece que Google solo abre el mínimo necesario de Android, cuánto es necesario para que el sistema operativo funcione en dispositivos OEM. No llegamos al punto extremo principalmente porque los OEM más grandes tienen suficiente influencia para evitar esto. Siento que si Google pudiera hacer de Android un sistema completamente cerrado, lo haría. Curiosamente, lo que cambiará en el futuro sistema operativo Fuchsia.
Seguridad en detrimento de la funcionalidad.
Google tiene dos excusas para los cambios en las políticas de Android y Google Play: "seguridad" y "experiencia del usuario", esta última incluye "duración de la batería". No estoy seguro de para quién Google ha estado desarrollando su "experiencia de usuario" en los últimos años, pero ciertamente no para "usuarios experimentados" como yo. Sin embargo, hablemos primero de seguridad.
Las medidas de seguridad deben ser proporcionales a lo que protegen. Con cada versión de Android, vemos un énfasis creciente en la seguridad: por ejemplo, arruinar un teléfono se vuelve más difícil sin un firmware personalizado, que inicialmente incluye la funcionalidad de superusuario. Podemos concluir que Google está actuando por el bien. Pero es fácil ver que, con el pretexto de la seguridad, se deniegan ciertos permisos, como los registros de llamadas y el acceso a mensajes, o se eliminan las API, incluido el acceso al almacenamiento externo.
Fortalecer las medidas de seguridad tiene sentido, porque almacenamos cada vez más información valiosa en nuestros teléfonos: desde información privada "anticuada" hasta datos biométricos, como huellas digitales, escaneos faciales y retinas. Por supuesto, Google y otros probablemente estén más preocupados por proteger el acceso a los sistemas de pago, las claves DRM, etc.
Antes de terminar nuestra discusión sobre seguridad, hablemos un poco sobre la experiencia del usuario: esta es otra excusa popular para restringir o eliminar por completo ciertas funciones. Si el 1% de las personas usa alguna función que es demasiado complicada (o incluso "insegura"), a menudo se simplifica ... y el 1% mencionado anteriormente permanece con un sistema que ya no admite su caso de uso. ¿No suena tan mal? Pero se requiere que Google repita este proceso con la frecuencia suficiente al lanzar nuevas versiones (para que los empleados puedan recibir sus bonos), cada vez que vincula las manos de otro 1% de los usuarios, y ¿cuál será el resultado? Probablemente solo la función de ver anuncios (obviamente, anuncios de Google). No necesitas llamar, ¿verdad? Al final, el interlocutor puede llegar a ser un estafador, atraerlo a un esquema de ingeniería social o algo así ...
Es difícil combinar una seguridad sólida con una buena experiencia de usuario. Parece que las notificaciones de permisos tampoco proporcionan. Probablemente sea más fácil eliminar los permisos por completo que darles a los usuarios una opción.
De hecho, todo se reduce a la elección del usuario. Android solía permitir un pequeño sacrificio de seguridad a cambio de aplicaciones más potentes e innovadoras que iOS. Anteriormente, podía ejecutar 10 aplicaciones en segundo plano y poner la batería en medio día, pero ahora, si quiero hacer esto, tendré que mirar 10 notificaciones actuales. Solía poder intercambiar archivos entre aplicaciones como en el escritorio, pero, aparentemente, esto también es un insulto a la buena seguridad. Solía poder escanear redes Wi-Fi cada minuto, pero en Android 9 incluso esto se limitó a unos pocos escaneos por hora, matando algunos casos de uso normal, incluido mi proyecto de graduación. Afortunadamente, en la universidad podemos simplemente pretender que la última versión de Android es la octava.
Las tarjetas inteligentes, incluidas las tarjetas SIM, se inventaron para contener la parte protegida de los sistemas. Autenticación, certificación: todas las funciones de seguridad deben realizarse allí para que un sistema grande permanezca menos seguro y más flexible. Pero en algún momento de las últimas décadas, varias compañías decidieron que sería mejor (¿tal vez para una "experiencia de usuario"?) Transferir importantes operaciones de seguridad al procesador de la aplicación, incluidos los sistemas de pago sin contacto.
SafetyNet . ? , - , , …
, , Google APK. , , .
, «» , , YouTube . , — « ». , , ? Android, , , .
Android ( Google , ), . . iOS Apple, « »: , . , . . , , : 2 , , , .
iOS , Android, . , AOSP Android - , Apple. Android . , - Android . «» , iOS « » , « » — , .
Android . Windows Phone / Windows Mobile - , , , «» Microsoft. Microsoft , WP/WM, ( ), , , . , , Google; iOS , iOS .
Si incluso un gran jugador con bolsillos profundos, como Microsoft, no puede imaginar una tercera plataforma móvil, entonces, ¿qué podemos decir sobre los intentos menos ambiciosos, como Firefox OS? Aquí el resultado es bastante predecible. También tienen un problema adicional al encontrar hierro para correr. Desafortunadamente, no puede tomar y cambiar el sistema operativo en su teléfono, como en una computadora. En 2015, ya me quejaba de la falta de estandarización en el hardware de los teléfonos inteligentes . Es realmente interesante leer ese artículo cuando Android 4.4 era la última versión y ver cómo ha cambiado mi percepción de Android.También se debe tener en cuenta que una alternativa exitosa a Android definitivamente debería ejecutar aplicaciones de Android, posiblemente a través de la capa de compatibilidad. En cierto modo, Android estableció el estándar para las aplicaciones, al igual que IE6 dictaminó los estándares web de la peor manera hace 15 años. ¿Alguien dijo antimonopolio ?Últimos pensamientos
, Google Android — — , , Apple , Android. , Apple , Google , Android iOS, , , , .
Google Play Store, , , . , . Google «» API , , , , . .
Android. , . , Android, Android,
Android .