Cuando hablamos de apps móviles reconocemos que es la tendencia en cuanto a desarrollo. En la actualidad, el mercado de móviles crece de forma exponencial, y va de la mano con etapas anteriores, según estadísticas 60% en 2018. Sin embargo, no todas las apps funcionan de forma correcta (problemas con el UI, el uso de ciertas funcionalidades) por ello el mercado demanda la mejor mano de obra posible y en este blog les explicaremos los aspectos más importantes a considerar antes de desarrollar un app móvil.
1. Metodología de desarrollo.
El primer punto aplica para cualquier proyecto web o móvil y si eres una empresa de desarrollo de software debes definir por lo menos una. Definir el planning del desarrollo o la metodología que utilizará durante el proyecto es básico. Entre las metodologías más utilizadas está el modelo SCRUM, realizando reuniones de forma periódica, desde el SetUp del proyecto; esto permite estar conectado con el cliente, definiendo los entregables y las líneas de tiempo en cada punto de proyecto.
2. Sistemas Operativos ¿IOS, Android o ambas?
Este aspecto es fundamental si quieres sacarle el máximo provecho a tu app movil, se debe tomar en cuenta el sistema operativo. Lo que diferencia Android e IOS es la utilización del recurso que te ofrece el SO, por ejemplo, si desarrollamos una app nativa tendrás todo el abanico de posibilidades y funciones que te ofrece Android y IOS, cómo usar la cámara, manejar archivos, entre otros aspectos relacionados al SO o el Hardware.
Pero cuidado, esto no quiere decir que una app híbrida no lo pueda hacer, tenemos el caso de Instagram que es una app totalmente híbrida y utiliza todos estos recursos; simplemente hará el proceso de desarrollo más largo y tedioso, la recomendación es elegir lo que mejor se adapte a los requerimientos y si se puede hacer nativa pues mejor.
3. Tecnología (Lenguajes de programación, frameworks, entre otros)
Este punto va relacionado al anterior, una vez elegida la plataforma sobre la que trabajaremos, se debe seleccionar el lenguaje o frameworks que a utilizar. En el caso de IOS tenemos que recomendar Swift (si se desarrollará una app nativa) porque se ha convertido en el lenguaje oficial para desarrollar aplicaciones en iOS.
Por otro lado, en Android, tenemos Kotlin, un lenguaje de programación que corre sobre Java y que también puede ser compilado a código fuente de JavaScript. Y ¿Por qué se recomienda desarrollar sobre Kotlin? Debido que la tendencia es utilizar este lenguaje y no Java como tradicionalmente se venía haciendo, además que que hace unos años Google lo nombró lenguaje oficial para SO Android por lo que puede suceder el mismo caso de Swift.
¿Apps híbridas? Además de otros factores como la lógica de negocios y el budget para desarrollar una app, seguramente querrás que tu app se hibrida. Aqui si hay mucho de donde escoger, uno de los favoritos de la comunidad son los frameworks como React Native, Ionic, Xamarin hasta Flutter, en este caso el desarrollador se inclinara por el tipo de proyecto que se le presente y la framework que mejor le permita trabajar.
4. Wireframe
Este es un punto de lo más controversial e importante a la hora de desarrollar un app, por lo que no es entendible que muchas agencias omitan este punto simplemente para no tomarse el tiempo de bosquejar cada una de las pantallas que conformará la app. El proceso es sencillo:
Esto es muy importante porque agilizar el proceso de desarrollo, el developer solo se tendrá que preocupar por replicar el diseño de wireframe y luego tocar la lógica del negocio. Este proceso lo lleva a cabo un diseñador gráfico, especialista en desarrollo de páginas web o apps móviles.
Otra opción que te ayudará a ahorrar mucho tiempo existe Balsamiq Wireframe, que es una app de escritorio que te permite crear wireframe geniales de forma sencilla, omitiendo un proceso algo anticuado. La gran ventaja de utilizar herramientas como esta, es que agrupará tus templates genéricos en una sola plataforma, sin mencionar de los miles de opciones que te ofrece la comunidad.
5. Arquitectura (MVC, MVVM y MVP)
Definir la arquitectura en Android es muy importante, para desarrollo de apps existen varias, desde la MVC, MVVM, hasta la MVP. Básicamente, esta es la razón de ser de tu aplicación móvil, aquí defines como se van a comportar los objetos, los tipos de vistas que estarán disponibles, el modelo de negocios y cómo se comunican las diferentes componentes o capas dentro de la app.
Modelo Vista Controlador (MVC) esta arquitectura separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.
Modelo Vista Presentador (MVP) es similar al patrón MVC. Se deriva del patrón MVC, en el que el controlador es reemplazado por el presentador.
Modelo Vista Vista Modelo (MVVM) esta arquitectura separa el UI de la lógica de negocio. En la imagen podemos ver las tres partes en las que se divide esta arquitectura:
Elegir la arquitectura es de suma importancia, y todas tiene su parecido, la diferencia radica en la forma en la que se comunican las capas que la integran entre sí. Elegir la arquitectura definirá como organizaras el código, para evitar manejar las clases juntas.
En este caso particular, no hay un modelo específico para cada SO, todo depende de lo que necesites y definir un modelo puede ayudar bastante para entregar el proyecto de forma correcta, sin embargo, la tendencia es utilizar la arquitectura MVP.
¡Y ya está! Esto son 5 aspectos que debes (si o si) tomar en cuenta antes de desarrollar un app, es muy importante en caso de que estés buscando una agencia para desarrollar tu app, como Rootstack, plantearse todo este panorama, recordando que cada proyecto suele ser diferente y estamos seguros que con los tips brindados en este post podrás elegir con más facilidad.