Destripando iOS y Android. Parte I: Conocimientos previos.

Llevamos bastantes años observando la lucha de las diferentes marcas para ganar la batalla del mercado de los Smartphones. Muchos han tirado la toalla en el camino, como Symbian, otros como RIM (Blackberry) están muy debilitados y, algunos otros, han decidido volver a la primera linea de combate como Windows Mobile. A medio plazo, sólo contemplamos dos grandes sistemas de dos gigantes de la informática : Apple y Google, o lo que es lo mismo: iOS y Android.

Estamos acostumbrados a ver comparativas que se centran en aspectos superficiales del dispositivo móvil, como la cantidad de aplicaciones, los acabados del Smartphone o detalles varios. En los próximas entradas, vamos a analizar estos sistemas internamente: una visión estructural, conceptual y técnica de ambos sistemas . Queremos dejar claro, una vez más, que no nos decantamos por ninguno de los dos. En Sozpic nos gustan ambos y disfrutamos desarrollando tanto para iOS como para Android.

 

 

Conocimientos previos:

Por una parte, tenemos Android, el sistema abierto de Google (por lo que se puede acceder al código fuente), basado en Linux, donde los proveedores de hardware móvil (Lg, Samsung, Motorola, HTC…) pueden modificar lo que consideren oportuno para sus intereses comerciales. Está desarrollado en C, C++ y Java. Utiliza un framework de Java para el desarrollo de sus aplicaciones, que se usa como lenguaje intermedio y ejecutado sobre una máquina virtual Dalvik. Dalvik es una máquina virtual diseñada para Android y optimizada para dipositivos móviles. Tiene memoria y tiempo de procesador limitado.

Su mercado de aplicaciones es Android Market en el cual no hay un control o supervisión de aplicaciones. Cualquiera puede subir una aplicación en solo unos clicks, siempre que compile correctamente. Veremos que esto tiene sus ventajas y sus inconvenientes.

Datos sobre Android:

– Tiene unas 600.000 aplicaciones publicadas, de las cuales dos tercios son gratuitas.

– Hace poco tiempo ha celebrado el 10.000.000.000 de descargas. (source:Distimo)

– Supone el 46% del mercado de Smartphone en USA. (source:Nielse)

– El nombre Android (Androide) viene de la novela de ficción escrita por Philip K. Dick ¿Sueñan los androides con ovejas eléctricas?  Cuya adaptación al cine es Blade Runner

– Tiene 12 millones de líneas de código de las cuales 3 millones de líneas de XML, 2.8 millones de líneas de lenguaje C, 1.75 millones de líneas de C++ y 2.1 millones de líneas de Java .

 

Luego, tenemos iOS, el sistema desarrollado por Apple. Está orientado para ejecutarse exclusivamente en dispositivos móviles creados por Apple (incluido Apple Tv).  Se deriva de Mac OS X , con el que comparte Darwin y es, en esencia, UNIX. iOS nació con un axioma claro: una buena experiencia de usuario, por lo que las aplicaciones se debían ejecutar directamente sobre el procesador para tener una respuesta instantanea. Para ello, utiliza el lenguaje Objetive-C. Para solventar los problemas de seguridad que pudiera crear esta opción, se optó por una supervisión previa de las aplicaciones al publicarlas en Apple Store, ya que los desarrolladores tenían demasiado margen de actuación.

Hoy en día, si quieres publicar una app en App Store, no basta con comprarte un Mac, pagar la licencia, y autentificarte como persona real (algún día escribiré sobre esta odisea), además, tienes que enviar su aplicación para que pase un proceso de revisión, donde Apple determina si la aplicación cumple los standares de usabilidad y seguridad, o no. En Sozpic no nos han rechazado ninguna aplicación, por el momento.

Datos sobre iOS:

– Las top 200 aplicaciones en ventas de  iOS obtuvieron cuatro veces más ingresos que las más vendidas en Android. (source:Distimo)

– Actualmente, hay 457.987 en la App Store para iPhone. (source:Distimo)

– Hay 155.708 en la App Store para iPad. (source:Distimo)

– Supone el 44,5% del mercado USA (source:Nielse)

 

Aquí tenemos dos sistemas con filosofías muy diferentes, no sólo lo que se intuye desde el exterior, también de forma interna:  gestión de memoria, calendarización de procesos o políticas de seguridad…

Una vez que hemos terminado estas pinceladas históricas y técnicas sobre ambos sistemas, ya podemos empezar a»meternos en harina».

 

En las siguientes partes de este artículo trataremos los siguientes puntos:

– Plataformas.

– Procesos.

– Gestión de Memoria.

– Seguridad.

Continuará…