Tres herramientas para construir aplicaciones a gran velocidad

4 min lectura
Desarrollo / 18 agosto 2016
Tres herramientas para construir aplicaciones a gran velocidad
Tres herramientas para construir aplicaciones a gran velocidad

BBVA API Market

La mayoría de equipos de desarrollo y operaciones utilizan metodologías Agile y Scrum para el lanzamiento de proyectos digitales o software. La idea es crear grupos de trabajo multidisciplinares, capaces de alcanzar pequeños hitos rápidos en sprints consecutivos que permiten publicar un Producto Mínimo Viable (Minimum Viable Product o MVP) lo antes posible. En el caso de las aplicaciones, existen algunas herramientas sencillas que pueden ayudar a ese gran objetivo.

Muchas de estas herramientas disponen de una versión libre o gratuita, que tienen algunas de las funcionalidades capadas pero que, en sí misma, son un producto mínimo viable bastante útil. Y luego también tienen su versión de pago, con una licencia que conlleva un coste anual. Algunas de estas soluciones permiten desarrollos para la tienda de Apple (Apple Store), otras para Android (Google Play) y también para Windows Phone. Un resumen práctico de tres de las más importantes: 

1.    Android Studio

Android Studio es un conjunto de herramientas más que una sola, concretamente es un Entorno de Desarrollo Integrado (IDE) para la creación rápida de aplicaciones en el sistema operativo móvil de Google. Lo interesante de Android Studio es que automatiza algunas funciones para que los desarrolladores se puedan concentrar en el diseño más puro de una aplicación nativa, apoyado en un sistema flexible que da todas las oportunidades posibles al desarrollador.

Algunas de sus características principales

– Capacidad para ejecutar y depurar el código de la aplicación sin necesidad de reiniciarla o reconstruir el archivo de instalación APK. Así el desarrollador puede ver en instantes, sin complicaciones, el resultado de sus cambios. 

– Editor de código inteligente: permite aumentar la calidad del código y la productividad de los desarrolladores con funcionalidades como la refactorización o el análisis de programación. A medida que el profesional escribe el código, Android Studio propone sugerencias. 

– Emulador de funcionalidades. Android Studio permite que el programador pueda probar su aplicación sin necesidad de un dispositivo móvil real, incluso con las distintas configuraciones posibles: tanto para teléfonos inteligentes, como para tabletas, dispositivos con sistema operativo Android Wear (relojes inteligentes) y también para dispositivos con Android TV. 

– Integración de control de versiones, tanto GitHub como Subversion

– Plantillas de código que permiten añadir, de forma sencilla, patrones estándar en el desarrollo de aplicaciones o, incluso, importar a Android Studio aplicaciones funcionales desde plataformas opensource como GitHub. 

– Integración con todo tipo de marcos de desarrollo. 

– Android Studio admite el uso de lenguajes de programación como C++ y Java gracias a la caja de herramientas Android NDK

– Integración de Android Studio con la nube: los desarrolladores pueden implementar un back-end para su aplicación en Google Cloud Platfrom

2.     Titanium Appcelerator SDK

El Kit de Desarrollo de Software Titanium ofrece a los desarrolladores el lanzamiento de aplicaciones móviles multiplataforma nativas mediante el uso de JavaScript y la interfaz de desarrollo de aplicaciones de este SDK, que permite abstraer la mayoría de APIs nativas de las plataformas móviles (iOS y Android).

El concepto de multiplataforma se refiere a que el desarrollador no tiene por qué programar la aplicación en iOS y Android por separado, sino que lanza un único producto para uno de los entornos y luego retoca lo necesario para adaptarla al otro. Es un concepto que aligera el proceso de desarrollo, aunque también tiene sus desventajas. Se evita el proceso de una app desde cero por plataforma.

Titanium SDK pertenece a Appcelerator. Hasta hace muy poco, este kit estaba bajo licencia versión 2.0 de Apache, su uso personal y comercial era totalmente gratuito. Hoy en día existe una política de precios. Aún sigue siendo libre para los usuarios antiguos (mediante invitación), pero la nueva versión de Titanium SDK ya tiene un coste para los desarrolladores nuevos: licencia Indie por un precio de 39 dólares al mes, la licencia Pro por 99 dólares al mes y luego la versión empresa.

Lógicamente, con estos precios se ofrece algo más que el desarrollo con este kit. Appcelerator es una plataforma que provee de todas las funcionalidades que van más allá de un SDK y que los desarrolladores de aplicaciones también necesitan: depuración de código; sistema de pruebas; procesos de implementación; monitorización; y recopilación de datos para llevar a cabo toda la analítica.

3.     Xamarin

Xamarin es una herramienta de desarrollo de aplicaciones nativas con bastante empuje en los últimos tiempos. Podría decirse que se ha convertido en el relevo natural de Titanium SDK. Xamarin apuesta claramente por C# como el mejor lenguaje de programación para el desarrollo de aplicaciones, aunque los programadores también pueden usar esta solución con otras sintaxis como Java, Objective-C (usado normalmente para el entorno Android) o Swift (entorno iOS). También es posible el desarrollo de apps nativas en Windows Phone. 

Al final Xamarin apuesta por el mismo enfoque que Titanium SDK, el desarrollo de aplicaciones multiplataforma. En el caso de Xamarin, las apps comparten casi el 100% de la lógica y el código de la interfaz de usuario en C# y XAML para los distintos entornos (iOS, Android y Windows Phone). Esto es gracias a una herramienta llamada Xamarin.Forms, que incluye más de 40 controles y formatos: por ejemplo soporte para gestos avanzados, botones, etiquetas, diseños… 

Ejemplo de programación en Xamarin.Forms, en este caso en sintaxis C#:

using Xamarin.Forms;

var profilePage = new ContentPage {
    Title = “Profile”,
    Icon = “Profile.png”,
    Content = new StackLayout {
        Spacing = 20, Padding = 50,
        VerticalOptions = LayoutOptions.Center,
        Children = {
            new Entry { Placeholder = “Username” },
            new Entry { Placeholder = “Password”, IsPassword = true },
            new Button {
                Text = “Login”,
                TextColor = Color.White,
                BackgroundColor = Color.FromHex(“77D065”) }}}
};

var settingsPage = new ContentPage {
    Title = “Settings”,
    Icon = “Settings.png”,
    (…)
};

var mainPage = new TabbedPage { Children = { profilePage, settingsPage } }

 

En el proceso de ejecución, los controles se asignan a cada una de las interfaces de usuario nativa específica para cada sistema operativo. Por poner un ejemplo práctico, un UITextView en iOS se convierte en un EditText en Android y un TextBox en Windows Phone. Al final es un mismo elemento, programado una vez, que en el momento de ser ejecutado se recoloca de forma nativa en cada plataforma. 

También podría interesarte