jueves, 8 de septiembre de 2016

Desarrollo de Apps híbridas con Ionic Framework

@uocuniversidad @ionicframework

Como os comenté a principios de año, estoy estudiando un máster universitario online en la Universitat Oberta de Catalunya (UOC).
Durante el máster he aprendido cómo realizar aplicaciones nativas para los sistemas operativos iOS y Android. Sin embargo, la asignatura que por ahora más me ha llamado la atención es una que se dedica al desarrollo de aplicaciones que basan su lógica en la capa cliente, con código fuente escrito en Javascript. En esta asignatura se ha estudiado en profundidad el framework de desarrollo AngularJS (ya tenía ganas de hincarle el diente hace tiempo), que me ha parecido increíble, aumenta la productividad de los programadores de forma brutal, y la curva de aprendizaje no es demasiado abrupta. También he aprendido bastante sobre el uso de herramientas para el desarrollo Javascript como gulp (para automatizar los flujos de trabajo), o el entorno de desarrollo WebStorm de la gente de JetBrains, o BrowserSync.
Encantado con la asignatura y a punto de finalizarla (y pensando que ya había exprimido al máximo su contenido), la última práctica se basó en el uso de Ionic Framework, esto sí que fue un descubrimiento

Qué es Ionic Framework

Ionic es un framework de desarrollo de aplicaciones híbridas (ver más sobre tipos de apps) basadas en tecnología web, de forma que se pueden utilizar en distintos sistemas operativos como iOS, Android o incluso Windows sin necesidad de reprogramarlas.
Ionic se basa en tecnologías web como HTML5, CSS3, Javascript, Sass y AngularJS. Para el acceso a las funcionalidades nativas del dispositivo, Ionic utiliza Apache Cordova o Phonegap.
Me ha parecido un framework muy intuitivo y fácil de usar (en gran parte gracias a AngularJS), además de contar con una librería de componentes visuales con aspecto muy cuidado y profesional, tal como mencionan en su web:

"Clean, simple, and functional. Ionic has been designed to work and display beautifully on all current mobile devices and platforms. With ready-made mobile components, typography, and a gorgeous (yet extensible) base theme that adapts to each platform, you'll be building in style."

En realidad, más que un framework de desarrollo al uso, Ionic se define como un ecosistema, cuenta con algunas características muy interesantes:

  • Ionic Market: Una tienda de componentes y plantillas de partida (templates) que me ha ahorrado muchas horas de trabajo. Tiene bastantes componentes de buena calidad, si vas a desarrollar algo desde cero primero echa un vistazo al market por si alguien ya ha hecho algo similar.
  • Ionic Creator: Se trata de una herramietna online de diseño visual de pantallas. La he utilizado bastante, y me ha parecido muy potente (te ahorra mucho tiempo de búsqueda en el API de los componentes visuales). 
  • Ionic View App: Esta herramienta me ha encantado. Se trata de una App disponible en los markets de los distintos sistemas operativos, que te permite visualizar tus proyectos sin necesidad de haberlos publicado. Todo un lujo para probar tus aplicaciones sin el engorro de pasar por la burocracia de la publicación o el lento despliegue nativo.

Ionic se integra perfectamente con Firebase como backend (mi alternativa preferida a Parse, que como sabéis cerró), por lo que he decidido que voy a desarrollar mi trabajo de final de máster con estas tecnologías para profundizar más en su uso, porque como os comento veo mucho futuro en ellas... ya os iré contando.



viernes, 17 de junio de 2016

Cómo escuchar los podcasts y música de tu iPhone a través del manos libres del coche

Todos los días estoy más de una hora en el coche, conduciendo hacia/desde mi trabajo. Me gusta aprovechar ese tiempo escuchando algo, ya que se trata aproximadamente del 6% del tiempo que estoy despierto los días de diario, y no me gusta la sensación de estar perdiéndolo. Normalmente voy escuchando la radio, pero en ocasiones me apetece escuchar otras cosas sobre ciencia, tecnología, etc. La mejor forma de escuchar este tipo de contenidos es a través de PodCasts.
Llevaba tiempo preguntándome si existiría la posibilidad de poder escuchar estos PodCasts que tengo en mi iPhone, directamente a través del manos libres del coche, pero hasta ahora no me había puesto a intentarlo.
Ayer, después de un rato buscando y probando aplicaciones, encontré una gratuita con la que he conseguido hacerlo. Esta aplicación, llamada AudioOverHFP, te permite escuchar cualquier audio de tu iPhone directamente a través del manos libres del coche (en realidad "engaña" al manos libres del coche para hacerle creer que estás recibiendo una llamada de teléfono, cuando en realidad estás escuchando el sonido del iPhone).
Es muy fácil de utilizar, una vez conectados con el manos libres del coche a través de Bluetooth, sólo tenéis que abrir la aplicación, activar la casilla "A2DP Blocker", seleccionar el manos libres del coche, y a partir de entonces podéis reproducir Podcasts o Música desde las aplicaciones nativas del iPhone a través de éste.

