Movil

Las alternativas a Android

Dejando de lado el ecosistema privativo de Apple, Microsoft o RIM, algunos pensaran que Android está solo dentro del mundo de sistemas operativos móviles Open Source. Nada mas lejos de la realidad, diferentes alternativas están siendo desarrolladas y alcanzando niveles de madurez aceptables para a corto medio plazo competir con Android.

Algunos, seguramente penséis, que interés existe en segmentar mas el mercado cuando ya existe una alternativa Open Source que actualmente es conocida y extensamente implantada. Pues la razones son diversas:

  1. Android para muchos no es totalmente Open Source (+pdf)
  2. Las operadoras quieren “pillar cacho” en el mercado de las mobile stores (WAC)
  3. Estrategias multidispositivo diferentes (móvil+escritorio+tv)
  4. Competir con Android y robarle una porción de mercado (o todo, google no fue el primer buscador y existían buscadores previos dominando el mercado. También existen otros ejemplos como Symbian o Internet Explorer)

En ese sentido quiero hacer un repaso al ecosistema actual de sistemas operativos móviles “libres”.

FirefoxOS (boot2gecko)

Una de las alternativas que puede que se materialice mas a corto plazo, gracias o de la mano de Telefonica. FirefoxOs (antes conocido como boot2gecko) es la apuesta de Mozilla por un sistema operativo basado en la plataforma Open Web/HTML5 no solo de cara a las aplicaciones sino que todo su entorno de usuario (Gaia) esta desarrollado también en tecnologías Open Web.

Uno de sus principales socios es Telefónica, que lo ha adoptado como su principal caballo de Troya de cara a competir en la guerra por la distribución de aplicaciones y contenidos en dispositivos móviles. En esta apuesta, Telefónica ha llegado a un acuerdo con la empresa española GeeksPhone para el suministro de dispositivo móviles de bajo coste con este sistema operativo integrado, lo cual también pretende romper el mercado de la telefonía en cuanto a la subvención de terminales se refiere, después de la perdida de clientes sufrida, vamos, lo que se viene a decir, dos pájaros de un tiro.

Tizen

De las cenizas de MeeGo (que a su vez fue una combinación de los sistemas operativos móviles Moblin, creado por Intel, y Maemo, creado por Nokia) resurge Tizen, como la alternativa apoyada por la Linux Foundation o empresas como Intel o la propia Samsung.

La apuesta es similar a la de FirefoxOs, es decir, una plataforma basada en tecnología Open Web/HTML5, pero en este caso inciden mas que el sistema de Mozilla en que sea un sistema operativo orientado a ejecutarse en múltiples dispositivos, ya sean televisores, tablets u ordenadores a bordo de vehículos. Es quizá esto ultimo y el apoyo de la Linux Foundation su gran baza, ya que la apuesta actual de Samsung parece que claramente es Android.

Ubuntu

Parece que Canonical apuesta firmemente por que Ubuntu funcione en múltiples dispositivos. La apuesta por el entorno de escritorio Unity estaba totalmente orientada a que la interfaz de acceso a los diferentes dispositivos, como Pcs, televisores o tablets, fuera lo mas común y homogénea posible, y en el caso de los teléfonos móviles también ha sido así según la presentación realizada hace pocos días.

Ademas de la popularización de Ubuntu en el PCs, una de las principales bazas de este sistema operativo es la posibilidad de que gracias a un “docking” o adaptador, nuestro móvil se convierta en una estación de trabajo, conectándolo a una pantalla o teclado. Esta posibilidad ya existía con la solución Ubuntu for Android también desarrollada por canonical, pero es con su propio sistema operativo para móviles con lo que cobra mayor sentido e integración.

Ubuntu apuesta por HTML5 como principal plataforma para el desarrollo de aplicaciones, aunque de cara a aplicaciones de alto rendimiento o requerimientos gráficos altos como juegos ofrece una plataforma de desarrollo basada en QML.

