Quiero desarrollar una app móvil… ¿Por dónde empiezo?

Estoy convencido de que en alguna ocasión se te ha ocurrido alguna idea o bien solución de negocio relacionadas con el planeta de las aplicaciones móviles, tal vez te has propuesto ir un tanto más allí y proponer el posible desarrollo de esa idea… Mas, ¿por dónde comenzar?

Profesionalmente mismo me he encontrado en esa situación en múltiples ocasiones, creando múltiples MVP (Minimum Viable Product) y productos finales. Con lo que, aprovechando esta experiencia, te contaré los desafíos con los que me he ido encontrando y de qué manera veo desde mi opinión la actual situación en el desarrollo de apps móviles.

Lo primero: ¿Qué deseo que haga mi aplicación?

Antes de seguir, es fundamental tener definida la funcionalidad y el aspecto general de nuestra aplicación, en tanto que va a ser la primera fase para valorar la aptitud de nuestra “idea”. Para esto puedes emplear una de las varias aplicaciones para efectuar mockups. En alguna ocasión he usado NinjaMock o bien InvisionApp, mas verdaderamente tienes decenas y decenas de opciones con lo que busca la que más te guste, si no, siempre y en toda circunstancia nos va a quedar el lapicero y el papel 😉

Escogiendo plataformas para mi aplicación móvil
En el momento en que tengamos clara la funcionalidad de nuestra aplicación, debemos decidir para qué exactamente plataformas vamos a desarrollar nuestra aplicación. Esto va a depender, entre otras muchas cosas, de si nuestra aplicación será para empleo privado/interno o bien público.

Si nuestra aplicación será de empleo interno, entonces nos vamos a poder limitar al desarrollo de la plataforma móvil corporativa (siempre y cuando exista una sola) y además de esto no vamos a tener la obligación de pasar por los stores (tiendas de aplicaciones). Si bien si nuestra aplicación corre en iOS deberemos abonar la licencia privada de desarrollo para empresas (unos cuatrocientos€)

De todas y cada una maneras, si no deseas depender de la plataforma, puedes decantarse por el desarrollo de una PWA con tecnología híbrida y vas a poder estar en cualquier plataforma sin costos auxiliares.

mock up de aplicación móvil

Si será de empleo público tenemos la obligación de aguantar las primordiales plataformas que hoy en día son Android y también iOS. En España, a diciembre de dos mil dieciocho, las ratios estaban sobre un setenta y ocho por ciento Android y un veintiuno por ciento iOS, conforme los datos de Statcounter.

Si bien en España iOS sea mucho menos usado, es conveniente tenerlo en consideración por múltiples motivos.

Si nuestra aplicación brinca al campo internacional las ratios pueden ser realmente diferentes entre países. En el caso de Estados Unidos, por poner un ejemplo, iOS representa cerca del cincuenta y siete por ciento .
Está probado que las aplicaciones en iOS son hasta cuatro veces más rentables que en Android, debido al perfil como usuario que lo emplea.

Con respecto a las plataformas, no nos olvidemos de que actualmente y con la tecnología PWA (Progressive Web Application) podemos llevar nuestra aplicación a cualquier sistema que disponga de un navegador y eso hay que tenerlo en consideración y aprovecharlo.

¿Qué tecnología utilizo para desarrollar mi aplicación móvil?
Ha llegado el instante de acotar qué tecnología vamos a emplear para desarrollar nuestra aplicación. A mi modo de ver, este es uno de los aspectos más esenciales, que además de esto pueden marcar la diferencia entre el éxito y el descalabro.

Ahora es cuando debemos decidir si la aplicación debe desarrollarse con tecnología nativa, híbrida, híbrida/UI nativo o bien generadas. Si os resulta interesante conocer un tanto más en detalle ciertas de estas tecnologías podéis leer este blog post sobre desarrollo de apps multiplataforma de aplicaciones móviles.

Podemos facilitar a 2 los aspectos a tener en consideración para decidir la tecnología que utilizaremos en el desarrollo de nuestra aplicación.

1. Funcionalidad/Rendimiento
Probablemente este aspecto puede llegar a determinar el emplear una tecnología o bien otra. Hoy día y como hemos comentado en otros artículos, las aplicaciones híbridas han mejorado mucho tanto su desempeño, merced a las mejoras en los webkit, como su look and feel, muy afín al nativo si empleamos los frameworks UI convenientes.

Mas si nuestra aplicación requiere el empleo intensivo de recursos, como animación, gráficos o bien renderización (juegos, RA, CAD, etcétera nos vamos a ver obligados a emplear la tecnología nativa en nuestro desarrollo con tal de poder aprovechar al límite el hardware libre (si bien aun para estos temas existen motores de juegos para videoconsolas como Unity que nos ofrecen frameworks multidispositivo que son verdaderamente eficaces).

En cambio, si nuestra aplicación se fundamenta en la consulta y administración de datos, listas, imágenes, etcétera y conexiones a través de API’s, nuestra aplicación puede desarrollarse en cualquiera de los sistemas citados previamente sin ningún género de inconveniente.

dos. Tiempo/Coste
Afortunadamente o bien desgraciadamente el tiempo y el costo siempre y en toda circunstancia son limitados. Esto puede determinar en una gran parte la resolución final sobre la tecnología a usar, para esto os planteo una pequeña tabla orientativa, donde la más cara sería una aplicación nativa para una plataforma y la más asequible sería una aplicación híbrida que sería más o menos entre un treinta por ciento y un cincuenta por ciento del costo que una nativa.

Si además de esto en nuestra opción híbrida empleamos un Framework como Ionic que nos cambia el aspecto del UI para amoldarlo a la plataforma de ejecución en la que estemos, lograremos una aplicación con aspecto de nativo en todos y cada plataforma por un costo inferior.

Asimismo tenemos quetener en cuenta que este costo se traslada a su mantenimiento y a mejoras de la aplicación. Esto supone una enorme desventaja en el caso de las aplicaciones nativas, en tanto que te fuerza a sostener un desarrollador o bien equipo de desarrollo por cada plataforma en vez de un solo equipo Frontend.

Si te fijas, solo he hablado de aplicaciones nativas o bien híbridas. Esto es por el hecho de que, si te puedes permitir el costo de desarrollo y mantenimiento de tu aplicación en múltiples sistemas separados, mi recomendación es que lo hagas en nativo indudablemente, puesto que dispondrás del mejor desempeño posible. Ahora bien, si tienes alguna restricción de costo y quieres reducir al mínimo la dificultad de mantenimiento y siempre y cuando el factor del desempeño en tu aplicación no sea crítico, la opción mejor indudablemente es el híbrido con tecnología web.

El resto de las opciones, para mí, se quedan a medias; te ofrecen algo más de desempeño que un híbrido y algo menos de costo que un nativo, mas al final la dificultad en el desarrollo prosigue siendo semejante al nativo en tanto que deberás sostener la parte UI de cada plataforma separadamente.

Hasta acá mis consejos para encarar el desarrollo de una aplicación móvil. ¡Espero que te haya sido útil! Puedes echarle una ojeada asimismo al blog post siete pasos para una aplicación móvil de éxito, para saber de qué forma lograr una aplicación de calidad.