Cómo hacer una extensión para Android en 4 pasos

29 junio, 2013 7:13 por

Como muchos ya saben, Mozilla tiene en este momento una competencia de desarrollo de complementos llamada Amp Your Firefox. Los que trabajamos en el equipo de complementos estamos muy emocionados con la competencia, y hay varias categorías en las que se puede competir. Sin embargo, estamos especialmente interesados en las categorías de extensiones para móvil. Queremos aumentar nuestra colección de complementos para Android, para que los usuarios de Android puedan disfrutar de lleno la experiencia completa de personalización que es Firefox.

He estado trabajando en hacer que varios de mis complementos sean compatibles con Android (claro, no puedo competir porque soy un empleado, además de juez de la competencia). Así que quería dar un vistazo general sobre lo fácil que es convertir un complemento o crear uno nuevo con soporte para Android, desde la perspectiva de alguien que ya ha trabajado en complementos para Firefox de escritorio.

  1. Agregar soporte para Android en el manifest. Esto significa agregar soporte para <em:id>{aa3c5121-dab2-40e2-81ca-7ea25febc110}</em:id> en la lista de aplicaciones, y agregar <em:bootstrap>true</em:bootstrap> para que no requiera un reinicio.
  2. Montar el script bootstrap.js. Este script reemplaza la mayoría de lo que hace el overlay en una extensión convencional. Es responsable de crear y luego limpiar cualquier elemento que la interfaz que agregue la extensión, además de ejecutar cualquier código de inicio que sea necesario. El chrome.manifest se carga normalmente, así que todo el XUL, CSS y archivos de localización adicionales se pueden utilizar. Es importante tener en mente que la interfaz en Android está limitada al área de contenido web (por el momento), pero igual se pueden cargar archivos XUL usando URLs chrome o about. El XPCOM y JS Modules funcionan igual que siempre.
  3. Montar el script bootstrap.js, pero esta vez en serio. En la mayoría de los casos se va a querer que el mismo complemento funcione en Android y también en el escritorio, así que el bootstrap debe saber manejar bien múltiples ventanas y limpiar cualquier cambio que haga inicialmente. Mossop escribió un muy buen artículo con ejemplos que se pueden reutilizar para asegurarse que están cubiertos los casos de instalación, desinstalación, apertura y cierre de ventanas.
  4. ¡Leer la documentación! ¿Debería ser el primer paso? … tal vez, yo qué sé. Todo se puede encontrar aquí: Extensions for Android. De especial interés es el objeto NativeWindow, para los aspectos de la interfaz que son específicos para Android, y el objeto BrowserApp, que es una especie de reemplazo del objeto gBrowser / el elemento <tabbrowser>.

Me sorprendió lo sencillo que fue crear complementos para Android, y portar algunos de los que ya había creado. Los complementos de tipo userscript funcionan muy bien porque en general no requieren interfaz gráfica fuera del área de contenido, así que portar mi AMO Admin Assistant fue prácticamente trivial. Extensiones con una interfaz más compleja, como Remote XUL Manager y Click-to-Play Manager requirieron un poco más de pensamiento. Ambas abren una ventana XUL, que terminé convirtiendo en una página about para la versión móvil. También creé el Mobile Installer exclusivamente para Android, que fue una muestra que hice para una presentación, pero utiliza un poco de los APIs específicos para Android que ofre el NativeWindow. Es también una herramienta útil para instalar más fácilmente los archivos de complemento una vez que se copian al dispositivo.

Todos los vínculos del párrafo anterior apuntan a Github, en caso que les interese ver el código y reutilizar algo para sus propios complementos. Espero que esto los motive darle una oportunidad a los complementos para Android, y que tomen el reto de Amp Your Firefox. Solo necesitan inscribirse en la competencia y recibir aprobación del complemento en AMO para ganar una genial (t-shirt, camiseta, polera, remera, etc.), así que no sé qué tanta motivación adicional se necesita ;).

The following two tabs change content below.

jorgev

AMO Product Manager at Mozilla
Jorge trabaja para el equipo de complementos de Mozilla, y se dedica a Mozilla Hispano y Mozilla Costa Rica en su tiempo libre. Actualmente está encargado del blog de Mozilla Hispano Labs.

Compartir artículo:

  • ¡Participa!

    Firefox Friends »
    Agrega botones de Firefox en tu sitio web y comparte tu amor por Mozilla Firefox.
    Ayuda a otros usuarios en Twitter.
    Colabora con la comunidad »
    En Mozilla lo importante son las personas. Descubre cómo puedes colaborar.

    Boletín Firefox

    Suscríbete al boletín de novedades de Firefox.

  • Descargas

    Descarga los programas de Mozilla.

    Lo más visto

    cc-by-sa