Open WebOS

Tras la decisión de HP de cesar el soporte y desarrollo de WebOs, inicio Open WebOs como un proyecto Open Source, y a mediados de Septiembre de 2012 vio la luz una primera versión alpha del sistema operativo. Además hace pocos días salio la noticia de que había sido posible ejecutar Open WebOs 1.0 en un tablet Nexus 7 de google.

Como su propio nombre indica, es un sistema basado en Web. Hay que tener en cuenta que WebOs fue uno de los principales precursores de la utilización de la plataformas Open Web como entorno multiplataforma y sobre todo orientado a dispositivos moviles, pero por desgracia, no es suficiente para asegurar que este sistema podrá competir con FirefoxOs, Tizen o Ubuntu.

Bada

Aunque el proyecto no es Open Source gran parte de sus componentes si lo son y en muchas ocasiones se ha rumoreado con su liberación, y es por eso que se ha añadido a esta lista.

En principio la apuesta personal de Samsung, pero como hemos visto, la marca coreana también esta detrás de Tizen y actualmente apuesta por Android para los terminales de gama alta. Es por eso que en la actualidad, Samsung, ha orientado este sistema operativo a dotar de “inteligencia” a sus terminales de gama mas baja, gracias a que este sistema consume menos recursos que Android. Su potencial únicamente radica en que es una solución desarrollada por uno de los principales fabricantes de terminales móviles, pero aun así, la posibilidades de que este sistema tenga algún tipo de éxito son remotas por diversas razones; APIs cerradas, limitación de instalación de aplicaciones, limitación de utilización de aplicaciones VoIP o el hecho de que es un sistema que no permite ejecutar aplicaciones en paralelo.

ArinOs

ArinOs es un proyecto que empecé hace bastante tiempo, cuando apareció por aquel entonces ChromeOS. La idea de ChromeOs me parecía interesante pero también tenia mis dudas sobre las soluciones “todo en la nube” en cuento a privacidad y libertad. Además me parecía difícil de meter mano en su interior y mas aun en caso de querer integrarlo en nuevos dispositivos.

Es por eso que el objetivo de ArinOs era ofrecer una plataforma sencilla en su concepto y software que permitiera poder crear un Sistema Operativo Web de forma sencilla sobre todo orientado a poder ser adaptado y extendido fácilmente a diferentes dispositivos, como puede ser un punto de información, una maquina dispensadora de billetes de transporte o un televisor.

ArinOs Logo

La idea era simple, y en cierta medida existían aproximaciones similares en el caso de los terminales móviles como era PhoneGap: Extender la API de JavaScript para poder conectarnos con un “core” externo que extendiera las funcionalidades de nuestro navegador y así poder acceder mediante JavaScript a código de alto nivel que nos permitiera por ejemplo acceder a dispositivos industriales o funcionalidad especifica no común.

Por tanto podemos decir que ArinOs se basa en un navegador extendido que permite comunicarnos con un servidor (en este caso en Python) que interpreta los comandos, los ejecuta y nos devuelve el resultado. Por tanto podemos crear nuestra librería en Python, por un lado, y en JavaScript, por otro, y comunicarlas a través de ArinOS.

ArinOs schema

La elección de Python como entrono para el servidor, se justificaba, basándonos en la posibilidad de cargar código de forma dinámica y que además nos permite acceder a librerías externas mediante ctypes.

La intención de ArinOs, por tanto no es competir con B2G (FirefoxOs) o ChromeOs, ni mucho menos, sino la de ofrecer una herramienta que permita introducir dispositivos marginales al mundo de las aplicaciones y sistemas operativos HTML5/WEB.

Todavía este proyecto esta en una fase muy temprana y solo tengo partes parciales de la funcionalidad. Espero sacar algún rato entre todos mis proyectos personales para seguir avanzando ya que queda mucho trabajo, como implementar diferentes métodos de comunicación entre el cliente y el servidor (síncrona o asíncrona), establecer una estructura del servidor correcta donde sea sencillo incluir librerías tanto en Python como en código nativo o definir una estructura para aplicaciones y que incluso, en un futuro, que tanto las aplicaciones de Chrome como de FirefoxOs puedan funcionar en este sistema.

