Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Mobile Development
Code

Plataformas de desarrollo móvil 

Spanish (Español) translation by CYC (you can also view the original English article)

Cuando estés empezando con el desarrollo en dispositivos móviles, puede ser difícil elegir una plataforma. Aún peor, cada plataforma tiene su propio conjunto de idiomas y herramientas para elegir. Entonces, ¿cómo puedes decidir?

Este tutorial te ayudará a elegir una plataforma de desarrollo móvil adecuada para que puedas ingresar y comenzar a codificar aplicaciones.

Plataformas y sus cuotas de mercado

Una plataforma —un ecosistema de dispositivos móviles, conjuntos de herramientas y aplicaciones— suele ser definida por su sistema operativo (SO). Los proveedores de plataformas son grandes empresas como Google, Apple, Microsoft, etc. Cada uno ha desarrollado un sistema operativo que licencia a los fabricantes de dispositivos. A veces, también pueden ser fabricantes de dispositivos. Los fabricantes de dispositivos diseñan y construyen los dispositivos (en su mayoría teléfonos inteligentes y tabletas) con el SO relevante preinstalado. Estos dispositivos se venden luego a los consumidores (los usuarios).

Algunas aplicaciones básicas, desarrolladas por el fabricante del dispositivo o incluso por el proveedor de la plataforma, pueden venir preinstaladas en el dispositivo. Sin embargo, el proveedor y el fabricante del dispositivo por sí solos no pueden satisfacer las necesidades cada vez mayores de los usuarios de estos dispositivos. Así que se basan en desarrolladores "terceros" —¡como tú!— para llenar la brecha entre la oferta y la demanda.

Para apoyar a los desarrolladores que quieren vender aplicaciones para la plataforma, publican SDK, API y otras herramientas para facilitar el desarrollo de aplicaciones. Además, se puede lanzar una "tienda de aplicaciones" oficial, en la cual los desarrolladores pueden publicar sus aplicaciones y desde la cual los consumidores pueden navegar y descargarlas. Así, todo un ecosistema de aplicaciones se construye alrededor de la plataforma.

Actualmente, el sistema operativo Android de Google tiene la cuota de mercado global más grande, con un enorme 86,1%. iOS de Apple tiene un 13,7% y mantiene la segunda posición. La porción restante de alrededor de 0.2% es compartida por todos los otros vendedores combinados. Esto incluye Windows Mobile de Microsoft, BlackBerry OS, Tizen OS, OS de Sailfish y Ubuntu Touch.

La composición global puede cambiar significativamente en algunos países. Por ejemplo, en los Estados Unidos, la cuota de mercado de Android es de 53,4% y la de iOS es de 44,5%, una diferencia notable en comparación con la cuota de mercado global. ¡Si tienes un mercado específico en mente, sería una buena idea investigar ese objetivo demográfico para conocer qué plataforma son propensos a usar!

Arquitectura de la CPU

Aunque todas estas plataformas soportan la arquitectura de CPU ARM, Android amplía aún más su soporte, cubriendo las arquitecturas x86 y MIPS. Tizen, OS de Sailfish y Ubuntu Touch también admiten la arquitectura x86. Sin embargo, a menos que estés programando chips de ROM personalizados, las arquitecturas de la CPU soportadas por cada plataforma no afectarán tu elección.

Cómo elegir una plataforma

Tu familiaridad con los lenguajes de programación

Tendrás que escribir un montón de código como desarrollador de aplicaciones para móviles. Hay ciertas herramientas que te permiten evitar escribir en un editor de código basado en texto. Por ejemplo, tanto Android como iOS tienen herramientas de arrastrar y soltar para crear interfaces gráficas de usuario. Sin embargo, esto no te permitirá utilizar completamente las características y capacidades de la plataforma. Para crear aplicaciones complejas, tendrás que aprender el lenguaje de programación de tu plataforma.

Así que tendrás que poner algún esfuerzo para aprender un nuevo lenguaje de programación o dominar uno que ya sabes. Todas las plataformas principales usan lenguajes de programación populares con grandes comunidades de desarrolladores. Así que asegúrate de aprovechar tus conocimientos y habilidades en esos idiomas.

