Creación de software para dispositivos móviles
La definición de desarrollo de aplicaciones móviles puede ser amplia (abarca todos los procesos implicados en la creación y lanzamiento de una aplicación móvil) o específica (se refiere a la codificación y la implementación de la aplicación). En este artículo se tratarán ambas definiciones de desarrollo de aplicaciones móviles y nos centraremos especialmente en la definición de desarrollo de aplicaciones móviles para las personas que toman decisiones o son responsables de cómo se crea el software en sí.
Para definir el desarrollo de aplicaciones móviles, debemos empezar por definir móvil, que en este caso se refiere a dispositivos electrónicos portátiles como teléfonos inteligentes, tabletas, ordenadores portátiles, relojes inteligentes, lectores electrónicos y consolas de juegos portátiles. Cuando hablamos de aplicaciones, nos referimos no sólo al software nativo de esos dispositivos, sino también a los sistemas operativos, plataformas y lenguajes comunes que admiten. Como se verá más adelante, hay muchas formas diferentes de enfocar el desarrollo de aplicaciones móviles y muchas decisiones que tomar.
El proceso de desarrollo de aplicaciones móviles
El proceso de creación y lanzamiento de aplicaciones móviles suele entenderse en una serie de pasos o fases. Estas fases del proceso de desarrollo de aplicaciones móviles implican a muchas personas y disciplinas diferentes dentro de una organización, incluidos los negocios, el marketing, el diseño y la ingeniería. Las fases del proceso de desarrollo de aplicaciones móviles son:
- Estrategia
- Planificación
- Diseño
- Implementación
- Pruebas
- Lanzamiento
¿Cuánto se tarda en crear una aplicación móvil?
Las organizaciones dedican entre tres y nueve meses, o más si es necesario, al desarrollo de aplicaciones móviles. El alcance y las características de una aplicación influyen en los plazos del proceso de desarrollo de aplicaciones móviles.
Estrategia
El proceso de desarrollo de aplicaciones móviles comienza con la comprensión de por qué una aplicación móvil podría ser una buena solución a un problema o un enfoque para una oportunidad, y luego decidir qué crear y cómo. En la fase de estrategia, las organizaciones establecerán los objetivos de la aplicación y las medidas de éxito, analizarán el mercado y la competencia, investigarán las necesidades de sus clientes y determinarán a qué usuarios y casos de uso servirá la aplicación. En la fase de estrategia, las organizaciones también pueden empezar a explorar qué plataformas de desarrollo de aplicaciones móviles se adaptarían mejor a sus objetivos y requisitos. Es en esta fase cuando las organizaciones también empiezan a considerar el marketing en torno al lanzamiento de la aplicación.
Planificación
En la fase de planificación, las organizaciones acuerdan cuatro detalles clave del proceso de desarrollo de la aplicación móvil: los equipos, las herramientas, las tecnologías y los plazos. En este momento, ya tiene una idea del tipo de aplicación móvil que necesita crear, quién la creará y qué plataforma o plataformas usará. Durante esta fase, las organizaciones establecerán un plan de desarrollo del producto, decidirán qué funciones se crearán, en qué orden y cuándo, fijarán hitos y diseñarán un plan de proyecto que les permita cumplir la fecha de lanzamiento prevista. Conocer los recursos y la experiencia disponibles, así como saber cómo implementar la tecnología elegida para el proceso, es vital para determinar esa fecha y lograr el lanzamiento.
Diseño
El aspecto, las características y las funciones de la aplicación móvil empiezan a tomar forma durante la fase de diseño. En esta fase del proceso de desarrollo de aplicaciones móviles, los equipos diseñarán la experiencia del usuario y crearán las interfaces de usuario y los estados de la aplicación en varias fidelidades. Pueden empezar con maquetas de baja fidelidad para ofrecer una prueba de concepto o recabar la opinión de los clientes en una fase temprana. Los desarrolladores e ingenieros pueden ayudar a crear prototipos o asesorar sobre las decisiones de UX y UI en esta fase, manteniendo a los equipos al tanto de los requisitos y especificaciones técnicas de las plataformas que la organización ha decidido usar. De este modo, cuando las organizaciones pasen a las pantallas completas, habrán diseñado una aplicación que realmente se puede crear.
Implementación
En este contexto, la palabra desarrollo a veces se refiere al ciclo de vida completo del desarrollo de software que implica la creación y publicación de una aplicación móvil. Sin embargo, más comúnmente, desarrollo significa esta fase de desarrollo de software de aplicaciones móviles. Más adelante definiremos esta fase con más detalle. Por ahora, esta fase se describe mejor como el paso en el que los equipos establecen la arquitectura técnica y la pila tecnológica, incluyendo el front-end, el back-end y las API, fijan los hitos de desarrollo, determinan el ciclo de vida de desarrollo de la aplicación y codifican la aplicación.
Pruebas
Las pruebas son una fase fundamental del proceso de desarrollo de aplicaciones móviles. Sin pruebas, las organizaciones no pueden estar seguras de que su aplicación será segura, funcionará de la manera que los usuarios necesitan y esperan que lo haga, y funcionará donde la implementen. Durante esta fase, los equipos se encargan del control de calidad, creando casos de prueba para evaluar la usabilidad, el rendimiento, la estabilidad y la seguridad de la aplicación en todos los dispositivos en los que está previsto que se ejecute. Con frecuencia, las organizaciones someten la aplicación a pruebas de estrés para asegurarse de que la arquitectura de la aplicación puede adaptarse a una demanda repentina.
Lanzamiento
La fase final del proceso de desarrollo de aplicaciones móviles es el lanzamiento. Una vez implementada la aplicación, la organización ofrece asistencia a los clientes que la utilizan, así como supervisión y mantenimiento continuos para garantizar que la aplicación está disponible y funciona como debería. Las campañas de marketing y las mociones para fomentar la adopción de la aplicación suelen coincidir con esta fase. Si la organización decide realizar mejoras o alteraciones en la aplicación que van más allá del alcance de los cambios que su ciclo de vida de desarrollo está equipado para manejar, puede decidir comenzar de nuevo el proceso de desarrollo de la aplicación móvil.
Desarrollo de software en el proceso de desarrollo de aplicaciones móviles
Esta primera tarea de la fase de desarrollo consiste en establecer la arquitectura técnica de la aplicación móvil. A menudo confundida con la pila técnica, que incluye el front-end, el back-end y las API, la arquitectura técnica son las reglas y patrones que rigen el desarrollo de la aplicación móvil.
Arquitectura técnica
La arquitectura técnica suele concebirse en tres capas:
Capa de presentación
Es la capa de la aplicación que el cliente ve y con la que interactúa. La capa de presentación incluye la interfaz de usuario y todos los elementos de la aplicación que conforman la experiencia del usuario.
Capa de negocio
En esta capa reside la lógica que rige los flujos de trabajo, el intercambio de datos y las operaciones. Los aspectos fundamentales de la aplicación móvil, como la seguridad, el almacenamiento en caché, el registro y la gestión de excepciones, se gestionan en esta capa.
Capa de datos
La capa de datos sirve a los requisitos de la propia aplicación, proporcionando utilidades de datos, componentes de acceso a datos y ayudantes o agentes de servicio. También es la capa que valida y mantiene los datos y soporta las transacciones de datos.
Pila de tecnología
Del mismo modo, la pila tecnológica, o tech stack, también consta de las tres piezas mencionadas. Sin embargo, estas piezas representan opciones específicas utilizadas para construir y apoyar la aplicación en lugar de directrices para su creación.
Front-end
Al igual que la capa de presentación, las herramientas y lenguajes utilizados para codificar el front-end de la aplicación móvil dependen en gran medida de los dispositivos en los que se implementará la aplicación. Hay muchas opciones, y la mayoría de los dispositivos móviles tienen lenguajes específicos que les son nativos.
Back-end
El back-end es la parte de la aplicación que incluye la base de datos y otros objetos similares que residen en un servidor y soportan las funciones de la aplicación móvil. Los equipos están menos sujetos a los dispositivos a la hora de elegir tecnologías de back-end móvil y a menudo pueden encontrar soluciones de back-end prefabricadas.
API
La aplicación se comunica entre el back-end y el front-end a través de la API, que también permite a la aplicación integrarse e interactuar con otras aplicaciones y servicios.
Sin embargo, antes de que los equipos puedan elegir su pila tecnológica, o incluso establecer su arquitectura técnica, primero tienen que decidir qué tipo de aplicación móvil están creando.
Tipos de aplicaciones móviles
Cuando se trata de desarrollar aplicaciones para dispositivos móviles, las organizaciones pueden elegir entre varios tipos de aplicaciones móviles. En este caso, el tipo de aplicación móvil no se refiere a lo que la aplicación permitirá hacer a sus usuarios, sino a cómo se creará la aplicación.
Aplicaciones nativas
Las aplicaciones específicas para un determinado dispositivo o plataforma -como Android o iOS- se denominan aplicaciones nativas. Estas aplicaciones se ejecutan directamente en el sistema operativo del dispositivo, usan los lenguajes y marcos que proporciona la plataforma y se despliegan a través de la tienda o marketplace específicos del sistema operativo. Las aplicaciones nativas suelen tener acceso completo a todas las funciones y hardware de los dispositivos en los que se ejecutan.
Chat multiplataforma
Los equipos pueden codificar una aplicación en los lenguajes y marcos de su elección y, a continuación, compilar el código para cada sistema operativo en el que se vaya a ejecutar la aplicación mediante plataformas como Xamarin. Las aplicaciones multiplataforma, como se denominan, permiten a los equipos ejecutarse en muchos dispositivos diferentes y reutilizar una gran parte del código, aunque unir el código requiere más trabajo que desarrollar para una sola plataforma.
Aplicaciones web progresivas
Al igual que las aplicaciones web, las aplicaciones web progresivas se ejecutan en navegadores móviles y se suelen crear con JavaScript, CSS y HTML5. Lo que hace progresivas a las aplicaciones web es su capacidad para ofrecer notificaciones push, mejores gestos táctiles e interacción con el hardware utilizando las capacidades avanzadas del navegador. No hay SDK para ayudar a crear aplicaciones web progresivas, pero pueden implementarse sin pasar por un marketplace.
Aplicaciones híbridas
Una mezcla entre aplicaciones nativas y aplicaciones web progresivas, las aplicaciones híbridas son esencialmente contenedores codificados nativamente que ejecutan aplicaciones web. Esta combinación permite que la aplicación tenga más acceso a las características y al hardware de los dispositivos y que se ejecute en más tipos de dispositivos, todo ello manteniendo una única base de código. A pesar de todas sus ventajas, las aplicaciones híbridas no suelen alcanzar el rendimiento de otros tipos de aplicaciones móviles.
Qué tipo de aplicación móvil crear
El tipo de aplicación móvil que una organización decide crear tiene importantes implicaciones sobre las herramientas, plataformas, marcos, lenguajes disponibles para sus equipos, la distribución de la aplicación, el número de bases de código que hay que mantener, los dispositivos en los que se ejecutará la aplicación e incluso lo que puede hacer la aplicación.
A la hora de decidir qué tipo de aplicación móvil se va a crear, conviene tener en cuenta quiénes serán los usuarios y qué necesitan de la aplicación. Por ejemplo, si usan principalmente un tipo de dispositivo o sistema operativo, una aplicación nativa puede ser lo mejor. Las aplicaciones que no dependen de sensores de hardware o GPS pueden ser adecuadas como aplicaciones web progresivas o aplicaciones híbridas, pero quizás no si los usuarios no tienen una buena conectividad. Si los usuarios son miembros de su empresa u organización, es posible que desee considerar una estrategia móvil diferente. Y, por supuesto, todo depende de la experiencia que tenga disponible dentro de su organización o a través de un asociado.
En este gráfico se describen las diferencias y similitudes entre los distintos tipos de aplicaciones móviles para ayudarle a decidir qué tipo de aplicación debe desarrollar.
Comparación de tipos de aplicaciones móviles
Aplicaciones nativas | Chat multiplataforma | Aplicaciones web progresivas | Aplicaciones híbridas | |
---|---|---|---|---|
Número de códigos base | Uno por plataforma | Uno, pero compilado para cada plataforma | Uno en total | Uno para la aplicación, otro para el contenedor |
Lenguajes y plataformas | Solo nativo | A elección del equipo | Solo web | Web y nativo |
Acceso a SDK y API | Sí | Sí | No | Limitado |
Rendimiento | El más alto | Alto | Mínimo | Bajo |
Acceso al hardware del dispositivo | Completo | Mayoría | Muy poco | Algunos |
Capacidad de respuesta al usuario | Bien | Bien | Peor | Insuficiente |
Interactividad | Alto | Alto | Mínimo | Bajo |
Uso de recursos del dispositivo | Alto | Alto | Bajo | Mediana |
Requiere conectividad | No | No | Sí | Sí |
Coste de creación y mantenimiento | El más alto | Alto | Mínimo | Minúsculas |
Dónde se almacena la aplicación | Dispositivo | Dispositivo | Servidor | Dispositivo y servidor |
Se implementa a través de | Marketplace | Marketplace | Explorador | Marketplace |
Requiere aprobación externa | Sí | Sí | No | Sí |
Plataformas y software de desarrollo de aplicaciones móviles
Cuando haya decidido qué tipo de aplicación móvil va a crear, o tal vez cuando esté considerando qué tipo, querrá evaluar las plataformas de desarrollo de aplicaciones móviles. Estas son las plataformas de desarrollo de aplicaciones que usará para desarrollar, crear, probar, depurar, gestionar y, en algunos casos, incluso implementar aplicaciones móviles a lo largo de su ciclo de vida. La mayoría del software de desarrollo de aplicaciones incluye herramientas front-end para crear la interfaz, herramientas back-end para gestionar los datos, herramientas API, herramientas de prueba y herramientas de colaboración y análisis de código.
La mayoría de las plataformas de aplicaciones móviles pretenden ofrecer todo lo que un desarrollador necesita para crear una aplicación móvil. Esto permite a los desarrolladores evitar problemas al moverse entre distintas piezas de software de desarrollo móvil y lidiar con los problemas que surgen entre ellas, como la integridad del código, las incompatibilidades y la pérdida de datos. Las plataformas de desarrollo de aplicaciones móviles también reducen el coste, el tiempo, los recursos y la experiencia necesarios para que una organización cree una aplicación móvil. Aunque algunas organizaciones deciden crear sus propias plataformas, muchas más optan por una de las muchas alternativas de desarrollo de aplicaciones disponibles.
Las mejores alternativas de desarrollo de aplicaciones móviles para una organización varían en función de los tipos de aplicaciones móviles que pretenden crear, los lenguajes que pueden utilizar y los dispositivos a los que quieren dar servicio. Algunas alternativas de desarrollo de aplicaciones móviles son:
- Las herramientas multiplataforma como Xamarin permiten a los desarrolladores crear aplicaciones para Android e iOS utilizando .NET y C#.
- Visual Studio Tools para Xamarin, que usa una única base de código compartida para aplicaciones móviles de Android, iOS y Windows.
- Herramientas con poco código o sin código como Power Apps. La programación con poco código es una manera sencilla de crear aplicaciones de nivel profesional sin conocimientos técnicos. Más información.
Recursos de desarrollo de aplicaciones móviles
Explore los documentos de Azure para desarrolladores móviles
Busque la información que necesita para desarrollar aplicaciones móviles en Azure. Obtenga información sobre notificaciones push, autenticación, análisis y SDK.
Pruebe ahora a crear una aplicación móvil
Configurar una integración continua y una canalización de entrega para aplicaciones Android. Conéctese a cualquier repositorio Git y ponga a su equipo en marcha en cuestión de minutos.
Preguntas frecuentes sobre el desarrollo de aplicaciones móviles
-
La definición de desarrollo de aplicaciones móviles puede ser amplia (abarca todos los procesos implicados en la creación y lanzamiento de una aplicación móvil) o específica (se refiere a la codificación y la implementación de la aplicación).
Obtener más información -
Las fases del proceso de desarrollo de aplicaciones móviles son: estrategia, planificación, diseño, desarrollo, pruebas y lanzamiento.
Obtener más información -
A la hora de decidir qué tipo de aplicación móvil se va a crear, conviene tener en cuenta quiénes serán los usuarios y qué necesitan de la aplicación.
Obtener más información -
Las mejores alternativas de desarrollo de aplicaciones móviles para una organización varían en función de los tipos de aplicaciones móviles que pretenden crear, los lenguajes que pueden utilizar y los dispositivos a los que quieren dar servicio.
Obtener más información -
Las organizaciones dedican entre tres y nueve meses, o más si es necesario, al desarrollo de aplicaciones móviles.
Obtener más información -
Aunque el desarrollo completo de una aplicación móvil puede llevar meses, aquí tienes cinco consejos de Microsoft para empezar ahora mismo con el desarrollo de aplicaciones móviles.
Cinco consejos para crear aplicaciones móviles -
DevOps combina la palabra "desarrollo" y la palabra "operaciones" y se define como la unión de personas, procesos y tecnología para proporcionar continuamente valor a los clientes. La cultura, las herramientas y las prácticas de DevOps pueden ayudar a funciones aisladas, tales como desarrollo, operaciones de TI, ingeniería de calidad y seguridad, a coordinarse y colaborar para producir aplicaciones móviles mejores y más fiables. DevOps ayuda a los equipos de desarrollo a responder mejor a las necesidades de los clientes, a aumentar la confianza en las aplicaciones que desarrollan y a alcanzar más rápidamente los objetivos empresariales del equipo.
Obtenga más información sobre DevOps -
Los desarrolladores se centran normalmente en las capacidades y procesos técnicos de un proveedor de nube, como: la facilidad de implantación, gestión y actualización, si usa interfaces y API estándar, si tiene un sistema formal de administración de eventos integrado con su sistema de supervisión/gestión, si tiene procesos de administración de cambios bien documentados y si admite capacidades híbridas.
Más información sobre la elección de un proveedor de nube