De momento podéis acceder a su repositorio de GitHub en la siguiente dirección.

https://github.com/ikeralbeniz/ArinOs

Firefox TV: (Firefox OS + Raspberry Pi) * Set-Top-Box

Cuando llegó mi Raspberry Pi, me surgieron miles de ideas de como aprovechar este mini-ordenador que cuesta al rededor de 35€. Por un lado se me ocurrió compilar un receptor software de DVB-T2 en el que estamos trabajando en el laboratorio y también se me ocurrió utilizarlo como centro multimedia con un cliente web de Bittorrent para añadir mis torrents desde el trabajo. Pero finalmente la idea que mas me motivaba y que mezclaba varios proyectos que tenia entre manos era la de hacer correr el sistema operativo B2G (Boot To Gecko) o también llamado Firefox OS en mi Raspberry Pi. Firefox Os es un nuevo sistema operativo WEB basado en en el motor de Firefox (Gecko), que tiene como intención competir con Android y IOs en el mundo de los terminales móviles inteligentes. En este caso la apuesta de Firefox OS es que todas las aplicaciones e incluso el sistema operativo (o por lo menos la parte de interfaz) sea Web, estrategia mas consolidada en los sistemas operativos de los televisores inteligentes y que viene impulsada por las capacidades que ofrece HTML5.

Firefox OS

Teniendo en cuenta todo esto ¿Por que no desarrollar un pequeño Set-Top-Box utilizando una Raspberry Pi en el que corra Firefox Os adaptado a las características (dimensión e interfaces de entrada) de un televisor?. La idea es ofrecer una alternativa low-cost y lo mas OpenSource posible a soluciones del estilo smart-hub de Samsung, con todas las posibilidades que ofrecería en cuanto a explotación de nuestros televisores como centro de ocio, trabajo o incluso servicios de tele-asistencia.

En siguiente posts explicaré los pasos que estoy siguiendo para configurar mi Firefox TV ya que por ahora tengo una pequeña aproximación que le faltan algunos retoques como se puede ver en el siguiente vídeo.

Obtener drivers USB Samsung sin instalar Kies

Los que desarrollamos para Android en sistemas operativos como GNU/Linux o MacOs X no solemos tener problemas para acceder a los teléfonos a través de USB, bien para instalar aplicaciones o acceder a los logs a través de ADB. El problema lo tenemos cuando queremos hacer esto mismo en sistemas Windows y nos encontramos que al conectar el móvil al PC nos aparece un mensaje de dispositivo desconocido o que no encuentra los drivers.

En mi caso, hace poco he me hecho con un Samsung Galaxy SI II con el que estoy haciendo unas pruebas. Y lo primero que hice fue buscar los drivers para poder conectarme vía ADB. Mi sorpresa fue encontrar un montón de referencias a un paquete instalador de drivers para dispositivos Samsung que no me funcionaba. Otras referencias me indicaban que instalara Kies, un software de Samsung para acceder al dispositivos, sincronizar y demás herramientas que suelen ofrecer las empresas fabricantes de teléfonos móviles. Por supuesto, no estaba dispuesto a instalar todo una suite para instalar unos drivers USB, por lo que pensé que quizás seria posible obtener los driver del propio paquete de instalación de Kies.

Por lo tanto, lo primero que hice fue buscar Kies en Google y acceder a la pagina oficial de Kies donde descargué el software para Windows

http://org.downloadcenter.samsung.com/downloadfile/ContentsFile.aspx?CDSite=UNI_ES&CDCttType=SW&ModelType=N&ModelName=FM_UPDATE&idyn=N&VPath=SW/201105/20110512115717796/Kies_2.0.2.11071_128_2.exe

