Aspectos a tener
en cuenta para el desarrollo de una app móvil
En el mundo del
desarrollo de app móviles nos encontramos con muchas opciones de herramientas,
lenguajes y entornos para la programación de las mismas.
Antes de
iniciarnos en este mundo en importante decidir entre una de estas opciones de
cara al desarrollo de nuestras apps:
- Usar
lenguajes y herramientas nativos de cada plataforma:
- ObjectiveC/Swift
y XCode en iOS
- Java
y Android Studio en Android
- #,
XAML y Visual Studio en el caso de Windows Phone y Windows 8 o Windows 10
- Herramientas
multiplataforma que compilan a código nativo. La
más conocida y utilizada es Xamarin.
- Herramientas
multiplataforma basadas en HTML5. La más conocida es
PhoneGap/Apache Cordova, pero existen muchas más.
Encontraremos
ventajas e inconvenientes en cada una de las opciones por lo que podemos tener
dudas a la hora de elegir uno de los caminos. Voy intentar orientaros en la
elección.
Desarrollar con
lenguaje nativo
Desde mi punto de
vista, desarrollar de forma nativa es sin duda lo mejor ya que puedes sacarle
el máximo provecho a tu programación al adaptarse totalmente al entorno en el
que se ejecutará la app.
El problema existe
en que cada plataforma 8Android, iOS, Windows) usa un lenguaje de programación
diferente por lo que si se pretende desarrollar de forma nativa para varias
plataformas el tiempo de desarrollo se dispara pues se debe partir de cero para
cada plataforma, no pudiendo reutilizar código entre una y otra plataforma.
Normalmente los
programadores sólo se especializan en una plataforma de desarrollo para poder
hacerse expertos en la misma.
Ya he nombrado
anteriormente las plataformas de desarrollo más conocidas para cada una de las
plataformas.
Desarrollar en
multiplataforma con compilación a código nativo
Existen
herramientas en el mercado que permiten programar en un único lenguaje que
luego compilan al código nativo de cada plataforma.
La ventaja de
estas herramientas es que sólo es necesario usar un código de programación para
poder desarrollar para todas las plataformas. Además, te permite reutilizar el
código y acelerar de esta forma la programación de tus apps.
Quizás la
herramienta más conocida es Xamarin. Si sabes programar en C# y
.NET, este entorno de desarrollo te permitirá crear tus propias apps para las
tres plataformas principales del mercado (Android, iOS y Windows) con un único
código que será compilado de forma nativa para cada plataforma.
Es un entorno muy
completo ya que las aplicaciones escritas con Xamarin en C# al compilarse a
código nativo en cada plataforma, tienen un rendimiento exactamente igual al
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
Desarrollar en
multiplataforma basado en HTML
Para un
programador web lo más sencillo para desarrollar una app móvil es usar alguna
herramienta basada en HTML que permita generar aplicaciones para las diferentes
plataformas.
Aunque existen
varias opciones en el mercado, quizás una de las más usadas es PhoneGap/Apache
Cordova (dos nombres para un mismo entorno de desarrollo)
Las apps escritas
en HTML5 y compiladas con PhoneGap, permiten crear la interfaz usando HTML, CSS
y JavaScript, 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 crea 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.
El problema o
desventaja principal de este tipo de entornos de desarrollo es el rendimiento
de las aplicaciones resultantes que es inferior al de una aplicación
desarrollada de forma nativa.
Otro aspecto
“negativo” es que tampoco tenemos acceso a las API’s nativas de cada
plataforma, limitando algunas funcionalidades.
¿Porque opción
debo decantarme?
Después de exponer
estas tres alternativas se nos plantea la duda de qué tipo de entorno utilizar.
Yo creo que la elección es bastante sencilla y dependerá por un lado de
nuestras capacidades y de otro de nuestras necesidades:
- Si
sólo vas a programar para una sola plataforma (por ejemplo, Android) y no
conoces C# ni HTML, entonces aprende las herramientas y el lenguaje nativo
de la plataforma elegida.
- Si
conoces C# o HTML, puedes optar por programar en un entorno como Xamarin o
como Phone Gap
- Si,
sin embargo, quieres tener una aplicación para todas las plataformas,
entonces tus opciones son:
- Aprende
ObjectiveC y Cocoa Touch para iOS, Java y el SDK de Android para Android,
y C#/XAML para Windows Phone. Esto es bastante complicado pues requiere
ser un experto en diferentes lenguajes.
- Usa
C# y Xamarin y podrás desarrollar para todas las plataformas con
compilación nativa.
- Usa
HTML5 y PhoneGap (u otra herramienta similar) y podrás desarrollar para
todas las plataformas, aunque con algunas limitaciones.
Después de este
repaso a las diversas opciones de entornos de desarrollo para app móvil creo
que queda bastante claro que todo pasa por dos aspectos básicos:
- Qué
capacidades o conocimientos tenemos para programar de forma nativa o no
- Para
qué plataformas vamos a querer desarrollar.
No hay comentarios.:
Publicar un comentario