Estoy seguro de que en alguna ocasión se te ha ocurrido alguna idea o solución de negocio relacionadas con el mundo de las aplicaciones móviles, quizá te has propuesto ir un poco más allá y plantear el posible desarrollo de esa idea… Pero, ¿por dónde empezar?
Profesionalmente yo mismo me he encontrado en esa misma tesitura en varias ocasiones, creando varios MVP (Minimum Viable Product) y productos finales. Así que, aprovechando esta experiencia, te voy a contar los retos con los que me he ido encontrando y cómo veo desde mi punto de vista la situación actual en el desarrollo de aplicaciones móviles.
Qué vas as ver en esta entrada
Lo primero: ¿Qué quiero que haga mi aplicación?
Antes de nada, es muy importante tener definida la funcionalidad y el aspecto general de nuestra aplicación, ya que será la primera fase para evaluar la viabilidad de nuestra “idea”. Para ello puedes utilizar una de las múltiples aplicaciones para realizar mockups. En alguna ocasión he utilizado NinjaMock o InvisionApp, pero realmente tienes decenas de opciones así que busca la que más te guste, si no, siempre nos quedará el lápiz y el papel 😉
El Mockup de tu aplicación te ayudará a definir mejor la funcionalidad de tu aplicación
Eligiendo plataformas para mi app móvil
Una vez que tengamos clara la funcionalidad de nuestra app, tenemos que decidir para qué plataformas vamos a desarrollar nuestra app. Esto dependerá, entre otras cosas, de si nuestra app va a ser para uso privado/interno o público.
Si nuestra app va a ser de uso interno, entonces nos podremos limitar al desarrollo de la plataforma móvil corporativa (siempre que exista una única) y además no tendremos la obligación de pasar por los stores (tiendas de aplicaciones). Aunque si nuestra app corre en iOS tendremos que pagar la licencia privada de desarrollo para empresas (unos 400€).
De todas formas, si no quieres depender de la plataforma, puedes optar por el desarrollo de una PWA con tecnología híbrida y podrás estar en cualquier plataforma sin costes adicionales.
Si va a ser de uso público estamos obligados a soportar las principales plataformas que actualmente son Android e iOS. En España, a diciembre de 2018, las ratios estaban sobre un 78% Android y un 21% iOS, según los datos de Statcounter.
Aunque en España iOS sea mucho menos utilizado, conviene tenerlo en cuenta por varios motivos:
- Si nuestra app salta al ámbito internacional las ratios pueden ser muy distintas entre países. En el caso de EEUU, por ejemplo, iOS representa cerca del 57%.
- Está demostrado que las aplicaciones en iOS son hasta 4 veces más rentables que en Android, debido al perfil de usuario que lo utiliza.
Respecto a las plataformas, no nos olvidemos de que hoy en día y con la tecnología PWA (Progressive Web Application) podemos llevar nuestra app a cualquier sistema que disponga de un navegador web y eso hay que tenerlo en cuenta y aprovecharlo.
¿Qué tecnología utilizo para desarrollar mi app móvil?
Ha llegado el momento de definir qué tecnología vamos a utilizar para desarrollar nuestra aplicación. En mi opinión, este es uno de los aspectos más importantes, que además pueden marcar la diferencia entre el éxito y el fracaso.
En este momento es cuando debemos decidir si la aplicación debe desarrollarse con tecnología nativa, híbrida, híbrida/UI nativo o generadas. Si os interesa conocer un poco más en detalle algunas de estas tecnologías podéis leer este post sobre desarrollo multiplataforma de apps móviles.
Podemos simplificar a dos los aspectos a tener en cuenta para decidir la tecnología que utilizaremos en el desarrollo de nuestra aplicación.
1. Funcionalidad/Rendimiento
Posiblemente este aspecto puede llegar a determinar el utilizar una tecnología u otra. Hoy en día y como hemos comentado en otros artículos, las aplicaciones híbridas han mejorado mucho tanto su rendimiento, gracias a las mejoras en los webkit, como su look and feel, muy similar al nativo si utilizamos los frameworks UI adecuados.
Pero si nuestra aplicación requiere el uso intensivo de recursos, como animación, gráficos o renderización (juegos, realidad aumentada, CAD, etc) nos veremos obligados a utilizar la tecnología nativa en nuestro desarrollo con tal de poder aprovechar al máximo el hardware disponible (aunque incluso para estos temas existen motores de videojuegos como Unity que nos ofrecen frameworks multidispositivo que son realmente eficientes).
En cambio, si nuestra aplicación se basa en la consulta y gestión de datos, listas, imágenes, etc. y conexiones mediante API’s, nuestra app puede desarrollarse en cualquiera de los sistemas mencionados anteriormente sin ningún tipo de problema.
2. Tiempo/Coste
Por suerte o por desgracia el tiempo y el coste siempre son limitados. Esto puede determinar en gran parte la decisión final sobre la tecnología a utilizar. Para ello os propongo una pequeña tabla orientativa, donde la más cara sería una app nativa para una plataforma y la más económica sería una app híbrida que sería aproximadamente entre un 30% y un 50% del coste que una nativa.
Si además en nuestra opción híbrida utilizamos un Framework como Ionic que nos cambia el aspecto del UI para adaptarlo a la plataforma de ejecución en la que estemos, conseguiremos una aplicación con aspecto de nativo en cada plataforma por un coste muy inferior.
También tenemos que tener en cuenta que este coste se traslada a su mantenimiento y a mejoras de la aplicación. Esto supone una gran desventaja en caso de las aplicaciones nativas, ya que te obliga a mantener un desarrollador o equipo de desarrollo por cada plataforma en lugar de un único equipo Frontend.
Consejos para desarrollar una app móvil
Si te fijas, solo he hablado de aplicaciones nativas o híbridas. Esto es porque, si te puedes permitir el coste de desarrollo y mantenimiento de tu app en varios sistemas separados, mi recomendación es que lo hagas en nativo sin duda, ya que dispondrás del mejor rendimiento posible. Ahora bien, si tienes alguna limitación de coste y deseas reducir al mínimo la complejidad de mantenimiento y siempre que el factor del rendimiento en tu aplicación no sea crítico, la mejor opción sin duda 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 rendimiento que un híbrido y algo menos de coste que un nativo, pero al final la complejidad en el desarrollo sigue siendo parecida al nativo ya que tendrás que mantener la parte UI de cada plataforma por separado.
Hasta aquí mis consejos para afrontar el desarrollo de una app móvil. ¡Espero que te haya sido de utilidad! Puedes echarle un vistazo también al post 7 pasos para una app móvil de éxito, para saber cómo conseguir una aplicación de calidad, y a este artículo sobre Flutter, un SDK muy interesante para crear apps multiplataforma con rendimiento nativo. También conocer las tendencias en desarrollo de apps pueden orientarte hacia dónde destinar tus esfuerzos.
¿Te estás planteando desarrollar una app móvil para tu negocio? ¡En Profile te ayudamos! Contacta con nosotros.