Por otro lado me descargué también el UniversalExtractor, el cual es un software capaz de desempaquetar instaladores, y ya que al fin y al cabo un instalador no es mas que un contenedor de binarios con instrucciones de donde copiarlos, no tiene mayor misterio acceder a su interior (la otra opción es instalar Kies coger el driver y desinstalarlo después).

http://legroom.net/scripts/download.php?file=uniextract161

Une vez instalado el UniversalExtractor, accedemos a nuestro directorio de descargas y extraemos el instalador de Kies seleccionando la opción “Instalshield /b Interconector

Lo que hará que se nos cree una carpeta Kies_XXXXXX\ uni_xuemcfc\

Dentro de esta carpeta tendremos otro instalador MSI “Samsung Kies.msi“. Que volveremos a extraer de manera parecida pero esta vez con la opción “MSI Instalador Administrativo“.

Al desempaquetar el MSI obtendremos el contenido del instalador de Kies y si indagáis encontrareis que el instalador de los Drivers USB esta en Samsung Kies\program files\Samsung\Kies\USB Driver con el nombre de SAMSUNG_USB_Driver_for_Mobile_Phones.exe

Ejecutáis el instalador y pronto veréis como Windows va reconociendo vuestros dispositivos móviles.

El nombre del instalador de drivers es el mismo que el que en foros anteriores había encontrado e instalado pero que no me funcionaban. Esto se debía a que eran versiones anteriores del instalador de drivers que no contenían los drivers compatibles con el Samsung Galaxy S II. Por tanto en vez de alojar el instalador en un repositorio y enlazarlo en foros, he creído mas interesante mostrar como obtener la ultima versión del instalador de drivers a partir del instalador de Kies.

Espero que os haya sido de utilidad.

Empezando con Windows Phone 7

Estos días me ha dado por intentar probar a desarrollar algo para Windows Phone 7. Más concretamente, quería probar las implementaciones BETA que existían de PhoneGap para Windows Phone 7, por lo que rápidamente me hice con una versión de Visual Studio 2010.

Me baje el código fuente de los ejemplo de PhoneGap y lo primero que me di cuenta era que la instalación de VS 2010 no viene con las herramientas de desarrollo de aplicaciones para terminales móviles. Al final, encontré que lo que necesitaba era un complemento llamado “Windows Phone 7 Developer Tools“, que encontré en esta dirección:

http://download.microsoft.com/download/1/7/7/177D6AF8-17FA-40E7-AB53-00B7CED31729/vm_web.exe

Lamentablemente al intentar instalarlo me decía que no era posible, ya que era necesario tener Windows Vista o 7 instalado. Al final conseguí hacerlo funcionar en XP realizando los siguientes pasos:

  • Descargamos Windows Phone 7 Developer Tools (vm_web.exe)
  • Extraemos el contenido de el instalador, lanzado una consola, posicionándonos en el directorio donde se encuentra la aplicación vm_bex.exe y ejecutándola de la siguiente manera: vm_web.exe /x <directorio_donde_lo_extraeremos>
  • Abrimos <directorio_donde_lo_extraeremos>\baseline.dat con un editor de texto
  • Buscamos la sección [gencomp7788]
  • Cambiamos los valores de la sección InstallOnLHS y InstallOnWinXP a 0.
  • Guardamos y cerramos <directorio_donde_lo_extraeremos>\baseline.dat
  • Ejecutamos el instalador lanzando el siguiente comando: <directorio_donde_lo_extraeremos>\setup.exe /web

De esta manera se nos lanzara el instalador y podremos instalar las herramientas de desarrollo móvil a nuestros VS 2010.

NOTA: En Windows XP no es posible ejecutar el emulador, pero si compilar y desarrollar. En caso de querer probar la aplicación, deberéis disponer de un terminal con Windows Phone 7 y a la hora de Debugear seleccionar “Windows Phone / Device”.

 Scroll to top