Change to English?
Si
Trabajo

Una introducción al desarrollo móvil

Para entender el panorama del desarrollo móvil, primero debemos saber quiénes son los actuales líderes de la industria y quiénes son los nuevos contendientes para 2013/14

Una introducción al desarrollo móvil
7 de febrero de 2013

En el cuarto trimestre de 2012, los sistemas operativos móviles más utilizados fueron Android (con el 68,4% de la cuota de mercado) y iOS (con el 19,4% de la cuota de mercado). Ambos acapararon juntos el 92% de los envíos mundiales de smartphones. Estos resultados convierten a Java (Android) y Objective-C (iOS) en dos de los lenguajes de programación más utilizados para el desarrollo de móviles, pero eso es sólo cuando hablamos de aplicaciones creadas con el SDK de Android o el SDK de iOS.

Los otros sistemas operativos móviles que ya están en el mercado son Windows Phone y Blackberry 10, pero su cuota de mercado es aún muy pequeña. En los próximos meses podemos esperar los siguientes lanzamientos:

Puedes leer más sobre los sistemas operativos móviles aquí y aquí

Los pros y los contras de la codificación nativa

Las ventajas de crear aplicaciones nativas están relacionadas con la máxima flexibilidad y rendimiento. Todos los programadores saben que el uso de los lenguajes de programación de más bajo nivel ofrece la posibilidad de ajustar las aplicaciones, personalizarlas y optimizar el código al máximo nivel. Esto es posible porque se trabaja casi directamente con el hardware; no hay capas innecesarias de complejidad entre el código y el dispositivo.

Las aplicaciones que dependen en gran medida de los gráficos 3D y necesitan procesar muchos datos o hacer un uso intensivo de la CPU son las mejores candidatas para el enfoque de código nativo.

Pero la flexibilidad y el rendimiento tienen un precio y es la complejidad y la duplicación de bases de código. Si quieres que tu aplicación nativa sea compatible con Android e iOS, tienes que tener dos bases de código diferentes, lo que significa que tienes que trabajar doble. Java y Objective-C son dos lenguajes de programación muy diferentes, requieren entornos de programación completamente distintos y el mantenimiento del código (refactorización) puede llegar a ser costoso para personas u organizaciones que no tengan un equipo de desarrolladores trabajando a tiempo completo en aplicaciones móviles.

¿Cuáles son las alternativas?

Por suerte o no, hay varias empresas con productos que prometen resolver el problema de tener dos o más bases de código diferentes para la misma aplicación. Estos productos permiten a los desarrolladores utilizar APIs comunes para construir las apps y luego "exportarlas" a código nativo Java (Android), Objective-C (iOS) o incluso a otras plataformas como Kindle Fire, Blackberry, Windows Phone, etc:

  • Appcelerator y su Titanium SDK y Cloud services gratuitos basados en JavaScript. Anuncian su éxito con más de 50.000 apps desplegadas en el mercado, 419.000 desarrolladores y clientes como eBay, Merck, Mitsubishi Electric, NBC y PayPal. [Escaparate de aplicaciones. Después de haber probado la plataforma durante varios meses, puedo decir que el producto ciertamente funciona y la curva de aprendizaje es bastante suave, lo que hace que el proceso de desarrollo sea bastante divertido. Aunque no todo es tan maravilloso como dicen.
  • Marmalade es uno de los mejores frameworks de desarrollo de juegos que existen. Tanto si decides codificar de forma nativa (C++) como si adoptas un enfoque híbrido (HTML5-nativo), con Marmalade puedes desplegarlo en iOS, Android, BlackBerry, Windows y Mac, así como en determinadas plataformas de Smart TV y (próximamente) de decodificadores. Clientes: Electronic Arts, Nokia, Apple, Konami, Google, Square Enix, nVidia, Samsung, etc. Escaparate de aplicaciones.
  • Adobe PhoneGap es un marco de trabajo gratuito y de código abierto que permite crear aplicaciones móviles utilizando APIs web estandarizadas como HTML5, CSS y JavaScript. Cuenta con 400.000 desarrolladores y colaboradores de IBM, RIM y Microsoft. App showcase.
  • Corona SDK es un conocido framework para desarrolladores de juegos para móviles. A partir de una única base de código, se puede implementar en iOS, Android, Kindle Fire y NOOK. App showcase.
  • Xamarin es otra empresa/producto para desarrollar aplicaciones para iOS, Android y Mac utilizando C#. Tienen 230.245 desarrolladores y clientes como 3M, Microsoft, VMWare, Accenture, Cisco, AT&T, AOL, Monster y HP. App showcase.
  • Shiva3D y Unity3D son opciones más centradas en juegos 3D multiplataforma de alto nivel. Shiva showcaseUnity showcase.
  • MoSync SDK es una opción menos conocida que facilita la creación y compilación de aplicaciones para hasta nueve plataformas diferentes a la vez, utilizando C/C++ o HTML5/JavaScript, o una combinación de ambos. App showcase.
  • Biznessapps y gamesalad son soluciones rápidas y sencillas para pequeñas empresas y juegos sencillos con pocos requisitos de programación y diseño personalizados. Estas soluciones son no recomendables para la gran mayoría de los proyectos debido a las limitaciones de los editores utilizados para construir las aplicaciones y su falta de flexibilidad.
  • Para ver una tabla comparativa ampliada de los frameworks para móviles, visita este enlace, esta página wiki o esta otra.

¿Cuáles son los retos de las aplicaciones nativas y no nativas?

Programar aplicaciones móviles es más difícil que crear aplicaciones de escritorio o web. La plataforma es muy nueva y está cada vez más fragmentada, lo que no ayuda a los desarrolladores.

Por ejemplo, Android tiene cientos de dispositivos diferentes en el mercado. Algunos tienen una pantalla de 3,4'', otros de 7'' o 10''. Algunos funcionan con Android 2.1 y otros con Android 4.3. Algunos tienen 3G, GPS y una pantalla de 300 ppp (puntos por pulgada/densidad de píxeles), HD Ready o Full HD. Las combinaciones posibles son intimidantes y lo cierto es que cada usuario espera que su aplicación funcione a la perfección en su dispositivo.

Algunos aspectos importantes a tener en cuenta son:

  • Decidir qué herramienta/marco/enfoque utilizar es una decisión crítica que debe ser cuidadosamente pensada antes de comenzar cualquier trabajo de desarrollo
  • Rendimiento en dispositivos antiguos... el listón tiene que ponerse en algún momento.
  • Responder rápidamente y con éxito a las quejas/bugs/solicitudes de características en el Android Market y la App Store. Recordar lo de tener bases de código duplicadas...
  • Encontrar el enfoque de marketing adecuado y el valor de una aplicación (esquema freemium o basado en anuncios). Algunas estrategias de marketing requieren mucha personalización en el código. Asegúrate de planificar todo.
Antes de continuar...

Al hacer clic en "Aceptar todas", estás consintiendo que se guarden cookies en tu dispositivo para mejorar el sitio web y analizar cómo es usado.

Idiomas

Change to English?