Dispositivos móviles: arquitectura y sistemas operativos

Ni que decir tiene que el mundo de los dispositivos móviles ha cambiado la dirección evolutiva de la tecnología para siempre. Ya desde su popularización en los años 90 (aquellos ladrillos con antena) se veía venir que iba a ser una tendencia. Luego vinieron los móviles con juegos, con cámaras, capacidad de mandar mensajes multimedia, de conectarse a Internet. Llegó la mitad de la anterior década y los fabricantes empezaron a distribuir Java y Symbian OS en sus dispositivos: por primera vez se visualiza la figura del desarrollador de aplicaciones.

Todo esto estalla cuando Apple saca sus iPhones a la par que la App Store y poco después Google hace lo propio con su sistema operativo, Android. Ya no hablamos más de móviles, ahora hablamos de smartphones, teléfonos capaces de conectarse a Internet y hacer funciones que hasta ahora sólo eran posibles en un ordenador. Y aquí es ya cuando todo cambia. Menos las tarifas abusivas de cualquier cosa relacionada con la comunicación, eso sigue siendo Marca España.

A día de hoy el mercado de aplicaciones para telefonía es inmenso y está en auge, por eso me gustaría comentar, en el primero de una serie de artículos sobre desarrollo en dispositivos móviles, qué tiene de especial la arquitectura de estos dispositivos y cuáles son los sistemas operativos más usados.

¿Qué hay bajo el pantallón?

Hay algo en común en todos los dispositivos con iOS, Android, Symbian, Windows Phone o casi cualquier otro sistema operativo: la arquitectura, es decir, el tipo de máquina. Si un ordenador (o un Mac posterior al 2006) es una máquina x86, un dispositivo móvil es casi siempre un ARM. Casi contemporáneo a la creación del procesador Intel 8086, padre de los PC actuales, ¿qué tiene esta arquitectura que la haga más viable para estos tipos de dispositivos que la arquitectura PC, que la conocemos más que de sobra y la producción es muy barata?

Para empezar, un procesador ARM es del tipo RISC (Reduced Instruction Set Computing), es decir, el conjunto de instrucciones que se pueden ejecutar en un procesador de esta arquitectura es bastante pequeña en comparación con los de tipo complejo CISC (como es el PC). Son menos instrucciones y por lo tanto, menos versátil, pero también es mucho más óptimo en cuanto a rendimiento. Y además, como son mucho más sencillos son baratos de producir, ocupan poco espacio (por lo que tienen mayor grado de integración, es decir, le puedes encasquetar más núcleos fácilmente) y el consumo de energía es mucho menor (a día de hoy hay PCs de alto rendimiento que pueden llegar a consumir lo que un frigorífico en alta carga de trabajo). En otras palabras: son rápidos, son sencillos de fabricar y consumen poca energía, ideal para toda una nueva generación de dispositivos móviles que cada vez requieren más y más prestaciones para realizar tareas cada vez más complejas.

Algunos os preguntaréis, si ARM es tan maravilloso, ¿por qué para los PC usamos la arquitectura de Intel y no ARM o alguna otra superior? Pues por razones históricas, principalmente. Cuando IBM sacó el PC en 1981, digamos que lo coló bastante bien en el mercado, por no alargarnos en este punto demasiado. Pero no era lo mejor que existía desde luego.

¿Qué sistemas operativos hay actualmente para estos dispositivos?

Hay bastantes, y en muchas ocasiones el fabricante fuerza al usuario a quedarse con el sistema operativo que viene de serie a pesar de que en muchas ocasiones es intercambiable. Los más conocidos ahora mismo y que, por tanto, tienen mayor cuota de mercado, son:

iOS

2014-11-19 11_05_56-Usage share of operating systems - Wikipedia, the free encyclopediaEl sistema operativo de los dispositivos de Apple, éste se reparte la mitad de la tarta del mercado, principalmente por haber sido el primero en montar la tienda de aplicaciones y porque llegó pisando muy fuerte con una campaña de márketing excelente. iOS funciona en iPhones, iPads, iPods y cualquier otro iAlgo que desconozca y que sea de Apple.

El lenguaje principal de iOS es Objective-C (aunque por supuesto se pueden utilizar otras plataformas que habilitan otros lenguajes, como Xamarin para C#; en este tema profundizaré en un futuro) y para poder subir tu aplicación a la App Store necesitas una subscripción al programa de desarrolladores de Apple ($99 al año).

iOS Developer Library: https://developer.apple.com/library/ios/navigation/
Apple Developer Programs: https://developer.apple.com/programs/

Android

El otro trozo del pastel del mercado. De la mano de Google sale Android, basado en Linux y de código abierto. No sólo puedes programar aplicaciones para Android y distribuirlas, sino que tienes acceso al código del sistema operativo y puedes modificarlo y redistribuirlo tanto cuanto quieras. Puedes hacer otro sistema operativo distinto basado en Android, vamos.

Android está presente en una variedad enorme de dispositivos de muchos fabricantes, ya que dicho fabricante no tiene que pedirle permiso a Google para usarlo.

Para programar en Android se usa principalmente Java (aunque tiene su propia máquina virtual, no usa la de Oracle, por suerte), aunque de nuevo se puede desarrollar en otros lenguajes. También necesitas hacer un único pago de $25 para poder acceder a la consola de desarrollador si quieres subir tus aplicaciones a la Play Store.

Android Developers: https://developer.android.com/guide/index.html
Google Play Developer Console: https://play.google.com/apps/publish

Windows Phone

Microsoft siempre ha estado intentando meterse en el mercado de los móviles sin mucho éxito, y bueno, tampoco es que Windows Phone haya sido una revolución, pero algo de mercado ha pillado, especialmente tras asociarse con Nokia para distribuir su sistema operativo con sus móviles.

WP8.1_Start_Screen

Lo bueno que tiene Windows Phone es que se programa con lo mismo que programas para Windows, y además usa el sistema de Metro presente en Windows 8 por lo que las aplicaciones desarrolladas para esta plataforma valen para todo sistema que lo utilice. Para las interfaces gráficas se utiliza XAML, y para el código se puede usar tanto C# como Visual Basic.

Develop Universal Windows Apps: https://dev.windows.com/en-us/develop
Publish your App Store: https://dev.windows.com/en-us/publish

Otros

En un mercado más minoritario hay otros sistemas operativos que pueden resultar interesantes, como FirefoxOS, de Mozilla, que provee un entorno basado en Linux que se puede desarrollar usando HTML5 y JavaScript, o Ubuntu Phone, versión de Ubuntu para smartphones. Estos dos sistemas, además, podrían funcionar en un dispositivo que funcione con Android, ya que todos ellos usan el kernel de Linux. También está BlackBerry OS, para los poseedores de una BlackBerry, desarrollable con C/C++.

Firefox_OS_2.1_-_Lock_screen

Para terminar, concluir con la importancia del mercado de estos dispositivos. Es una manera muy buena de hacer dinero desarrollando aplicaciones porque la demanda es enorme. En el próximo artículo me centraré en el desarrollo en Android, especialmente ahora que ha salido la versión Lollipop 5.

The following two tabs change content below.
Borja V. Muñoz

Borja V. Muñoz

Head of Technology Development at Inercia Digital S.L.
Yo solía tener tiempo libre hasta que me metí en esto de los proyectos europeos. Ingeniero e instructor, a veces a la vez, a veces por separado. borjavmunoz (arroba) inerciadigital.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *