Contenido
Este artículo apareció por primera vez en el número 226 de la revista .net, la revista más vendida del mundo para diseñadores y desarrolladores web.
Érase una vez, crear aplicaciones para diferentes dispositivos móviles era una pesadilla. Primero tendrías que aprender Objective C para crear tu aplicación para iPhone. Entonces tendrías que empezar de nuevo para crear aplicaciones para Android, BlackBerry, Palm, Symbian… aprendiendo un idioma completamente nuevo cada vez.
Pero la plataforma de código abierto PhoneGap cambia todo eso. Todo lo que necesita hacer es codificar su aplicación en HTML, CSS y JavaScript y PhoneGap la convertirá para que funcione en diferentes dispositivos. Incluso te da acceso a funciones nativas como la cámara, los contactos y el acelerómetro de un teléfono. Y Brian LeRoux, del creador de PhoneGap, Nitobi, está ansioso por difundir las buenas noticias.
Pero si bien es el evangelista más conocido de PhoneGap, no es un fanático y acepta con alegría que otras herramientas pueden satisfacer mejor sus necesidades. “Filosóficamente no hay martillo de oro”, dice. "Es un buen hábito para cualquier desarrollador de software investigar todas las posibilidades por sí mismo". Él recomienda, por ejemplo, que investigues Corona si eres un desarrollador de juegos. “Pero si es un desarrollador web y desea reutilizar parte de su lógica, si no la mayor parte, de su sitio web móvil, o si está buscando crear un sitio web móvil y luego mejorarlo progresivamente a una tienda de aplicaciones , entonces es cuando PhoneGap tiene mucho sentido ".
Y una razón más por la que tiene sentido radica en sus orígenes: fue creado por desarrolladores, para desarrolladores, para solucionar un problema del mundo real.
Orígenes
Nos dimos cuenta de que podíamos codificar una vez y luego implementarlo en tres plataformas. A partir de ahí simplemente se convirtió en una bola de nieve
LeRoux prepara la escena. "Cuando se lanzó el iPhone, golpeó como una tonelada de ladrillos", recuerda. "Nos dimos cuenta de que este era el futuro de la web y queríamos involucrarnos".
Sin embargo, cuando se lanzó el SDK de iOS en el verano de 2008, el equipo de desarrolladores de Nitobi tuvo problemas con él. “Lo miramos y pensamos: '¡Mierda, Objective-C!'”, Admite LeRoux.
Así que Nitobi envió a dos de sus desarrolladores, Rob Ellis y Brock Whitten, a iPhoneDevCamp con el objetivo explícito de tratar de encontrar una manera de conectar WebView con JavaScript y código nativo. Allí conocieron a Eric Oesterle y el truco original se hizo realidad.
"Empezamos a leer y luego nos dimos cuenta de que podíamos llamar a JavaScript desde Objective-C, que es una idea bastante poderosa", explica. "Pero no pudimos volver a llamar.
"Sin embargo, al final, estos tres tipos encontraron un truco en el que podían ir a través de la URL, y podían interceptar una llamada a través de la URL desde el código nativo y usarlo para llamar de forma dinámica a cualquier código nativo que quisieran".
Triunfantes, regresaron a Nitobi aturdidos por la emoción, dice LeRoux. "Tenían un pequeño sprite de Super Mario que podían arrancar en la pantalla que estaba en el acelerómetro", se ríe. “Esto fue un gran problema porque era una página web. Y las páginas web no tenían acelerómetro en ese momento ".
Luego, gracias a una pequeña rivalidad dentro de la oficina, las cosas empezaron a ponerse interesantes. “Uno de nuestros otros desarrolladores, Joe Bowser, un experto en Android, dijo: 'Podría hacer esto en Android'. Y logró armar un prototipo en una semana. Luego, para no quedarse atrás, Dave Johnson, nuestro CTO en ese momento, que estaba enamorado de su BlackBerry, armó un prototipo sobre eso. Y fue entonces cuando nos dimos cuenta de que teníamos algo que podíamos usar para escribir código una vez y luego implementarlo en tres plataformas. A partir de ahí, simplemente se convirtió en una bola de nieve ".
Cuando Nitobi abrió el proyecto en GitHub, explotó. “Eso fue un gran catalizador para nosotros”, dice LeRoux, “porque hizo que la barrera para las contribuciones fuera prácticamente nula. Toneladas de personas se inclinaron hacia el proyecto ".
Próximos pasos
Un año después, la compañía iba de conferencia en conferencia, capacitando a las personas para usar PhoneGap. Pero quedaba un gran dolor de cabeza.
“Se necesitarían tres o cuatro horas para que la gente se pusiera en marcha”, recuerda LeRoux. “Y no fue porque no fueran buenos programadores. Fue solo porque es un gran dolor de cabeza configurar todos estos SDK ".
Entonces, para acelerar las cosas, Nitobi creó PhoneGap Build, un servicio en la nube construido sobre PhoneGap que le permite comenzar a construir su aplicación de inmediato sin tener que descargar nada. (Actualmente está en versión beta pública y es gratis para una aplicación privada y un número ilimitado de aplicaciones de código abierto).
Todo iba bien. Pero de repente, la comunidad de código abierto tomó aliento. Adobe se había hecho cargo de Nitobi.
Adquisición corporativa
“Cuando los fundadores descubrieron que Adobe estaba interesado en nosotros, en el verano de 2011, fue un shock”, admite LeRoux.
Pero el gigante de la web estaba ansioso por tranquilizar las mentes. "Vinieron a todos nosotros, y todos hablamos de ello, y fue como una gran sesión de terapia de grupo", sonríe.
"Pensamos en Adobe como esta empresa que creó Flash, era como una empresa web de generación anterior, algo empresarial, y realmente no un gran jugador en la nueva generación de código abierto", explica LeRoux. “Así que todas esas eran grandes preocupaciones para nosotros.
“Pero lo hablamos y resultó que estaban construyendo un equipo WebKit increíble y estaban muy involucrados en la Apache Software Foundation, y parte de lo que querían que hiciéramos era continuar con el impulso del código abierto de PhoneGap. Así que todas esas preocupaciones se abordaron prácticamente de inmediato ".
A medida que las cosas avancen, PhoneGap seguirá siendo de código abierto; PhoneGap Build, que incluye código propietario, será la forma en que Adobe monetice su adquisición. Pero en términos prácticos, ¿cómo se han beneficiado Nitobi y PhoneGap de la nueva relación?
“Bueno, antes del día de la adquisición éramos 23 personas”, responde LeRoux. “De ellos, tendríamos cuatro trabajando a la vez en el proyecto de código abierto. Pero los miembros restantes del equipo siempre estarían trabajando en acuerdos de consultoría. Así es como ganamos nuestro dinero. Después de Adobe, todo el equipo está ahora dedicado al proyecto de código abierto. Entonces PhoneGap ha tenido un gran aumento de mano de obra ".
Por supuesto, hay muchas otras organizaciones involucradas en contribuir a PhoneGap, incluidas IBM, Microsoft, RIM y Nokia. “Pero ahora Adobe está aportando a mucha más gente, estas otras empresas también están interesadas en contribuir más”, se entusiasma LeRoux.
Semillas de destrucción
A medida que la historia fuera de línea mejore, estas tiendas de aplicaciones desaparecerán
El futuro parece brillante, entonces, para PhoneGap. ¿O lo hace? Por el contrario, enfatiza LeRoux, el futuro final de PhoneGap radica en su propia destrucción.
“La visión original, y esto es algo por lo que me cagaría, aunque lo diría de todos modos, es que el propósito del proyecto PhoneGap es que PhoneGap deje de existir”, explica LeRoux. “Creemos que la web debe ser una plataforma de primera clase, por lo que este es un objetivo de PhoneGap, proporcionar una implementación de referencia para los navegadores. Y está funcionando.
“Implementamos la geolocalización antes que cualquiera de los navegadores móviles. Y acelerómetros. Y todas estas otras API de dispositivos, estas cosas que son verdaderamente multiplataforma.
“A medida que la historia fuera de línea mejore un poco, estos conceptos de las tiendas de aplicaciones se desvanecerán”, predice LeRoux. “Porque todos escribirán aplicaciones web interoperables que se alojan donde diablos quieran. Google y Mozilla, por supuesto, están creando un prototipo de estas ideas utilizando el manifiesto de caché y sus conceptos de tienda de aplicaciones web abierta. Así que definitivamente vamos a tener un futuro en el que no se necesite PhoneGap ".