La actualización que rompe en silencio la app de ayer
Actualiza el sistema o una biblioteca central y una app nativa que enviaste hace un año puede sencillamente dejar de funcionar. Una API se deprecia, un modelo de permisos cambia, una ruta de render se elimina —y la compilación que estaba bien en producción ahora falla o se niega a arrancar. La plataforma avanzó y tu programa viejo no recibió el aviso.
Un runtime de mini-programa adopta la promesa opuesta. Es versionado y el contrato es que un programa publicado contra una biblioteca base anterior siga abriéndose en runtimes más nuevos. El runtime lleva la superficie de compatibilidad; el programa no tiene que perseguir cada cambio de plataforma para seguir vivo.
Qué es realmente la compatibilidad versionada
El runtime expone una biblioteca base con versión mayor.menor.parche y la plataforma garantiza que runtimes más nuevos sigan ejecutando programas construidos contra bibliotecas base más viejas. WeChat lo documenta explícitamente: las capacidades nuevas se limitan por versión mínima de biblioteca base y los desarrolladores comprueban compatibilidad con wx.canIUse o wx.getAppBaseInfo en lugar de asumir que una función existe. La vista general de la biblioteca base de Alipay+ y el registro de cambios de Tuya declaran el mismo principio: las bibliotecas base "mantienen la compatibilidad hacia atrás" al añadir capacidades. WeChat incluso incluye una biblioteca base estable actual y una anterior en cada lanzamiento de cliente, para que los programas viejos sigan inicializándose.
En las apps nativas nada de esto está garantizado: una actualización del sistema es un cambio rupturista que llega a los usuarios aunque la app estuviera lista o no.
Dónde se nota la diferencia
| Paso | App nativa | Runtime de mini-programa (versionado) |
|---|---|---|
| Nueva versión de plataforma | Puede romper compilaciones viejas | La biblioteca base vieja sigue corriendo |
| API deprecada | Fallo o arranque bloqueado | Detectada por característica, elegante |
| Comprobación de compatibilidad | Por dispositivo, manual | canIUse / comparación de versiones |
| Garantía de estabilidad | Ninguna a nivel de sistema | Biblioteca base retrocompatible |
| Vida del programa | Atada al soporte del sistema | Atada al contrato del runtime |
El resultado es que un programa publicado no tiene una fecha de caducidad ligada al próximo lanzamiento de plataforma. Sigue abriéndose hasta que el desarrollador decide retirar el soporte.
Por qué un contrato supera la esperanza
Un runtime versionado significa que el desarrollador puede publicar una vez y confiar en que el programa siga corriendo a medida que la plataforma evoluciona, con detección de características para lo más nuevo. También significa que el piso de biblioteca base es una configuración, no una apuesta: los desarrolladores eligen la versión mínima y el runtime hace el resto. El mismo programa sigue vivo tras la actualización del宿主, en cada super-app que respete el contrato de biblioteca base.
Cómo lo aplica Cross Mini App
Cross Mini App da a los programas un runtime versionado con un contrato de compatibilidad explícito: un programa construido contra una biblioteca base anterior sigue abriéndose en runtimes más nuevos, con detección de características para lo nuevo. Publicas un programa; el runtime garantiza que seguirá arrancando tras la próxima actualización. Dejas de volver a publicar solo para mantener viva la compilación de ayer.
Esa es la diferencia entre una app que caduca con el sistema y un programa que el runtime promete mantener abierto.
Fuentes
- WeChat Mini Program — Mecanismo de actualización del runtime
- WeChat Mini Program — Compatibilidad de la biblioteca base (canIUse, comparación)
- Alipay+ — Vista general de la biblioteca base de mini-programa (compatibilidad)
- Tuya MiniApp — Registro de cambios de la biblioteca base (retrocompatibilidad)