Las mejores alternativas a la programación nativa en Android
Hace ya algunas semanas que terminó la sección Aprende Android en 20 conceptos, una sección que íbamos publicando semanalmente con conceptos introductorios a la programación para aplicaciones Android.
Pero en todo momento prometimos que la cosa no quedaría ahí, e intentaríamos ir publicando artículos con cierta frecuencia relacionados con el mundo de la programación. De hecho, hace tan sólo una semana hablábamos de Xamarin, una API para crear aplicaciones multiplataforma en C#/.NET.
Hoy no vamos a hablar de ninguna API en concreto, pero si queremos comentar algunos de los entornos de desarrollo más utilizados para las aplicaciones móviles, de tal forma que podamos tener una visión genérica, y en posteriores semanas seguiremos tocando temas de programación, algunas veces hablando sobre algunos de los frameworks que aquí mencionamos hoy.
Pero esto nos lleva a la pregunta: ¿por qué hablar de otros frameworks que no sean las SDK nativas? La respuesta es sencilla. Tenemos que proporcionar todas las herramientas para que cada uno elija la que mejor se adapte a sus necesidades. Sí es cierto que utilizar las API nativas nos permitirá (sólo si sabemos aprovechar bien la API) dar un extra de calidad a nuestra aplicación (por ejemplo, en rendimiento). Pero es cierto que a veces, pensando como compañía, no tenemos el presupuesto en tiempo y dinero para preparar una aplicación tanto para Android como para iOS de forma nativa. Y es precisamente para solventar ese problema para lo que surgen los framework multiplataforma.
APIs multiplataforma con más éxito
Estas APIs están basadas en JavaScript con soporte para HTML5 y CSS. Se tratan por tanto de apps basadas en web, lo que nos permitirá correr aplicaciones tanto en Android, como iOS o otros sistemas operativos como BlackBerry, Windows Phone…
Suelen tener herramientas de diseño de interfaces drag-and-drop (de arrastrar elementos), APIs para conectar a sensores de los dispositivos y otro tipo de utilidades para facilitar la vida al programador.
- jQuery Mobile: EL más popular, una plataforma construida con jQuery, basada en HTML5. Se centra en marcadores semánticos, diseño por temas…
- PhoneGap: Diseñado para JavaScript, HTML5 y CSS, PhoneGap viene con Adobe y la fundación Apache como principales valederos. Cada vez es más robusta, incluyendo ya incluso soporte para Windows Phone desde su versión 2.0. Todo esto nos permitirá utilizar un WebView (Cordova) para que nuestro visor web quede embebido en una aplicación nativa.
- Sencha Touch: La compañía tras Sencha, el popular producto, lanzó su plataforma orientada a móvil. También basada en HTML5/JavaScript, provee de más de 50 componentes ya construidos, gestión de estados y un sistema basado en el modelo vista controlador ya integrado.
- Dojo Mobile: Otro framework HTML5/JavaScript, con modelo vista controlador.
- Titanium: Con esta plataforma podremos crear código nativo a partir de código JavaScript. Esto nos da un punto adicional de rendimiento, al finalmente ejecutar código nativo. Aunque no será igual que escribir el nativo desde el principio.
APIs para programar más allá de JavaScript
Ya que los anteriores frameworks se basaban en web, a pesar de tener ciertas funciones nativas, tenían cierta limitación a la hora de reutilizar código.
Para ello surgen otro tipo de plataformas que no se basan en JavaScript:
- RhoMobile (Ruby): Es una plataforma construida con lenguage Ruby, madurada por Motorola. También se basa en el modelo vista controlador.
- MoSync (C++): Soporte C++, HTML5/JavaScript o ambos en hasta 9 plataformas diferentes. Es compatible con PhoneGap.
- Xamarin (C#/.NET): La plataforma para desarrollar aplicaciones multiplataforma en C#/.NET de la que ya hemos hablado.
APIs para juegos
Siendo los juegos el tipo de aplicación por excelencia, hay que tener en cuenta que haya plataformas especializadas para estas aplicaciones, con motores de juego, soporte de animación 3D…
- Corona SDK: Uno de los más conocidos dentro de los desarrolladores de juegos. Cuenta con una base de 120.000 desarrolladores. Dispone de 500 APIs para el desarrollo de juegos, con su propio motor físico o soporte para interfaces nativas, entre otras funciones.
- Flixel
- Unity3D
Otras herramientas
La lista de frameworks podría continuar casi eternamente, pues cada día surgen nuevas alternativas. A continuación listamos algunas más, pero sin duda nos dejamos muchas atrás:
- Basic4android
- DHTMLX Touch
- iUI
- Kendo UI
- SproutCore
- AppBuilder
No obstante, en las próximas semanas hablaremos sobre algunos de estos frameworks, las características que presentan, ejemplos de código… Todo para que cada uno de vosotros tenga la mayor cantidad de información posible relativa al desarrollo de aplicaciones y las opciones que hay.
Aun así, siempre que se pueda yo recomendaría utilizar las API nativas. De hecho, atendiendo a ciertos análisis y estudios de mercados, aproximadamente el 60% de los desarrolladores para Android e iOS utilizan sólo las SDK oficiales. ¿Esto significa algo, no? Aunque también hay que estar preparado a un proyecto en el que no se pueden asumir costes para apps nativas. Y vosotros, ¿qué pensáis?