En este enlace podéis descargaros la aplicación, espero que a alguno os sea de utilidad (si es así, dejad un comentario ;-)

domingo, 21 de febrero de 2016

Probando Universe2go - Gafas de realidad aumentada para observar el cielo nocturno


Este fin de semana he estado probando Universe2go. Se trata de unas gafas de realidad aumentada que, con ayuda de un smartphone, te permiten ver el cielo nocturno y obtener información de planetas, estrellas, galaxias, etc.
Aquí podéis ver un vídeo de introducción al producto:

DESEMPAQUETADO 

A primera vista, el producto tiene muy buena pinta. Un empaquetado muy profesional, un hardware bastante cuidado, con detalles de calidad. El contenido de la caja:
  • Gafas de realidad aumentada
  • Una cinta para colgar las gafas al cuello
  • El manual de instrucciones en cinco idiomas
  • Una tarjeta con información sobre Universe2go en las redes sociales
  • Una bolsa para guardarlo todo
Aquí os dejo algunas fotos:



Una de las primeras cosas que me ha chocado ha sido que la cinta que acompaña las gafas no es elástica, sólo está pensada para colgar las gafas al cuello (al contrario de las CartonGlass de las que os hablé en su día, que permitían su uso sin necesidad de sujetarlas con las manos). El motivo está claro: si en las CartonGlass ya se notaba bastante peso en la nariz entre las gafas y el smartphone, en las Universe2go, hechas de un material más pesado y pensadas para observar el cielo durante periodos más largos, el peso sería insoportable. Aún así, si fuese el fabricante yo habría incluido también en el kit una cinta elástica para observaciones no muy prolongadas (o, por ejemplo, si te apetece observar el cielo tumbado boca arriba, de modo que el peso no recaiga completamente en la nariz).

