Android e iOS – La Caja de LOS Fusibles

Publicado el 17 marzo 2011 por Portalgameover

¿Recordáis aquél monográfico de Microsoft y Apple? Pues hoy vamos a hacer lo mismo pero centrándonos en dos pesos pesados para móviles: Android e iOS.

Por supuesto, también hablaremos de Symbian.

Cuando digo que me gusta meterle mano a los teléfonos y llevarlos por encima de sus posibilidades me refiero a esto

Empezaremos primero hablando de Android, el SO para móviles de Google. Basado en Linux y con una profunda filosofía de código abierto, software libre y demás cosillas comunistas.

La historia empieza con Google, si, pero no con el buscador como desarrollador inicial, sino como comprador. Antes existía en Palo Alto, California, la Android Inc., una compañía que empezó a desarrollar un SO para celulares basado en Linux.

Fue en Julio del 2005 cuando Google, conocedora de la situación, decide asimilar la empresa y seguir con esa idea del software libre aplicado a teléfonos. El gran buscador, junto a la Open Handset Alliance (Un conjunto de compañías dedicadas a desarrollar estándares para dispositivos móviles), se dedicarán entonces a andar ese camino hasta llegar a la primera versión del SO del robotejo verde.

Como el Sol cuando amanece, él es libre.

Fue en Septiembre del 2008 cuando la versión 1.0 fue anunciada. Antes de eso se destapó una rumorología sobre Google en el mercado de la telefonía, probablemente os acordéis. Junto a eso le han ido acompañando todo el tinglado de los Nexus One y varias patentes al respecto.

A la 1.0 le han seguido una 1.1, una 1.5 (Cupcake, con nombres de postres), 1.6 (Donut), 2.0 (Eclair), 2.2 (Froyo), 2.3 (Gingerbread), y finalmente la 3.0 (Honeycomb, aún no lanzada).

Oficinas principales de Android en España

Las diferencias, como os podéis imaginar, pasan por mejorar bugs, añadir funcionalidades y adaptarse al hardware cambiante de cada momento. Si queréis mirar las especificaciones concretas buscad por ahí, que aquí no haremos hincapié en cosas como que la Froyo se basa en el kernel 2.6.32 y la Gingerbread en el 2.6.35.7.

Lo que si que vamos a comentar, un poco por encima son varias de las características más peculiares y curiosas sobre el tema. Los que tengan una profunda y visceral repulsión a la informática, por favor que se peguen un tiro. Los demás, ¡sigan leyendo!

Android, como sistema, soporta mogollón de cosas: Conectividad wifi, bluetooth, redes GSM, UMTS y muchas más siglas.

Tiene soporte para SMS y MMS, y desde la 2.2 hay la posibilidad de hacer Push de notificaciones (Esto es, que el servidor en la nube de Android te avisa cuando hay una actualización en X datos).

Su navegador está basado en WebKit, que es un motor de renderizado de webs de código abierto (creado a partir del KHTML de Konqueror y usado por Safari, Chrome, Epiphany…); y tiene añadidos propios de Google Chrome, como el motorcete de Javascript.

Soporta un montonazo de hardware propio de teléfonos: Desde cámaras hasta comportamiento de pantallas multitáctil (Hay teorías que hablan de un hipotético control de Cañones de Iones Suborbitales).

Es multitarea de forma nativa.

Dato curioso: No soporta videollamadas. A no ser que el firmware tuneao del fabricante del movil lo permita, el Android per se no lo tiene implementado.

Y finalmente, una de sus guindas es el soporte para Java. En el mundo estándar del desarrollo de aplicaciones se usa Java para escribirlas. Un hijo de vecino normal pensaría “Ya está, el Android tiene una máquina virtual Java que ejecuta mi código”. Pues no. Android soporta Java, si, pero lo hace con algo llamado Máquina Virtual Dalvik.

Quien no haya asociado "Dalvik" con "Nombre de yogur con fibra" tiene un CLARO PROBLEMA

La idea es que el código de la aplicación no funciona sobre una JM normal, sino que trabaja sobre Dalvik. Dalvik sería, saltándonos MUCHOS tecnicismos, el equivalente de la máquina Java para Android. Pensada para aprovechar sus pocos recursos en comparación con un PC grandote, fue desarrollada por Google y se llama así por un fiordo de Islandia, el Eyjafjörður. Toma ya palabreja!

En este pueblecito está el fiordo y también hacen yogures

Bien, ya tengo mi Android en mi busón, grasias de hantebraso. ¿Qué puedo haser ahora, hoygan?

La gran ventaja frente a sus competidores es que Android es totalmente libre. Es decir, el sistema en si, ojo que no nos confundamos: por temas de licencia (Es una Apache 2.0), hay posibilidades de que parte del código modificado por la empresa que fabrica el teléfono (drivers para controladores, interacción con el propio hardware, etc. etc.) sea cerrado. Pero aparte de estas exclusividades de la licencia, que están en manos de otros fabricantes, el código que publica el señor Android está íntegro en sus repositorios.

¿Qué me aporta el hecho que sea software libre? Muchas cosas. Probablemente un linuxero recalcitrante te diría más de las que creo yo, pero la idea es que eso permite que muchas compañías metan mano al Sistema Operativo base y lo modifiquen, lo redistribuyan e incluso a veces permitan que esos mismos cambios también sean abiertos (Hay incluso particulares que hacen eso mismo). Eso le da una vida y un movimiento que ríete tú de un pastillero en Chasis.

