martes, 24 de julio de 2012

Desarrollo Web para dispositivos móviles

Desde hace ya mucho tiempo me ha atraído mucho desarrollar alguna aplicación para un dispositivo móvil, la primera que hice fue en J2ME para un teléfono hace ya un par de años, pero no me convenció mucho el resultado porque era muy engorroso estar probando y la JVM en móviles era muy limitada, así que ya no seguí probando.

Pero ahora existen muchas posibilidades, hacer apps para Android, para iOS (que es más costoso $$), para Windows Phone, o una aplicación web compatible con alguno de estos dispositivos, que incluya HTML5.

Cabe aclarar que HTML5 no es el que logró que los teléfonos pudieran ver páginas web, sólo llegó a mejorar la experiencia por sus nuevos estándares, y a enriquecer la programación de aplicaciones web.

Hay varios frameworks para elegir en este campo, los que yo conozco mejor y he probado son sólo dos: Sencha Touch y jQuery Mobile, me gustan mucho y me decidí por probarlos porque no dependen de un lenguaje de servidor, por lo tanto se pueden complementar casi con cualquiera (yo prefiero usar PHP).

De esos dos, el más sencillo de implementar es jQuery Mobile (jQM), pero también tiene menos componentes que Sencha Touch (STouch).
jQM se basa en una codificación semántica y al cuando el navegador está listo, renderiza todas las etiquetas que encuentre en la página. Esto ayuda mucho porque no es necesario tener un conocimiento profundo de Javascript para poder generar nuestra página.

Sencha Touch tiene una estructura parecida a la de ExtJS, la versión para aplicaciones web de escritorio. Por lo tanto hay que tener un poco de conocimientos de POO y Javascript para no perderse mucho al principio, ya que hay muchas maneras de llegar al resultado que queremos.


Y a esto se le puede agregar que ha surgido una tecnología desde hace ya un tiempo que permite programar en Javascript y poder construír una app nativa para cada OS móvil, ya sea Android, iOS, Windows Phone, Blackberry, Palm WebOS, Bada o Symbian. Este se llama PhoneGap y utiliza un servidor apache interno para servir páginas web localmente dentro de la app. Usa una versión de Apache llamada Córdova y es muy fácil de implementar. Bueno, que sea fácil de implementar PhoneGap no quiere decir en ningún momento que desarrollar la aplicación lo sea también, ya que desde aquí no poseemos un "PHP" que nos preconstruya nuestra página, todo lo debemos hacer con Javascript para el entorno, JSONP para peticiones a servidores de datos, CSS para el estilo y alguno que otro evento que nos brinda PhoneGap. Sólo el hecho de que no tengamos un lenguaje de servidor nos hace que debamos cambiar nuestro estilo de programación.
Tiene sus ventajas, y una de las mejores es que no hay que escribir el código para cada plataforma, sino que se desarrolla una sóla vez y luego se usa la versión de PhoneGap adecuada para cada una de las plataformas en las que queremos tener nuestra app.