Si estás familiarizado con Java, encontrarás más fácil desarrollar aplicaciones de Android con SDK de Android (Software Development Kit - Kit de Desarrollo de Software). Sin embargo, algunas características avanzadas de la aplicación requerirán que utilices las habilidades de C y C++, con el Android NDK (Native Development Kit - Kit de Desarrollo Nativo). Además, ahora es posible programar para Android con idiomas alternativos como Kotlin.

iOS requiere habilidades de programación Objective-C o Swift.

Si eres un fan de Microsoft Visual Studio. NET, estarás feliz desarrollando aplicaciones de Windows Mobile con C#.

Para desarrollar para BlackBerry o Tizen, sólo aprende HTML, CSS y JavaScript.

Domina QML o Python, y estarías listo para desarrollar aplicaciones de Sailfish.

Si te encanta Ubuntu Touch, deberías aprender QML o HTML y JavaScript.

Por último, si ya conoces los lenguajes web como JavaScript y CSS, puedes utilizarlos para desarrollar cualquier plataforma, con un framework multiplataforma móvil.

Se proponen y promueven constantemente nuevos lenguajes de programación. Aunque no siempre está claro si estos nuevos idiomas tienen una gran ventaja sobre los antiguos, es una buena idea mantenerse al tanto de las últimas tendencias. Algunos lenguajes de programación pueden llegar a ser obsoletos con la introducción de los nuevos—Swift es un reemplazo para Objective-C, por ejemplo—y algunos viejos idiomas pueden encontrar una existencia renovada, con usos totalmente nuevos.

Desarrollo nativo vs. desarrollo híbrido

Tienes dos opciones cuando se trata de desarrollar aplicaciones para teléfonos inteligentes: aplicaciones nativas e híbridas. Una aplicación nativa publicada en una plataforma no se ejecutará en otra plataforma. Por ejemplo, no puedes instalar una aplicación nativa de Android en un dispositivo iOS. Para ello, debes publicar una versión específica de una plataforma específica, creada con las herramientas de desarrollo y despliegue adecuadas, dirigidas a iOS. Por el contrario, una aplicación híbrida es una aplicación web desarrollada con HTML, CSS y JavaScript, y envuelta en una caparazón (shell) de aplicación nativa (o UI).

Lo mejor de las aplicaciones nativas es que tienen un rendimiento superior y aprovechan al máximo las capacidades del dispositivo. Además, son más seguras. La desventaja es que el desarrollador tiene que mantener varias bases de código para cada una de las plataformas. Dado que las aplicaciones híbridas sólo tienen un acceso moderado a las API nativas, su rendimiento y el nivel de experiencia del usuario (UX) está algo rezagado. La ventaja clave de las aplicaciones híbridas es que el desarrollador podría publicar para múltiples plataformas con la misma base de código.

Si deseas crear aplicaciones nativas, puedes consultar nuestros cursos exhaustivos sobre cómo empezar a codificar aplicaciones para Android o iOS.

Ionic 2 es un framework popular para el desarrollo de aplicaciones móviles híbridas multiplataforma. Se basa en el framework web de Angular 2. Si deseas obtener más información, consulta algunos de nuestros cursos o tutoriales.

Aplicaciones nativas Multiplataforma

Recientemente, ha surgido un nuevo lote de frameworks móviles multiplataforma. Estos combinan las mejores características de las aplicaciones nativas y las aplicaciones híbridas: son rápidas y ligeras y pueden acceder a toda la potencia del dispositivo nativo, pero también están codificadas con JavaScript y otros idiomas web, por lo que una gran cantidad de código puede reutilizarse entre plataformas.

React Native y NativeScript son frameworks populares nativos multiplataforma. Si quieres aprender más sobre estos, consulta nuestro curso completo para principiantes o algunos de nuestros muchos tutoriales.

Tu habilidad para aprender

