domingo, 18 de agosto de 2013

Review: una semana con Firefox OS

Después de su desembarco en España y Polonia, Firefox OS ha llegado aquí a Venezuela (y a Colombia) con la operadora Movistar.
Yo aproveché que mi mamá quería renovar su viejo Nokia 2118, para hacerme (o hacernos, jeje) con un Alcatel One Touch Fire. Y hoy, después de una semana de uso, vengo a escribir un poco de que va Firefox OS.
Si bien a lo largo del review comparo Firefox OS con Android e iOS, que son las otras plataformas de las que dispongo y puedo opinar, no es del todo válido compararlos debido al estado temprano de desarrollo en el que se encuentra Firefox OS.
Bueno, el equipo que poseo es el Alcatel One Touch Fire, de hardware bastante modesto. Sería más recomendable el Geeksphone Keon (teléfono de desarrollo oficial) si se busca gama baja, pero este cumple muy bien el propósito.

Datos del Equipo de Prueba

  • CPU: Qualcomm Snapdragon MSM7227A (Cortex-A5) @ 1GHz
  • GPU: Adreno 200 (enhanced)
  • Memoria ROM/RAM: 512MB (160MB para aplicaciones), 256MB
  • Pantalla: TFT 3.5″, resolución 320×480
  • Conectividad: Wi-Fi, Bluetooth, GPS, 3G
  • Sensores: Proximidad, Iluminación, Rotación
El OT Fire monta un procesador común de gama baja, usado en otros dispositivos como el LG Optimus L5 o el Sony Xperia J, con su correspondiente GPU.
Cualquiera diría que queda corto de memoria, pero Firefox OS no necesita de tanta memoria (tanto ROM como RAM) para funcionar bien. La pantalla tiene una calidad aceptable, y la conectividad y sensores son los mínimos requeridos para Firefox OS.

¿Firefox OS? ¿Eso se come?

Para los que no están muy enterados, Firefox OS (originalmente llamado B2G o Boot 2 Gecko) nace por una iniciativa de Mozilla y Telefónica de crear un sistema operativo para móvilesbasado en tecnologías web. La meta era crear un sistema abierto, ligero, fluido y amigable para los desarrolladores.
Después de aproximadamente año y medio de desarrollo, y de haber pasado por algunos dispositivos de prueba, vio la luz con los dos primeros dispositivos comerciales: ZTE Open yAlcatel One Touch Fire. Estos vienen con la versión 1.0.1 de FxOS, aunque la última versión estable es 1.1.0 (disponible ya para dispositivos de prueba, para comerciales a final de año) y la1.2.0 está en desarrollo.

Zorros de fuego, androides verdes y pingüinos parecen llevarse bien

La rapidez con la que se desarrolló la primera versión de FxOS se debe a algo muy importante: su Kernel Linux es una versión reducida del Kernel Linux de Android.
Y cuando digo esto, es porque de hecho está basado en la versión 3.0 del Kernel compatible conAndroid ICS, o lo que es más, también es compatible con los drivers de esa versión.
Es decir, que al estar basado en Android 4.0, es compatible con la aceleración por GPU y todos los drivers/módulos para esa versión (como Swap o zRAM).
De hecho, si se disponen de los conocimientos y drivers necesarios, es posible portar Firefox OSa dispositivos que traen Android (y viceversa).
De los más potentes como el Nexus 4 o Galaxy S2, hasta los más simples como el LG Optimus L5 (por cierto, ya fue portado para estos y el código está listo para compilar en Github).
Se puede acceder a la terminal de Firefox OS mediante el ADB (Android Debugging Bridge), y ejecutar comandos tan comunes como cat o ls (Linux, al fin y al cabo).

La estructura del sistema

El sistema está conformado por tres partes esenciales:
  • Gaia: esta es la interfaz de usuario de Firefox OS, basada por completo en HTML5, CSS3 y JavaScript, lo que la hace muy pero muy modificable. Todo lo que hacemos en ella es procesado por Gecko.
  • Gecko: les sonará el nombre. Es el motor encargado de renderizar a Gaia (que es, claro, como una página web) y gestionar las WebAPIs y permisos de las aplicaciones. También controla la seguridad del sistema.
  • Gonk: contiene el Kernel Linux, drivers y componentes de la Capa de Abstracción de Hardware (HAL).

