Introducción a la
Programación Móvil…!
La programación
móvil consiste en el desarrollo de aplicaciones para dispositivos móviles como
celulares, Smartphone, tablets, etc.
En
la actualidad, el trabajar en el campo de la programación para dispositivos
móviles se hace necesario, debido a que las empresas se deben adaptar a las
tendencias del mercado y a las necesidades de sus clientes. Por lo que se debe
pensar en la posibilidad de tener acceso a la información, al igual que las
soluciones informáticas para equipos de escritorio y dispositivos móviles en
cualquier lugar y en cualquier instante. Convirtiéndose en parte vital para el
funcionamiento de los procesos empresariales.
Hoy
en día se encuentran disponibles infinidad de herramientas, lenguajes y
entornos que puedes elegir.
Actualmente dispones de muchas opciones si
te quieres dedicar a este ámbito, y en concreto debes elegir entre:
1. Los lenguajes
y herramientas nativos de cada plataforma: ObjectiveC/Swift y XCode en
iOS, Java y Android Studio en Android, C#, XAML y Visual Studio en el caso de
Windows Phone y Windows 8.
2. Herramientas
multiplataforma que compilan a código nativo. La más conocida y utilizada es
Xamarin.
3. Herramientas
multiplataforma basadas en HTML. La más conocida es PhoneGap/Apache Cordova,
pero existen muchas más.
Cada
una de estas opciones tiene sus ventajas e inconvenientes, así que ¿cuál
deberías elegir?
Desarrollo
Nativo
Está
claro que, siempre que puedas, el desarrollo nativo es la mejor gran opción.
El
problema es que cada plataforma (iOS, Android, WP...) es un mundo. Cada una de
ellas utiliza un lenguaje de programación diferente, herramientas propias y
paradigmas de programación particulares. A cambio obtienes la máxima
flexibilidad, adaptación total al entorno en el que se ejecuta la aplicación y
el máximo rendimiento.
La
desventaja principal es que tienes que dominar muchos lenguajes y herramientas
y que el tiempo de desarrollo se multiplica mucho, pues es necesario crear
desde cero tres versiones diferentes de la misma aplicación (una para cada
plataforma).
Por
regla general los programadores se especializan y eligen una única plataforma,
de modo que puedan dar lo mejor de si mismos en ésta.
Por
ejemplo, si decides especializarte en iOS y así programar para la popular
plataforma iPhone/iPad, entonces deberás aprender a programar con ObjectiveC o
Swift y a utilizar el entorno XCode, comprándote además un ordenador Mac.
Desarrollo
multiplataforma compilado a nativo
Una
opción de compromiso es utilizar alguna plataforma de desarrollo mixta que
independiza el desarrollo del lenguaje nativo de cada plataforma móvil.
Con
este tipo de herramientas se utiliza un único lenguaje y se crean aplicaciones
para todas las plataformas, eso sí, adaptando algunas cuestiones para poder
funcionar en cada caso. Lo bueno es que te permite conocer un solo lenguaje,
reutilizar gran parte del código entre todas, y generar aplicaciones nativas
para todos los entornos móviles.
La más
conocida es, sin duda, Xamarin. Está basada en el lenguaje C# de Microsoft y en
la plataforma .NET, y gracias a sus herramientas permite crear aplicaciones
para todas las plataformas, reutilizando gran parte del código (a excepción de
la interfaz).
Si ya
conoces C# y .NET, aprender Xamarin te ayuda a aprovechar los conocimientos que
ya posees y con ellos desarrollar para todas las plataformas móviles relevantes
del mercado (iOS, Android y Windows Phone).
Se
obtienen muchas ventajas de su uso, pero fundamentalmente dos:
·
Puedes programar en algo que ya conoces y evitar aprender nuevos lenguajes
innecesariamente.
· Tus
aplicaciones funcionarán con pocos cambios en varias plataformas.
O sea,
al final ahorras tiempo, esfuerzo y llegas antes al mercado.
Las
aplicaciones escritas con Xamarin en C# se compilan a código nativo en cada
plataforma, por lo que su rendimiento es exactamente el mismo que el de una
aplicación nativa. Además ofrece acceso directo nativo a todas las APIs de cada
plataforma así como a los controles de interfaz de usuario nativos (de hecho
esto es lo que debes aprender con Xamarin para cada plataforma de manera
diferente según quieras programar para iOS, Android o Windows Phone).
Desarrollo
multiplataforma basado en HTML5
Una
opción muy popular, sobre todo si eres un programador Web, es utilizar alguna
herramienta basada en HTML que genere aplicaciones para todas las plataformas.
Existen muchas, pero la más conocida es PhoneGap/Apache Cordova.
Las
apps escritas en HTML5 y compiladas con PhoneGap, permiten crear la interfaz
usando HTML, CSS y JavaScript, lenguajes muy conocidos y utilizados, y
desplegar a las diferentes plataformas. En cada una además podemos utilizar un
“skin” concreto para que el aspecto sea lo más similar posible al de las
aplicaciones nativas. PhoneGap y similares crean un contenedor para la
aplicación que la ejecuta como si estuviesen en un servidor web local. Además
exponen gran parte de la funcionalidad nativa del dispositivo móvil a través de
librerías JavaScript, de modo que es muy sencillo “engancharse” desde la
aplicación HTML5 que estamos creando.
PhoneGap
es una plataforma muy interesante si eres un programador web y si además tu
aplicación dispone de una versión web.
Entre
las desventajas principales están que las aplicaciones no tiene el mismo
rendimiento que una app nativa, ni tampoco te dan acceso a todas las APIs
nativas de cada plataforma. aunque sí a todas las importantes. Además, aunque
algunas bibliotecas como jQuery Mobile te dan la opción de adaptarse al aspecto
de cada sistema operativo móvil, no puedes simular todos los controles nativos
(aunque sí muchos de ellos).
Si ya
conoces HTML, CSS y JavaScript, entonces PhoneGap te deja construir
aplicaciones para cualquier plataforma móvil usando lo que ya sabes, y te
brinda la funcionalidad necesaria para poder construir el 90% de las
aplicaciones habituales que puedas necesitar, con un rendimiento adecuado
también para el 90% de los casos.
Si lo
que quieres es una aplicación súper-especial que entre muy a bajo nivel (por
ejemplo un juego complicado) y que sea muy compleja en cuanto a interfaz y por
lo tanto el rendimiento es muy importante, entonces PhoneGap seguramente no es
para ti.
No hay comentarios.:
Publicar un comentario