Si eres un aprendiz rápido, entonces podrías dominar fácilmente la trayectoria nativa del desarrollo. Necesitarás comprender los conceptos básicos de programación, como la programación orientada a objetos (POO), y aprender a sentirse cómodo con los conceptos técnicos específicos de la plataforma, como la gestión del ciclo de vida de las aplicaciones en Android, por ejemplo.

Para empezar, basta con descargar las herramientas necesarias y SDK's del proveedor de la plataforma y darle una oportunidad. La mayoría de estas herramientas son de código abierto, y hay un montón de ejemplos de código y plantillas de aplicaciones incluidas con ellos para ayudarte a empezar rápido.

Si eres un desarrollador web y deseas explorar el espacio de desarrollo en teléfonos inteligentes, entonces podría ser más cómodo partir del desarrollo híbrido o multiplataforma.

Configuración del sistema y facilidad de codificación

Otro factor a considerar es la plataforma del sistema operativo, y a veces la configuración del hardware de la computadora de desarrollo.

Si deseas desarrollar aplicaciones nativas de iOS, no podrás hacerlo en un equipo Windows normal. Necesitas una Mac con macOS, y Xcode, IDE de Apple para el desarrollo de iOS. Del mismo modo, las aplicaciones nativas de Ubuntu Touch se desarrollan mejor con una computadora Ubuntu. Mientras que el SDK de Android se ejecuta en las tres principales plataformas de SO de escritorio, siempre es aconsejable comprobar si tu sistema cumple las especificaciones recomendadas antes de comenzar a desarrollar.

Políticas de la App Store y participación en los ingresos

Tanto las tiendas de aplicaciones de Google como las de Apple cobran una tarifa de registro nominal. Aunque ambos ofrecen el mismo porcentaje de participación en los ingresos (70% del precio de venta en la actualidad), los desarrolladores pueden, en teoría, ganar más ingresos publicando en Apple. Esto se debe a que el número de aplicaciones es relativamente menor y hay menos competencia entre aplicaciones similares. Además, debes tener en cuenta que no todas las ubicaciones geográficas pueden publicar aplicaciones pagadas en la Play Store de Google. Por lo tanto, debes pensar en un método de monetizar tu aplicación de antemano.

Además de vender la aplicación en sí, otra forma de monetizar tu aplicación es mostrando anuncios u ofreciendo desbloquear funciones adicionales.

Tu público objetivo

Este es un factor importante porque el éxito de tu aplicación depende de lo bien que te dirijas a tu audiencia o de la eficacia con que solucionas sus problemas. Mientras que la mayoría de los usuarios de teléfonos inteligentes tienden a pertenecer a las generaciones más jóvenes, hay aplicaciones de teléfonos inteligentes dedicadas a las personas mayores y las personas con discapacidad. Dado que la cuota de mercado de la plataforma cambia por país y grupo de edad, es una buena idea investigar la demografía de la plataforma, si deseas orientarte a un grupo demográfico en específico.

Características del dispositivo admitidas por plataforma

No todos los dispositivos admiten todas las características de una plataforma. Por un lado, hay dispositivos de gama alta, a menudo denominados "productos insignia", que soportan la mayoría de las características. Por otro lado, hay dispositivos de bajo costo, de nivel de entrada, que sólo admiten las funciones básicas. Entonces, hay todo en el medio.

Así que necesitas ser muy selectivo y tomar decisiones informadas cuando desarrolles aplicaciones. El desarrollo de una aplicación que necesite funciones compatibles únicamente con dispositivos de gama alta podría afectar gravemente las ventas de la aplicación.

Por otra parte, esta podría ser una oportunidad, si puedes ofrecer a los usuarios de un dispositivo avanzado una función de aplicación que no está disponible en ninguna otra parte.

Conclusión

En este artículo, he mencionado a todas las principales plataformas de desarrollo móvil y he tratado de darte alguna orientación para ayudarte para elegir entre ellas. La implementación de estos conocimientos te ayudará seguramente a tener éxito en tu negocio de desarrollo de aplicaciones.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.