La primera impresión es importante

Animación de inicio de Firefox OS.Animación de inicio de Firefox OS, la cola del zorro se mueve como fuego :)
Cuando inicias por primera vez el sistema, te das cuenta de lo ligero que es en realidad. Vez unas animaciones de inicio sencillas pero atractivas, y (por lo menos en el OT Fire) el tiempo de inicio es de unos 40 segundos.
Tan pronto termina de iniciar se ve la pantalla de bloqueo con un reloj, la operadora, y una pestaña en la parte inferior. Deslizamos hacia arriba la pestaña y se ven dos botones: un acceso rápido a la cámara y un botón para desbloquear.
Tocamos este último, y con una animación estilo fade-in aparece el escritorio.
Pantalla de bloqueo.Pantalla de bloqueo.

Botones de cámara y desbloqueo.Botones de cámara y desbloqueo.
El escritorio tiene tres partes: a la izquierda, la “búsqueda dinámica” (luego explico de que trata); un espacio vacío con un reloj en el centro (supongo que para ver claramente el fondo de pantalla); y a la derecha están todas las aplicaciones instaladas.
El escritorio recuerda mucho a iOS, aunque predominan iconos redondos bastante particulares.
Búsqueda dinámica.Búsqueda dinámica del lado izquierdo.

Pantalla central, limpia con su reloj.Pantalla central, limpia con su reloj.

Aplicaciones instaladas.Aplicaciones instaladas.
Si deslizamos la barra de estado hacia abajo, aparece un centro de notificaciones muy parecido al de Android: fecha, operadora, lista de notificaciones, un botón para quitarlas todas, y abajo unos botones para activar y desactivar conexiones y abrir el menú de ajustes. Todo esto, como dije antes, hecho con HTML5 + CSS3 + JS.
Area de notificaciones. Abajo se ve el contador de datos y los ajustes.Area de notificaciones. Abajo se ve el contador de datos y los ajustes.

Apariencia: ni la bella ni la bestia

Al adentrarnos un poco más vemos que la apariencia de las aplicaciones no es muy diferente a lo que estamos acostumbrados. Una barra de título, con botones para volver a la pantalla anterior o ejecutar acciones; y el resto de la pantalla donde se muestra el contenido de la aplicación.
La combinación de colores predeterminada es naranja/gris con blanco, pero los desarrolladores pueden modificar los recursos en sus aplicaciones para crear estilos diferentes.
Si bien no es una apariencia revolucionaria, permite varias de las mismas opciones que en otros sistemas: listas, pestañas, menús de opciones, barras inferiores, scrollbars, búsqueda, etc. Aunque si es verdad que tiene algún fallo de diseño que afecta el uso del sistema.
Aplicación de teléfono.Aplicación de teléfono.

Ajustes del sistema.Ajustes del sistema.

Aplicación de cámara.Aplicación de cámara.

Galería de imgénes.Galería de imágenes.

Reproductor de música.Reproductor de música.

Calculadora.Calculadora.

Calendario.Calendario.

El navegador Firefox, no podía faltar.El navegador Firefox, no podía faltar.

La línea entre aplicaciones web y empaquetadas

Este punto es importante. Por defecto, Firefox OS incluye las aplicaciones esenciales en un smartphone: agenda de contactos, SMS, reproductor de música, cámara, galería, calculadora, tienda de apps, mapas (Nokia HERE Maps, por cierto), Twitter, Facebook y hasta un medidor de consumo de datos (que está integrado al área de notificación, aunque allí sólo se ve el consumo de datos móviles).
Peeero, hay aplicaciones como Twitter y Facebook, que no se encuentran instaladas sino que son aplicaciones Web. Incluso si vamos a Firefox Marketplace, solo podremos instalar eso: un acceso directo a la versión móvil de la página.
Es un poco decepcionante sabiendo lo fácil que sería para ellos convertir esas páginas móviles en aplicaciones (añadir unos archivos, modificar un poco la página para que acceda a las APIs del sistema y añadir soporte para appcache con HTML5 o IndexedDB para los tweets). La cosa es igual incluso con algunos juegos, y otras aplicaciones.
Lo que sucede es que en Firefox OS hay 3 tipos de aplicaciones:
  • Aplicaciones Web: son aplicaciones comunes y corrientes, que no piden permisos más allá de los de HTML5 (como para interectuar con la pantalla, o incluso la appcache).
  • Aplicaciones con privilegios: aplicaciones con permiso para acceder a las WebAPIs de Firefox OS, y para ello deben ser firmadas y descargadas del Marketplace.
  • Aplicaciones certificadas: como las privilegiadas, pero vienen preinstaladas en el dispositivo. También pueden tener aún más permisos, y aprovecharse para interactuar con el sistema directamente.
