Multiple APK o cómo la fragmentación podría tener los días contados

Multiple APK o cómo la fragmentación podría tener los días contados

Desarrollo y programación

Multiple APK o cómo la fragmentación podría tener los días contados

26 julio, 2011 11:40

Como todos sabemos hace unos días el Market de Android recibió una actualización muy interesante. Esta actualización no es más que la posibilidad de tener diferentes APK de nuestra aplicación publicada bajo el mismo perfil. Esto, de cara al usuario podría parecer algo insignificante, pero realmente es de lo mejor que le podía pasar el Market de cara al desarrollador y por tanto algo de lo que todos saldremos beneficiados.


¿Por qué? Ahora vais a averiguarlo.

Hasta ahora, cada aplicación que aparecía en el Market solo incluía un único archivo APK. Podríamos decir que se trata de una distribución universal de la misma app que se entregaba a todos los dispositivos elegibles para todas las versiones de Android, tamaños de pantalla, hardware y otras características que se tenían en cuenta.

El infierno de las 2 aplicaciones

Ahora bien, ¿qué pasa cuando yo tengo una aplicación X, que en su momento la hice para la versión 1.5 de Android, la siguen usando un montón de usuarios de 1.5 y ahora me gustaría actualizarla para poder aprovechar todas las novedades de la plataforma? Hasta ahora lo que se hacia era publicar dos aplicaciones independientes, que aunque eran similares para el usuario, realmente para el Market de Android no tenían nada que ver. Cada aplicación en Android solo puede tener una única huella, una única ruta, no pueden existir dos aplicaciones que tengan la misma huella (ej: com.elandroide.libre). Si alguien (o nosotros mismos) intentase subir la versión de nuestra aplicación X para los usuarios de Android 2.1 sin machacar la versión 1.5, el Market de Android no nos dejaría porque ya existe otra aplicación que usa la huella com.elandroide.libre. Para solucionar dicho problema tendríamos que inventarnos otra huella diferente, por ejemplo : com.elandroide.libre.peronoeselmismo.

Hasta aquí no habría problema alguno, al usuario realmente le da igual: cuando fuera al Market le saldrían dos aplicaciones de El Androide Libre y se instalaría la correspondiente a su dispositivo (1.5 o 2.1), pero realmente no sabría si se esta instalando la ultima versión de la app (la que es la bomba usando lo nuevo de Android), a no ser que en el comentario el programador lo indicara. Eso de cara al usuario, es sencillo, pero para el programador es un infierno. Simplemente firma su sentencia de muerte y le vende su alma al diablo:

  • la aplicación no es la misma en el Market de Android (son 2 diferentes)
  • el código del programador tampoco es el mismo: esa huella que vimos antes también afecta la estructura de carpetas del código fuente, por lo que mantener la aplicación se vuelve el doble de costosa, sobre todo cuando queremos actualizar funcionalidades a todas las versiones de la aplicación
  • Faltaría mencionar también que sin esta opción de múltiples APK, al tener la aplicación repetida y con diferentes huellas, como había comentado, para el Market de Android realmente son dos aplicaciones diferentes. Por lo que las estadísticas que recibimos de las mismas en el panel de desarrollador serán independientes y tendremos que ir sumándolas a mano para saber que mi app solo la usan dos mataos, haciendo el trabajo de análisis también más pesado.

Múltiples APK, la solución

Podría extenderme… lo sabemos. Pero para nuestra suerte, ahora podremos tener bajo el mismo perfil de aplicación diferentes versiones de la misma según la  versión de Android, los tipos de pantalla y mas características de hardware. Por lo que ahora, dentro del mismo perfil de la app, tendremos las versiones Android 1.5, 2.1,2.3.4, para tablets, para reproductores de música, para teles, microondas, lavadoras y mucho más.

Todo esto será transparente para el usuario pero mucho más beneficioso para el programador porque entre otras cosas, el código fuente de la misma seguirá siendo el mismo (con la misma huella) y actualizar entre las versiones de la aplicación será mucho más fácil. Con esta herramienta en mano, el desarrollador ahora no tendrá que sacrificar plataformas ni usuarios y mucho menos dispositivos, y todo esto podrá gestionarlo desde el mismo perfil de la aplicación.

Repetimos, para el usuario será transparente: cuando busque en el Market la app de El Androide Libre, solo le saldrá una pero el market le mostrará el APK que mejor se adapte al teléfono del usuario que hace la solicitud según su Android.

Esta opción (Multiple APK), para no variar, es algo que Google debió ofrecer en el Market de Android desde el primer momento. Esta característica es algo que se le ha llorado mucho a Google entre muchas otras, algunas de ellas las hemos visto aplicadas de una u otra forma, pero como siempre va muy lento y los desarrolladores y usuarios seguimos pagando esa incapacidad de Google para responder a los requerimientos de los usuarios y desarrolladores.

Pero lo mas interesante de esta opción es la posibilidad que tiene de combatir la fragmentación de código que siempre ha existido en Android de cara al programador…Con un pelín de implicación todos los usuarios dispondrán de su aplicación completamente funcional para todos los dispositivos.

 

Con más detalle

Si queréis tener mas detalles de esta funcionalidad lo mejor es leerse tranquilamente la info en la referencia del programador.
http://developer.android.com/guide/market/publishing/multiple-apks.html

Allí podemos leer que publicando nuestra aplicación usando la opción de Multiple APK podremos:
– Soportar diferentes formatos de compresión de textura OpenGL con cada APK.
– Soportar configuraciones de pantalla diferentes con cada APK.
– Soportar versiones de plataforma diferentes con cada APK.
Allí también nos dicen que:
– Generalmente debes utilizar múltiples APKs de tu app para soportar diferentes dispositivos pero sólo cuando el APK es demasiado grande (más de 50 MB).
– Usar un solo APK para soportar diferentes configuraciones de dispositivos es la mejor práctica , porque facilita las actualizaciones y las hace mas simples y claras para los usuarios pero también hace la vida de los programadores mas fácil evitándoles complicaciones de desarollo y publicación.

Así que no queda otra mas que disfrutar de esta genial opción y tener en cuenta que cuando digan que en Android tenemos 300 000 aplicaciones realmente podría ser el triple porque con estos nuevos perfiles… podremos tener varios APK de nuestra aplicación :)

 

Artículo escrito por Yeradis