Blog

Categorías

X Cerrar

Categorías

Desarrollo móvil: primer acercamiento

Feb 16 2017 | Programación

Intentar adentrarse en el desarrollo de aplicaciones para dispositivos móviles puede resultar en principio un tanto abrumador, miles de dispositivos con hardware de todo tipo y diversos sistemas operativos hacen parecer que es demasiada información por procesar, bueno, tal vez sí, pero para que esto no se convierta en un inconveniente hay que comenzar por definir ciertos parámetros que permitan ir descartando algunas posibilidades y alcances.

En principio hay que tener en cuenta el público al que se quiere llegar (joven o adulto), en qué categoría encaja la aplicación a desarrollar (empresarial, educativa, ocio, entre otros), si esta es gratis o de paga, si el desarrollo involucra un sistema operativo en particular o cubrir varios de ellos. De esta manera se comenzará a tener una estructura que facilite la toma de decisiones sobre las herramientas y tecnologías a utilizar.

El desarrollo de aplicaciones móviles podría dividirse en dos grandes ramas: el desarrollo híbrido y el desarrollo nativo.

El desarrollo híbrido implica principalmente dos factores: El primero es hacer uso de lenguajes como HTML5, CSS y JavaScript, que nos permitan crear las interfaces gráficas y cierta interacción, básicamente se trata de una aplicación web. El segundo factor se trata de un empaquetador que tomará la aplicación web y la encapsulará de tal manera que esta pueda ser instalada y visualizada como cualquier otra aplicación dentro del dispositivo. Estos empaquetadores ofrecen además ciertas características que permiten extender el lenguaje JavaScript, brindando así la posibilidad de acceder a ciertos recursos del dispositivo como son la cámara, los contactos, acelerómetro, entre otros. Para lograr el acceso a estos recursos con frecuencia se hace por medio de la librería Apache Cordova. Dentro de los múltiples empaquetadores existentes se pueden destacar: Phonegap e Intel XDK.

La ventaja de desarrollar aplicaciones híbridas es que al hacerse uso de lenguajes web la curva de aprendizaje es baja, se obtienen resultados de manera rápida, y se pueden empaquetar las aplicaciones para distintos sistemas operativos con apenas unos cuantos cambios para cada uno de ellos. Existen también algunas desventajas como el acceso limitado a los recursos del dispositivo, así como el bajo rendimiento de la aplicación en ciertos escenarios. En general el desarrollo híbrido es pertinente si la aplicación no es muy compleja, no se cuenta con el conocimiento, el tiempo o el presupuesto para realizarla de manera nativa.

Por su parte una aplicación nativa se refiere a que ha sido desarrollada en el lenguaje nativo del sistema operativo que posee el dispositivo. Según gartner, para agosto de 2016 los tres sistemas operativos más populares son: Android, iOS y Windows Phone, cada uno de ellos con su propio lenguaje nativo; Java para el caso de Android, Objective C o Swift para iOS y C# (C Sharp) o .NET (punto NET) en Windows Phone.

Los lenguajes utilizados para este tipo de desarrollo son potentes, permiten el acceso a absolutamente todos los recursos del dispositivo y requieren un conocimiento medio / avanzado de programación. Debido a lo extensos y complejos que son estos lenguajes, es conveniente hacer uso de un Entorno de Desarrollo Integrado o IDE (Integrated Development Environment). Estos IDE facilitan y agilizan muchas de las tareas requeridas comúnmente en un desarrollo, además brindan herramientas como emuladores de dispositivos, detectores de errores en tiempo real o la integración de sistemas de control de versiones como GIT. Por supuesto existen diversos IDE para trabajar con los lenguajes nativos de cada sistema operativo. En el caso de Android se puede trabajar con eclipse en combinación con el ADT plugin aunque ya es considerado obsoleto para abrirle paso a Android Studio como el IDE oficial para Android, por su lado para el desarrollo en iOS existe el Xcode (cabe anotar que para desarrollar aplicaciones para iOS se requiere hacerlo sobre MAC OS) y finalmente para Windows Phone Visual Studio.

En los últimos años ha tomado protagonismo una manera distinta de desarrollar aplicaciones para móviles, podría considerarse que es un intermedio entre lo híbrido y lo nativo, puesto que el desarrollo se realiza con lenguajes como JavaScript y XML, pero prometen acceso a todos los recursos y exportación nativa (por lo tanto rendimiento similar) a diversos sistemas operativos móviles. Entre los más destacados se encuentran Titanium Acelerator y NativeScript.

Espero este pequeño recorrido al mundo del desarrollo móvil haya despertado curiosidad e interés y sea el punto de partida para explorar la infinidad de posibilidades que este nos brinda. Una vez más los invito a comentar cualquier inquietud o sugerencia, que con gusto leeré y trataré de responder a la mayor brevedad posible. ¡Saludos!