Como ejemplo de las primeras están los juegos y las apps de Twitter y Facebook. Para las segundas, podría ser un Explorador de archivos (necesita permiso para leer o modificar contenido de la tarjeta SD). Y para la tercera, puede ser la aplicación de consumos, que viene preinstalada, está integrada con Gaia y también obtiene información del sistema sobre cuantos datos entran/salen con cada red.
Además de tipos de permisos, también pueden ser:
  • Aplicaciones hospedadas: son sólo un archivo de manifiesto que indica la URL de una app hospedada en algún servidor. Si se hiciera una app de este sitio, podría ser de esa forma :)
  • Aplicaciones empaquetadas: es un paquete .zip que contiene todos los recursos (HTML, CSS, JS, el manifiesto, etc) para funcionar desconectada. Esto significa que no requiere de Internet para funcionar, aunque quizás para obtener información que el usuario necesita.
Tomando eso en cuenta, una app de Twitter bien hecha estaría empaquetada y tendríaprivilegios suficientes para acceder a la ubicación, enviar notificaciones y guardar tweetsviejos e información personal en cache para interactuar con ella sin conexión.
La mayoría de las aplicaciones del sistema aún no son tan completas como quisiera. Por ejemplo, faltan opciones para importar/ordenar/agrupar contactos, configuración para SMS/MMS, álbumes en la galería (curioso que soporte edición y efectos, pero no álbumes… las modas de hoy…), controles ligeramente avanzados para la cámara, etc. Espero las agreguen en futuras versiones.
La falta de aplicaciones comunes también es un problema, como el caso de Whatsapp. Lo queramos o no, Whatsapp si determina la popularidad de un sistema hoy en día, y portar la aplicación (en teoría) tampoco sería muy complicado.

La búsqueda dinámica: inteligencia en potencia

Antes mencioné la “búsqueda dinámica“. Esta zona contiene dos cosas: primero, un buscadoren la parte superior. Segundo, una lista de web apps pre-definidas y categorizadas por tipo. Me centraré en el buscador.
Este no es un buscador tan común: en vez de mostrarte enlaces/páginas relacionados a lo que buscas, muestra aplicaciones Web que puedan darte el contenido que estás buscando. Me explico mejor. Digamos que busco “Linux“:
2013-08-15-08-41-56
Entonces el buscador cambia el fondo de pantalla cambia a algo relacionado con lo que estoy buscando.
Si toco por ejemplo… Twitter:
2013-08-15-08-43-09
Entonces me muestra contenido dentro de esa página que tenga que ver con lo que busco.
Facilidad de uso
En general el sistema no es complicado. Cosa de moverse por el escritorio deslizando, abrir apps tocando sus iconos, volver al escritorio pulsando el único boton táctil abajo de la pantalla o cerrarlas dejando ese botón presionado y deslizándolas hacia arriba. Y para navegar entre pantallas, tenemos botones, teclas en las esquinas o menús laterales para ver más opciones.Sencillo y rápido.
Algo que si me resulta raro es que, aunque tenemos a Firefox como navegador, no podemos descargar archivosni guardar imágenes. El teclado responde bien, y trae multitud de caracteres. Me gustaría que incluyeran la opción de usar un teclado alfanumérico T9 por defecto, ya que ayudaría a personas que vienen de featurephones, o a quienes les cuesta usar unteclado QWERTY por el tamaño de la pantalla.
También, por alguna extraña razón, el sensor de iluminación no disminuye el brillo de la pantalla al estar en automático. Un fallo de software que se puede arreglar. Y las flechas y botones de menú lateral podrían ser un poco más grandes, a veces cuesta presionarlas. La respuesta de la pantalla es un poco deficiente. No tanto la pantalla, sino el sistema que aún no está bien adaptado para gestos.