He de reconocer que colocar la cinta que viene incluida en el paquete me costó un rato. La teoría era muy fácil: Las gafas vienen con dos sujeciones metálicas a los lados por las que introducir ambos extremos de la cinta. Hasta ahí bien... pero no se si es porque me hice un lío al colocarlas o porque venían puestas de una forma rara... el caso es que me costó (quizás hubiese estado bien un sistema similar al de las típicas gafas de bucear, con una pestaña para sujetar la cinta.


MANUAL DE INSTRUCCIONES

Os recomiendo encarecidamente que leáis el manual entero antes de intentar posicionar las gafas o arrancar la aplicación, yo traté de hacerlo leyendo el manual "por encima" y pagué las consecuencias. La lectura del manual es fundamental, pero creo que debería ser más completo (como os contaré más adelante, la configuración de las gafas fue bastante infierno, estuve a punto de tirar la toalla). El manual incluye lo básico, pero no incluye la configuración avanzada (ni alguna básica), yo finalmente tuve que acudir a la web para poder resolver los problemas que me surgieron.
Entre otras cosas, yo completaría el manual con:
  • Información sobre cómo colocar la cinta (para torpes como yo)
  • Información sobre configuración de la distancia entre ojos (más adelante os doy detalles)
  • Más información sobre la configuración inicial y el calibrado
  • Información específica para usuarios de iPhone y Android

COLOCACIÓN DEL SMARTPHONE

Lo primero que me sorprendió al tratar de colocar el smartphone en las gafas fue que no había ningún agujero para la cámara fotográfica del dispositivo. Al leer "realidad aumentada", yo pensaba que se trataba de unas gafas similares a las CartonGlass, de forma que verías el cielo nocturno a través de la pantalla del smartphone, utilizando la cámara de este.
Por el contrario, en las gafas Universe2go el smartphone se sitúa en la parte superior, y a través de un sistema de espejos se proyecta la imagen superpuesta a la imagen real (un sistema más parecido a las Google Glass, se ve la imagen superpuesta a la realidad). Me ha gustado mucho el sistema, la sensación conseguida es bastante buena (si ajustas bien el brillo en función de la luz de la zona en la que te encuentres).
También es muy original el sistema de sujeción del smartphone, utilizando una plantilla de gomaespuma precortada según el tamaño del dispositivo. Se adapta muy bien (he probado con un iPhone 5 y un iPhone 6). Lamentablemente, algunos móviles más grandes como el iPhone 6 Plus no caben. Tenéis aquí la lista de todos los dispositivos compatibles (en inglés).
Una vez ajustado, la gomaespuma tiene una pegatina detrás por si quieres dejarlo fijo (no lo recomiendo si quieres utilizar las gafas con varios dispositivos).


Es importante poner el centro del teléfono en el centro de la pantalla, si lo pegas a uno de los lados, ocurre el efecto de que con un ojo ves parte de la pantalla del otro si miras hacia la nariz.

CONFIGURACIÓN

Lo primero que hay que hacer es descargar la aplicación (yo lo he probado en iPhone, pero también hay versión para Android). Hay que tener cuidado de descargarse la aplicación "Universe2go International", ya que existen otras versiones específicas para algunos idiomas.
Al arrancar la aplicación, aparece una pantalla en la que debemos elegir uno de los dos modos disponibles:
El modo "Mapa de estrellas" es gratuito, mientras que para el modo "Planetario" son necesarias las gafas. Al entrar al modo Planetario, debemos introducir un código de licencia que viene dentro de la caja:
Los siguiente que debemos hacer es indicar si preferimos el ojo izquierdo o el derecho (se utiliza posteriormente para ver el menú de configuración y otras opciones sólo en ese ojo):
He de decir que las tres pantallas anteriores (que son las primeras que aparecen en la aplicación) me han decepcionado mucho. Su diseño es "minimalista" tirando a cutre, lo que contrasta con la calidad que había percibido hasta entonces en el hardware.
El siguiente paso es configurar la visión a través de las gafas. Esto para es lo peor del producto, con diferencia. Os cuento:
  • En primer lugar sorprende que la aplicación comienza a hablarte en inglés. Una de las principales características del producto es que contiene tres horas de información hablada sobre estrellas, galaxias, costelaciones, etc. El problema es que el audio sólo está en inglés, no está traducido al español.
  • En segundo lugar, el producto te muestra una serie de círculos para configurar la posición del smartphone en las gafas. Hasta aquí bien:
  • Pero en el manual dice que después se debería poder configurar la distancia entre pupilas, pero que en algunos modelos no es necesario por lo que no se muestra. Este ha sido el verdadero problema en la configuración: no se me mostró la configuración de la distancia entre pupilas... sin embargo al comenzar a usar la aplicación veía todas las imágenes dobles. Al principio pensé que era problema mío, que no había hecho algo bien al configurar los círculos. Navegando por los menús de la aplicación, buscando cómo poder volver a configurar los círculos... no hay manera!!!
  • Resulta que una vez calibrada la aplicación, no hay forma desde dentro de ella de poder resetearla para volverla a configurar. Después de más de una hora tratando de entender por qué veía doble, decidí ir a la web del producto. En la zona de preguntas frecuentes sobre el funcionamiento, por fin encuentro este texto:
¿CÓMO PUEDO REPETIR EL CALIBRADO DE LA PANTALLA DE MI SMARTPHONE DESPUÉS DEL PRIMER USO?
Al usar por primera vez Universe2go debes adaptar la pantalla de tu smartphone a las gafas. Si quieres repetir una segunda vez este proceso, puedes restablecer el calibrado de la pantalla en los ajustes de la aplicación. Si tienes un iPhone: Debajo de los ajustes del iPhone encontrarás diferentes aplicaciones. Escoje la aplicación Universe2go. Aparecerá el menú de ajustes de Universe2go. En el apartado “General → Restablecer calibrado” desplaza el botón hacia la derecha. El calibrado estará activado cuando el botón aparezca en verde. Inicia de nuevo la aplicación Universe2go."

Así es, para poder configurar en condiciones la aplicación en iPhone, tienes que hacerlo desde fuera de la aplicación, desde los ajustes de iPhone (de las cosas más anti-intuitivas que he visto en muchos años). Casi de casualidad, y harto ya de ver doble, descubro que se puede configurar la distancia entre ojos manualmente:

¿CÓMO AJUSTO LA DISTANCIA ENTRE LOS OJOS? ¿POR QUÉ ES IMPORTANTE?
Para adaptar el planetario a sus preferencias, debes ajustar la distancia entre los ojos.
Se realiza de la siguiente manera:
1. Mediante el calibrado de la pantalla: sigue las instrucciones para el calibrado.
2. Mediante la medición e introducción de la distancia entre los ojos: mide la distancia que hay entre tu ojos con una regla PD e introduce por separado el valor (actualmente sólo disponible para Android).

Sin embargo, dice que puedo ajustar la distancia entre ojos mediante el calibrado, cosa que no es verdad, ya que en el calibrado sólo habían aparecido unos círculos que no servían para eso. Navegando por la configuración de la aplicación (por los ajustes de iPhone), por fin doy con la solución, una opción que pone "Alivio de ojos" (creo que la traducción no es muy buena, yo habría puesto "distancia entre pupilas"):
Después de configurar la distancia entre pupilas correctamente (ayudándome de esta guía en alemán que hay en la web), todo ha ido mucho mejor. Ya veo las cosas en su sitio, y comienzo a disfrutar de la aplicación. Posteriormente he descubierto que existe una forma de configurar la distancia entre pupilas con unos cuadrados al arrancar la aplicación... pero no entiendo por qué esa opción aparece desactivada por defecto!!! (opción "Calibración Stereo"):

FUNCIONAMIENTO

Por fin, después de conseguir configurar la aplicación, comienzo a disfrutar de su uso. Cuenta con una base de datos enorme de estrellas, constelaciones, planetas, etc. (creo que esto es lo mejor de la aplicación, junto con el hardware). Además, al situarte sobre uno de ellos te cuenta información sobre su localización, historia, etc. (eso sí, en perfecto inglés). La música ambiente también es muy buena, consigue un efecto envolvente bastante logrado.
Existen varios modos de uso, uno para principiantes, y otros más avanzados que te permiten ver más objetos invisibles a simple vista. 
La configuración de la aplicación se hace mediante movimientos de cabeza. Si miras hacia abajo puedes acceder al menú principal, desde el que se pueden modificar algunas configuraciones de la aplicación (no todas, como he dicho antes). Hay un problema cuando se está reproduciendo algún audio, aunque mires hacia abajo no se puede acceder al menú (tampoco es fácil hacer el gesto para que pare el audio, se supone que es agitando la cabeza pero la mayor parte de las veces no funciona).
Una cosa que me ha gustado el efecto de ver la Estación Espacial Internacional moviéndose en tiempo real, también está muy logrado.

CONCLUSIONES

Lo peor:
  • La configuración inicial del software no es nada intuitiva
  • El acceso al menú y los gestos con la cabeza no son detectados muchas de las veces
  • Existen bastantes problemas con la traducción
    • Algunos textos mal traducidos, otros muy largos, la traducción se sale de la pantalla
    • La guía para medir distancia entre los ojos y otras zonas de la web sólo está en alemán
    • Si activas la opción "Wiki audio" te lee las descripciones de algunos objetos en alemán
  • El manual de usuario debería ser más extenso, hay ciertas dudas que no aclara
  • En mi opinión es bastante caro, el kit cuesta 99€ (puedes adquirirlo aquí).
Lo mejor:
  • El hardware está muy bien diseñado, materiales de calidad
  • La superposición de los objetos sobre la visión real está muy lograda, me ha recordado a la visión de Terminator
  • Hay un gran trabajo de documentación y recopilación de datos, tiene una base de datos enorme sobre objetos del universo
  • La música y el sonido envolvente están bien conseguidos
Como conclusión final, creo que se trata de una buena idea, bien ejecutada a nivel de hardware pero mal a nivel de software (al menos la versión para iPhone). Aún así, si eres aficionado a la astronomía o te pica la curiosidad, esta es una buena aplicación para observar el cielo, siempre que puedas permitirte gastar los 99€ que vale.

jueves, 4 de febrero de 2016

Facebook cierra Parse : El backend como servicio


Recientemente se ha anunciado en el blog de Parse que van a dejar de dar servicio, cerrando por completo sus servidores en el plazo de un año. Es una verdadera lástima, pues en mi opinión era un servicio muy útil y bien estructurado... pero lamentablemente parece que no rentable, a pesar de que Facebook la adquiriese hace tres años por 85 millones de dólares.

Al igual que la creación del App Store de Apple supuso un cambio exponencial en la facilidad para distribuir y monetizar aplicaciones, en mi opinión Parse y su modelo de "backend como servicio" supuso un gran avance en la facilidad para crear aplicaciones para dispositivos móviles sin tenerse que preocupar por la capa de servidor (desarrollo, infraestructura, mantenimiento, etc.).

Tengo que reconocer que no hace mucho tiempo que conocía el servicio (sólo desde que empecé mi master en la UOC hace unos meses), sin embargo me había enganchado a él.

Afortunadamente y a pesar de la noticia, estos chicos hacen las cosas bien... hasta irse lo hacen por la puerta grande. Han desarrollado una completa guía de migración, han creado una herramienta de migración de la base de datos a cualquier base de datos MongoDB, y han liberado como Open Source el código de su servidor.

Actualización: Reacciones y alternativas a parse en este enlace

miércoles, 13 de enero de 2016

Mi experiencia estudiando online en la @UOCuniversidad


Después de un tiempo sin publicar ningún post (he estado bastante atareado ya que he sido padre recientemente), hoy quería compartir con vosotros  mi experiencia estudiando un máster universitario online en la Universitat Oberta de Catalunya (UOC).
Como sabéis, fui profesor vocacional en la Universidad Carlos III durante bastantes años hasta que los recortes en educación hicieron mella, pero en esta ocasión me está tocando estar al otro lado del pupitre (virtual). Ya durante mis años de docente participé en algunos proyectos para la apertura de materiales educativos online (como OpenCourseware), pero nunca había experimentado en mis carnes el estudio de algo tan serio como un master, de manera completamente no-presencial.
A continuación os listo algunas de las conclusiones que estoy sacando de la experiencia, que me apetecía compartir con vosotros:

  • La primera y para mí más reveladora conclusión es que se puede estudiar online sin ninguna deficiencia en el aprendizaje. La experiencia, arropada por su puesto por una plataforma de estudios muy trabajada, es muy similar a la que puede tenerse estudiando de forma presencial.
  • Otra gran ventaja de estudiar online es la versatilidad de horarios, ya que eres tú el que adaptas los tiempos disponibles para el aprendizaje (mucho más personalizado, y muy útil si estás trabajando).
  • Los materiales de clase son muy completos, algunas asignaturas incluyen incluso vídeos explicativos.
  • Las clases están muy orientadas, en ningún momento he sentido la sensación de encontrarme estudiando sólo, hay bastante participación a través de los foros y tablones habilitados en cada asignatura.
  • Respecto a los profesores, supongo que como en todas partes: me estoy topando con algunos muy buenos (aquellos a los que está claro que les gusta enseñar y que no hacen esto por dinero), y algún otro con el que no estoy demasiado contento. El motivo de mi descontento no son los resultados en su asignatura (por ahora estoy sacando buenas notas), sino porque creo que podría haber aprendido muchos más de haber tenido un profesor que se trabajase más la asignatura (tengo alguno que hace lo mínimo: enunciados de las prácticas poco trabajados y ambiguos, respuestas genéricas en los foros que no resuelven las dudas planteadas,  falta de conocimiento en la materia que enseña, no incluye comentarios en las notas que evalúa, etc.).
  • La evaluación de las asignaturas es eminentemente práctica. Al tratarse de un máster bastante práctico, no existen exámenes presenciales. Esto, que está muy bien para el aprendizaje, también puede considerarse un inconveniente, ya que no existe ninguna traba a la posibilidad de pagar a alguien para que realice las prácticas, obteniendo un título de máster oficial sin realmente haberlo estudiado.
  • Por último, confieso haberme sentido algo engañado con el despliegue de las asignaturas. Cuando me matriculé del máster, existían algunas con nombres muy atractivos que me hubiese gustado cursar. Sin embargo, y una vez metido en faena, me percaté de que las asignaturas se iban "desplegando incrementalmente", lo que básicamente significa que todos los años no están disponibles todas las asignaturas, sino que año a año se van incluyendo hasta completar la oferta formativa. Esto, que dicho así suena muy bonito, a efectos prácticos significa que si quiero cursar una asignatura que me atraía mucho tengo que esperar hasta febrero del 2018. Una lástima, porque no pienso tardar tanto en terminar el máster. 

Como todavía me faltan bastantes créditos para finalizar, según vaya avanzando con los estudios os iré contando qué tal me va, aunque por ahora, en general, estoy bastante satisfecho con la experiencia.