Esa misma filosofía que se aplica al SO se traslada también a la comunidad de desarrolladores: La única cuota es en el caso de que queramos colgar la aplicación en su Android Market (Un único pago de 25$ de por vida, y sino siempre podemos distribuirlo por otros canales). Si a uno le pica el gusanillo puede leer una de las tropocientas guías de programación para Android que hay por la red (Recordemos que al ser todo de filosofía Open Source es facilísimo encontrar info), instalar una suite de programación con cosas como Eclipse y empezar a desarrollar la enésima tontería que correrá sin problemas en el emulador del terminal.

Una vez haces una plegaria al Dios-Máquina la verdad es que no acojona TANTO

Y esto es, a grandes rasgos, Android. Un sistema polivalente que rivaliza con el otro grande, el iOS, con su mayor virtud como bandera: La flexibilidad. Flexibilidad de un código abierto en el sistema y flexibilidad de cara a la comunidad, a quien le da todas las facilidades para que cualquier hijo de vecino programe el nuevo Angry Birds y triunfe como el ColaCao.

Hablemos ahora de iOS.

Para el iOS íbamos a poner un hígado humano, pero para no herir sensibilidades en su lugar ponemos una lata de paté de avestruz

¿Qué es el iOS? Una buena definición sería “El Sistema Operativo de Apple ideado para smartphones y tablets”.

Mientras Google compraba la compañía Android y hacia sus pinitos con la creación de un SO, Apple adaptaba su Mac OS X (Ideado para ordenadores grandotes) a un formato mas pequeño y manejable. iOS, al igual que su hermano mayor, es un sistema operativo basado en Unix con un montón de código propio de Apple por ahí metido.

Y ahora, maticemos: Ténicamente no es un Unix “puro”, sino que bebe de la herencia de Darwin BSD, que es el sistema base que se encuentra en el propio Mac OS X. Es de código abierto (Licencia Apple Open Source) y está basado en FreeBSD (Que este a su vez si que está basado en Unix, ya que aunque no lo es, tiene todas sus compatibilidades propias). Fue desarrollado por la compañía Next, que igual no suene mucho a la gente, pero como dato interesante diremos que fue fundada por el propio Steve Jobs cuando su compañía lo echó amablemente allá por el 85 . El propio Jobs, aún fuera de su empresa, ¡asentaría las bases de lo que hoy es su el SO insignia!

Recuerda hermano, se tolerante

Bien, no vamos a comentar punto por punto sus características para el usuario, que supongo que son de sobras conocidas: Interfaz tremendamente agradable, funcionalidades bien pensadas, una multitarea que no se activó hasta hace relativamente poco… La idea principal de Apple se basa en implementar lo que yo llamo “Interfaz para idiotas”: Sin ánimo de menospreciar a nadie (En cuyo caso yo sería el primero, ya que me quito el sombrero ante muchas de sus ocurrencias de cara a la interacción con el usuario) la compañía de la manzana encuentra navegabilidades y modos de uso pensados para minimizar los quebraderos de cabeza para con la máquina. “Lo quiero usar para hacer X cosa, y esa X cosa se hace de un modo intuitivo de la hostia”. Y punto (Que luego llueva mierda cuando intentes hacer Y y no X es otro tema y será objetivo de mi furia asesina algún otro día. Tal vez. O no).

Pero no solo de esas interfaces que rezuman perfume de rosas vive el iOS. Si hay algo que ha hecho triunfar, ya no solo al propio sistema, sino a la familia iPhone/iPod, es su mercado de aplicaciones. Que es un éxito es algo que también es de sobras conocido por todos, y aquí tampoco entraremos en más detalles. Pero pongámonos ahora en la piel del programador: Quiero hacer una aplicación y no se por dónde empezar. En Android hemos visto que es fácil y totalmente gratuito, ¿Qué pasa con Apple? ¿Cómo puedo desarrollar una aplicación para el iPhone o el iPod Touch?

Bien, el SDK, el conjunto de utilidades para programar, es gratuito. Uno puede descargarlo igual que el SDK de Android. Gratis, rápido, fácil y para toda la familia (Incluye un módulo para tricotar a ganchillo y parsear clases). Desde ahí puedo programar (No en Java, como el caso anterior, sino en Object C, un lenguaje que popularizó Next) y correr mi programa en su emulador.

La parte divertida es que solo funciona en la última versión de su SO

Pero el punto divergente está en si quiero ejecutar mi aplicación en un iPhone. Vale, tanto el Market de Android como el de Apple exigen un pago para colgar las aplicaciones en los markets (esos 25$ que comentábamos en un único pago por parte de Android y los 99 por parte de Apple de manera ANUAL, ¡ojito!), pero si yo quiero instalarme la mía en mi teléfono, o distribuirla por otros medios, o hacer cualquier cosa que no implique iTunes, también he de pagar.

Mientras que con Android no.

Ah, y no puedo liberar mi aplicación con una GPL si la cuelgo en la tienda, porque claro, las claves de firmado son privadas y no puedo distribuirlas con el código fuente.

¡Soy invencible! ¡Pero dame los códigos de firmado, Natalya!

En este aspecto es mucho más cerrado que la filosofía open source de Android. Aunque reconocemos que, dada su popularidad, iTunes lo está partiendo mucho más que el Market. Podría extenderme sobre todo esto pero, en lugar de soltar un monólogo ético sobre uno u otro sistema, vamos a animar el cotarro proponiendo un debate e intercambio de opiniones en los comentarios sobre Android e iOS.

Yo personalmente utilizo Android porque soy un freak al que le gusta tocar, experimentar y programar con toda esta tecnología, aunque reconozco que tampoco soy el público objetivo de iPhone (Gente que quiere que las cosas funcionen y que no quiere ni necesita manipular cosas “entre bastidores”); cosa que no significa que, para mí, iOS sea peor, claro, sino simplemente distinto a mis necesidades.

Y vosotros, ¿qué preferís?