Rendimiento

Con este hardware modesto Firefox OS tiene un rendimiento decente. Como dije antes el sistema inicia muy rápido, las aplicaciones se abren y cierran en un par de segundos (tanto en frío como en caliente).
Donde si se nota lentitud, es al moverse por algunos menús, o avanzar/retroceder en aplicaciones. Incluso en el escritorio se nota algo de lentitud. Al navegar, sólo se nota mientras está cargando la página, y después la navegación es aceptable con un par de pestañas.
El navegador parece soportar perfectamente los estándares, quizás mejor que otros sistemas.
Debo decir que no me agrada que se use una gestión de procesos tan iOS: al salir de una app esta queda en caché, y sólo funciona en segundo plano si tiene un servicio adicional haciendo uso de alguna función en particular.
Pero por el tiempo de carga de las apps, no está mal. Me parece que están cumpliendo la meta del rendimiento. No puedo hablar sobre rendimiento en juegos, pues no hay juegos demandantes aún. Pero los juegos sencillos funcionan bastante bien.
Se estarán preguntando si la memoria que tiene el dispositivo (tanto ROM como RAM) no es muy poca para Firefox OS. Pues no, en realidad no. El sistema es pequeño, y las aplicaciones enHTML5 no ocupan casi nada (la mayoría de las que probé no llegaban a 512KB, solo los juegos pesaban algunos MB). La RAM es suficiente, la mínima requerida, y pueden estar 2 o 3 apps abiertas al mismo tiempo.
Para el que le interese algo más técnico, mediante el comando cat /proc/meminfo (ejecutado via ADB) encontré información del consumo de RAM: de los 256MB, cerca de 75MB están reservados para el sistema, dejando unos 180MB para lo demás, y sin apps abiertas quedan unos40MB libres.
Suficiente, y el sistema no se resiente por ello. También encontré información sobre la memoria interna: el sistema tiene una partición de 200MB (de los que usa 154MB en FxOS 1.0.1), la partición /cache tiene 40MB (ahora la mía está usando 1MB) y la de datos son unos 160MB (de los que estoy usando 24MB).
Hay tanto espacio libre, porque en Android se usa la partición de datos para guardar la caché de la Dalvik VM. Aquí nos evitamos ese “problema” por razones obvias ;)
Ahora, respecto a la duración de la batería… Es más o menos lo que he tenido con mi Android, quizás un poco menos. Ciertamente aquí esperaba más. El sistema trae un modo de ahorro de energía que desactiva todas las comunicaciones, y puede configurarse para activarse automáticamente al estar en cierto porcentaje de batería. Nada impresionante por aquí.

Hacking y personalización: metiendo mano a Gaia

Al estar basado en tecnologías Web, ciertamente tiene una personalización muy amplia a nivel de interfaz. Cambiar la apariencia editando archivos no es gran problema. Podemos sacar los archivos del sistema con ADB, modificarlos, detenemos Gaia, introducimos los archivos nuevos, iniciamos Gaia y con eso ya podemos ver los cambios.
Y al usar el Kernel Linux de Android, podríamos añadir opciones de overclockingswap,compcache, etc. Luego modificar Gaia, agregar un menú de opciones para esto y listo. También podríamos cambiar las animaciones CSS de Gaia por otras nuevas que encontremos por ahí. Todo hablando desde la teoría, ya que hasta donde sé no se ha puesto en práctica algo así. Imaginen lo lejos que se podría llegar si se hicieran Custom ROMs ;)
Si quieren ver un buen ejemplo de lo que se puede hacer con Gaia, revisen este enlace deMozilla Hacks, donde agregaron al teclado una función para desplazar el cursor del área de escritura con sólo deslizar sobre el teclado (a mi me sorprendió lo rápido que se pudo hacer).

Seguridad y privacidad

