Cómo veo el futuro de HTML5 y las Apps

El jueves pasado estuve viendo un hangout de #jsIO en el que varios desarrolladores hablaban de HTML5, javascript y las aplicaciones móviles.

Cuando se hablaba de la visión que tenían acerca del futuro en las aplicaciones móviles, uno de ellos hizo mención a esta viñeta de xkcd que ya vi hace un tiempo, y que realmente me apasionó, tanto por lo directa que es como por lo graciosa.

En ella se hace alusión al deseo de crear un móvil en el que todas las APP estén ya instaladas y no haya que descargar e instalar nada… sí, eso existe, se llaman aplicaciones web.

installing

No es el primer artículo -o viñeta, o similar- que habla de algo así. Realmente son muchos los que escriben cosas similares acerca de las aplicaciones web y las aplicaciones nativas.

Y es que ese es, poco más o menos, el futuro que creemos que vamos a ver. Aunque también es cierto que a veces es complicado separar lo que te gustaría que sucediera, con lo que crees que va a pasar, y en este caso es posible que se entremezclen ambas.

Yo creo -y espero- que todo termine en algo similar, de modo que podamos tener un acceso real y fluido al hardware del dispositivo y no tengamos la necesidad de desarrollar para cada una de las plataformas actuales (y las que están por llegar), y ciertamente, desde una perspectiva cercana, la web es una posibilidad y además, es una posibilidad real, existe, y no es tan lejano pensar en algo así.

Realmente ya existen soluciones similares, como Phonegap o Appcelerator, o qué me decís de Firefox OS y su ecosistema de aplicaciones… aunque aún esté verde, cosa que creo que mejorará una vez se extienda más el uso de ese sistema operativo. Aunque todas esas soluciones siempre tienen algún pero, ojalá en un futuro cercano se vayan diluyendo esos.

Por supuesto que aún hay muchas guerras que lidiar, y mucho que pulir para que todo esto pueda llegar a ser cierto. Desde el lucro de las empresas propietarias, que no querrán perder sus ingresos por las aplicaciones, hasta los desarrolladores que vivan de crear aplicaciones de pago (aunque igualmente podrían trabajar en ellas, de un modo diferente al actual, por medio de usuarios de pago de la aplicación), pasando por la seguridad, fiabilidad y control de calidad de las aplicaciones…

Yo, a pesar de ser alguien poco optimista y más bien realista, sí creo que todo esto sucederá tarde o temprano. Lo creo, y lo espero. El día que eso suceda todos vamos a ganar, tanto usuarios como desarrolladores.

 

Imagen de Flickr @jenny-pics

Recursos y herramientas para ayudar con el desarrollo web actual

Cuando los desarrolladores pensamos en una web actualmente, no podemos evitar pensar en varios puntos importantes, que muchas veces nos traen de cabeza.

Por enumerar algunos, se me ocurren:

  • Responsive (/adaptive)
  • Internet Explorer (sí, lo he nombrado… sí)
  • Rapidez

Cuando digo Responsive, me refiero a que cuando lanzamos una web a día de hoy, ya lo hacemos con previsión a que pueden visitarla desde diferentes dispositivos, y eso se debe de pensar antes de empezar el desarrollo, ya en el mismo diseño hay que tenerlo planteado.

Cuando menciono al Internet Explorer (no lo haría 3 veces delante de un espejo…) lo hago porque muchas técnicas actuales no funcionan con algunas de sus versiones, e incluso a veces funcionan a medias, y hay que tenerlo claro nada más empezar, para intentar que la web sea compatible con cuantos más navegadores mejor, y… tendremos que llamar navegador al Internet Explorer.

Y cuando me refiero a rapidez, no me estoy refiriendo a una optimización extrema, porque para empezar no aconsejo enfrentarse a eso, esa parte mejor dejarla para el final, cuando todo está correcto. Pero aún así, siempre piensas un poco en qué usar, y cómo usarlo, para ganar unas décimas de segundo en el resultado final.

Pues bien, vamos a enumerar una serie de recursos o herramientas para ayudar a lidiar con estos puntos, y con muchos otros.

Ayudas generales acuales (con actual me refiero, enfocado al mundo responsive):

  • Webdev check list: Listado mediante checks, para que no se te olvide nada antes de lanzar. Es bastante completo, aún así siempre pueden faltar (o sobrar) algunos de ellos.
  • Patternlab: Me encanta, los creadores son Brad Frost y Dave Olsen, a los que he nombrado en varios posts anteriores. La idea principal va ligada al Atomic design, que básicament es partir de elementos muy pequeños, e ir creciendo hacia arriba, agrupando esos elementos conformando unidades más grandes, así hasta el site completo.
  • Modernizr: Es una librería javascript, pero para mi va algunos pasos más allá, porque consigue allanar el camino entre los navegadores que aún no soportan ciertas funcionalidades, y otros que sí. Diría más, incluso, para mi es el camino (al menos actualmente) a aplicar una mejora progresiva (progressive enhancement) correctamente.
  • This is responsive: Recopilatorio enorme de ayudas, recursos, noticias y patrones para ejecutar un Responsive más allá de lo correcto. Os lo recomiendo, es una fuente inagotable de conocimiento al respecto.

Para ayudar con navegadores y versiones de los mismos:

  • Modernizr HTML5 Cross browser Polyfills: Listado enorme de fallbacks y polyfills para conseguir un HTML5 robusto en todos (o casi) los navegadores.
  • Browserhacks: No tiene mucha más explicación, el título es bastante claro 😉
  • Can I Use: Absolutamente genial. Buscas una propiedad, un atributo, una funcionalidad, y automáticamente tienes un listado de los navagadores, y versiones de los mismos, que lo soportan o no lo soportan, e incluso si lo soportan parcialmente.
  • Selectivizr: Otra de las librerías útiles cuando el objetivo es conseguir compatibilidad de CSS3 con Internet Explorer.

Para desarrollo enfocado al móvil:

  • Mobile Web Best Practices: Su nombre ya lo dice todo, interesante recopilación separada entre experiencia de usuario, desarrollo, diseño, estrategia, etc…
  • Mobile Site Audit Checklist: Esto realmente fue un post que leí hace un tiempo de moz.com, pero que me pareció extraordinario. Son una serie de checks (enfocados al visionado móvil) a repasar una vez tienes el sitio web listo.

Para los emailings:

¡Y hasta aquí por hoy!

Introducción a RESS

La semana pasada dimos nuestra opinión sobre cómo decantarnos por desarrollar una web o una APP nativa, y hoy vamos a centrarnos en ir un paso más allá del Responsive mediante el RESS.

Lo primero es tener claro que reponsive es un subconjunto de adaptive, y que por tanto quedarse tan solo en el Responsive cuando el objetivo es desarrollar una web multidispositivo puede ser un error, o más bien es quedarse en la superficie del objetivo. Porque recordemos que responsive se basa en el conjunto de técnicas de frontend (HTML + Javascript + CSS) que se encargan de modelar el HTML, darle estilos y funcionalidades. Y ahí está la clave: frontend. Por tanto con RESS vamos a ir ese paso más allá para que el responsive de nuestra web multidispositivo sea más robusta.

Seguir leyendo