La seguridad y la privacidad son tema caliente últimamente, así que trataré de no armar flame. Ese trabajo es de Nano.
La plataforma Web no es muy segura, y los chicos de Mozilla estaban conscientes de eso. Así que para proteger Firefox OS, tomaron varias medidas a nivel de Gecko, el motor encargado derenderizar Gaia y las aplicaciones.
Como dije al comienzo, Gecko gestiona las WebAPIs, que permiten usar funciones del teléfono como LocalizaciónAlmacenamiento, etc. Para que una aplicación acceda a esas APIs, debe tener un permiso establecido en el manifiesto, y estar firmada por Mozilla. También es obligatorio indicar en el manifiesto para que se requiere el permiso, de forma que no se use para algún fin dañino.
Para evitar que una app modifique su manifiesto estando instalada, se toman dos medidas principales: sólo las apps pre-instaladas pueden acceder a las particiones del sistema, y todas lasapps privilegiadas se guardan en carpetas individuales con UUIDs (si, códigos como los que se usan para discos duros).
Ese código varía en cada aplicación y cada dispositivo. Es decir, que si una app con privilegios se las hubiera arreglado para obtener acceso al sistema, aún tendría que adivinar donde está su manifiesto, revisando conjuntos de archivos. Aún así, es algo que no podría pasar desapercibido al ser revisado por Mozilla.
Cuando una app necesita permiso para una API en particular, por ejemplo, la de localización, nos avisa con un mensaje en pantalla para aceptar o rechazar.
2013-08-15-10-27-38
Si luego queremos cambiarlo, abrimos los Ajustes, vamos a “Permisos de aplicaciones“, y allí podemos darle los permisos que queramos.
2013-08-15-10-28-10
Una última medida que se tomó, fue habilitar un Sandbox donde se ejecutan todas las apps. Evita que los datos de una aplicación sean usados por otras sin permiso (cookies, contraseñas, etc).
Si una app necesita completar una acción con otra, simplemente la invoca con los parámetros adecuados, en vez de realizar la acción por si sola con los datos de la aplicación.
Por ejemplo, si una app necesita acceder a tus contactos, te redireccionará a una “ventana” de la aplicación de Contactos para que elijas uno, en vez de pedirlos todos al sistema y luego elegirlos desde ahí.
También está el detalle de la privacidad. Si bien hay una opción de enviar informes de errores aMozilla, ellos dicen que no se envía información personal (cuando mucho el país). Además, tenemos una opción en el menú de Ajustes que está integrada en el sistema, el famoso “Do Not Track“. Si lo habilitamos, esto no sólo afecta al navegador, sino también a todas las web apps.

Conclusión

Para ser un sistema nuevo, en una época donde muchos otros competidores ya están muy avanzados, empezó con una base estable. Estar basado en el kernel Linux de Android le garantiza una evolución constante.
El sistema cumple a simple vista con lo previsto: una interfaz fácil de usar, con un rendimiento decente, duración de batería promedio, y aplicaciones básicas.
La forma en la que se distribuyen y controlan las aplicaciones me gusta, y el buscador dinámico es en verdad útil (si adoptara funciones como las de Google Now, podría ser muy interesante). También tiene amplias posibilidades de personalización, sólo falta explotarlas.
Si tuviera que quejarme de algo, pues es verdad que el rendimiento y la duración de la batería podría ser mejor, y me gustaría ver una interfaz que se diferencie del resto.
La falta de aplicaciones que ya están en otras plataformas, me parece que se solucionará con el tiempo cuando el sistema gane popularidad. Tengo esperanzas de que alcance y supere al difunto WebOS, que era muy similar y ahora es de código abierto.
En resumen: tiene un voto de confianza. Para el público al que va dirigido (mercados emergentes o gente que aún no ha tenido un smartphone), cumple sin problemas.

Valoración

Bueno, en base a todo esto, les dejo una valoración:
Apariencia
3 de 5
Facilidad de uso
4 de 5
Rendimiento y estabilidad
3 de 5
Seguridad
3 de 5
Apreciación personal
4 de 5
Valoración Final 3 Puntos
No me parece malo, pero le falta un largo camino por recorrer. El Alcatel One Touch Fire (y supongo que también el ZTE Open) tiene planeado recibir 2 o 3 versiones más, ya que Mozillano tiene planeado hacer cambios tan grandes en ese tiempo.
Espero que les haya gustado el review, y si tienen dudas hagan fila y me las dejan abajo en los comentarios :)

Páginas vistas en total

Entradas populares

Translate