Hacer una aplicación multiplataforma requiere que se agreguen o se desarrollen características que son diferentes de una plataforma a otra y se deberán hacer ajustes dependiendo de dónde se desplegará la aplicación.
Es posible que las adecuaciones y las pruebas para Android, iOS o web se hayan hecho en diferentes dispositivos, en emuladores o en dispositivos físicos, pero la exportación final a las tiendas de aplicaciones aún requiere que el desarrollador realice algunas tareas en específico y estas difieren de una versión a otra.
También es importante mencionar que Flutter cuenta con recursos para realizar depuraciones antes de lanzar una aplicación y se puede decir que su rendimiento suele ser muy bueno, por lo que ya se tiene una buena parte de la depuración para el despliegue cubierto.
A continuación, se dará una revisión a todas esas tareas que debe realizar el desarrollador, como requisitos para el despliegue e implementación final.
Para Bailey y Biessek (2021) es importante remarcar que, antes de hacer el despliegue, ya se debió haber tomado una decisión respecto a escoger un plan de negocio o modelo de operación de la aplicación. Si los interesados del desarrollo han considerado un modelo de negocio alrededor de las ventas de la aplicación, deben tomar en cuenta los siguientes esquemas que las tiendas de aplicaciones manejan con base en las tarifas por venta:
También es importante considerar los lineamientos para poder publicar aplicaciones, ya que existe una serie de medidas muy estrictas sobre lo que pueden contener, así como la manera en que deben conducirse.
Es deseable que puedas leer e investigar toda la documentación requerida y que apliques el modelo de negocio seleccionado. Utiliza prototipos en Flutter tan pronto como te sea posible, tramita su despliegue en la tienda y revisa el proceso detalladamente, identificando posibles conflictos en una etapa temprana.
Despliegue por medio web
Flutter tiene la capacidad de adaptar el desarrollo para generar aplicaciones web, por lo que los requisitos y las consideraciones para realizar el despliegue por medio web tienen marcadas diferencias a las de una aplicación móvil.
En primer lugar, no existe ningún tipo de restricción por parte de una tienda de aplicaciones y no hay esquemas de pago estrictos o un modelo de guía de implementación a seguir. La implementación es más de tipo general, pero sí hay apartados clave que considerar:
El despliegue por medio web tiene muchas menos implicaciones que al hacerlo en una tienda oficial, pero es importante considerar las variables expuestas para asegurar que la aplicación tenga una vida exitosa en el ambiente web.
Despliegue por medio de tienda de aplicaciones
Para utilizar las tiendas de aplicaciones como plataforma de despliegue, el primer paso es asegurar que exista una cuenta registrada como desarrollador en las tiendas de aplicaciones móviles. Para publicar aplicaciones en Google Play Store y en Apple App Store requieres una cuenta de desarrollador.
Existen tiendas de aplicaciones para Android de terceros, como Amazon AppStore, sin embargo, si la aplicación hace uso de servicios de Google, como Google Maps, la aplicación no podrá desplegarse adecuadamente, por lo que se sugiere que utilices Google Play Store únicamente para aplicaciones Android.
Para registrar una cuenta en Play Store como desarrollador y habilitar la opción de subir a la tienda para publicar una aplicación, Google requiere una tarifa única de 25 dólares americanos como cuota de registro. Puedes obtener más detalles en la página de Android de desarrolladores, en la sección de consola de programador.
El proceso en la App Store de Apple es muy similar, es decir, requiere una cuota de registro anual de 99 dólares americanos, la cual es necesaria para poder subir y publicar una aplicación. Para más detalles y registro puedes visitar la página de iOS de desarrolladores, en el apartado de cuenta para desarrolladores.
Cada plataforma tiene sus propias características para poder hacer su lanzamiento. A continuación, se detallarán los procesos a seguir con Flutter para preparar los desarrollos para su lanzamiento y carga en las tiendas de aplicaciones. El proceso que se presenta es hacerlo de manera manual.
Cabe comentar que, Alessandria y Kayfitz (2021) hacen mención del uso de la plataforma Fastlane de Google, la cual permite automatizar las tareas previas al despliegue y simplifica el armado de los paquetes de carga para que, de una manera mucho más amigable, se haga el generado de los paquetes para las tiendas de aplicaciones. Se sugiere que investigues y profundices más en el tema.
A continuación, se estudian los pasos para preparar los desarrollos para cargarse en la tienda de aplicaciones de cada sistema operativo.
De acuerdo con la documentación oficial de Google (s.f.), el formato para entregar una aplicación en Google Play es el App Bundle, que incluye el archivo APK (Android Application Package). Antes de generar este formato y de iniciar con el despliegue, debes asegurarte de que toda la información sea correcta, que todos los recursos estén provistos y que los ajustes de la plataforma estén configurados. Posteriormente, genera el App Bundle a través de la ejecución del comando flutter build appbundle. Para preparar el paquete, se enumerarán los procedimientos necesarios para que se integre.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Adicional a la etiqueta uses-permission, existe la de uses-feature, la cual es una manera de requerir una característica del dispositivo de forma obligatoria. Por ejemplo, si uses-feature tiene el requisito de cámara, la aplicación no podrá instalarse en dispositivos sin cámara. Es importante verificar con detenimiento la configuración del AndroidManifest.xml, ya que un ligero cambio segmentará el mercado disponible para la aplicación.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
En Android, la ubicación de íconos se encuentra en la siguiente ruta: Android/app/src/main/res. Ahí se deben reemplazar los archivos ic_launcher.png en cada una de las carpetas mipmap-xxxdpi que se localicen. Observa las sugerencias que puedes encontrar en la página material.io para que el ícono esté de acuerdo con las tendencias de diseño recomendadas por Google.
En la etiqueta de minSdkVersion coloca la versión mínima del nivel Android API. Este valor es dado automáticamente por Flutter. La etiqueta targetSdkVersion es la versión del Android API sobre la cual la aplicación se ha diseñado. Por último, las etiquetas de versionCode y versionName, esas configuraciones son dadas en automático en el pubspec.yaml.
Observa el ejemplo del código:
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
El archivo obtenido se debe declarar en el archivo app/build.gradle.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Observa el ejemplo:
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Esta configuración simplemente vincula las variables keyAlias, keyPassword, storeFile y storePassword que se crearon en el paso 2 a las propiedades que se leyeron del archivo key.properties.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Play para subir el appbundle de acuerdo con la documentación oficial de Google. Una vez cargado el archivo, procede a escoger uno de los cuatro tipos de lanzamiento de aplicación disponibles, los cuales se enlistan a continuación:
Antes de seleccionar la opción de producción, se sugiere que hagas las pruebas internas para resaltar alguna posible eventualidad que surja en la aplicación y haya que depurar. Puedes ir subiendo el escalafón a otro tipo de pruebas hasta que determines que la aplicación es viable para su lanzamiento.
Por último, es necesario adjuntar elementos en la consola de Google Play, como una descripción, capturas de pantalla, videos, términos y condiciones, etcétera, de la aplicación, así que, debes considerar invertir una cantidad de tiempo razonable para cubrir las variantes y factores que se requieran en la consola de Google Play.
El proceso de lanzamiento de una aplicación requiere de varias actividades a realizar, es decir, te invita como desarrollador a tomar un espacio de tiempo para estudiar la documentación oficial de la consola de Google Play y para realizar cada una de las actividades descritas con anterioridad, para así tener un lanzamiento correcto y con el menor número de incidentes.
Una vez que ya tienes las consideraciones para Google Play, ahora se tratarán los lineamientos y el proceso para cargar aplicaciones en la Apple App Store.
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
El despliegue en la App Store de Apple es mucho más complejo que el de Android. Para hacer una prueba pública se requiere contar con una cuenta de desarrollador para publicar en la tienda. Asimismo, para hacer todo tipo de proceso, desarrollo, pruebas y compilación, se necesitará un equipo de cómputo Mac OS.
Con el fin de realizar el alta de aplicaciones en la tienda de Apple, lo primero es configurar el App Store Connect para obtener el identificador de bundle. Para ello se enumeran los siguientes pasos:
El siguiente enlace es externo a la Universidad Tecmilenio,
al acceder a éste considera que debes apegarte a sus términos y condiciones.
Se agrega el Explicit Bundle ID en la sección Identifiers. Se sugiere que sea el mismo que usaste en Android para el applicationID, algo como com.empresa.nombreapp y completa el registro llenando los campos adicionales solicitados.
El siguiente enlace es externo a la Universidad Tecmilenio,
al acceder a éste considera que debes apegarte a sus términos y condiciones.
Se abre la sección de My Apps y agrega la aplicación llenando todos los campos de los detalles de la aplicación, descripciones, etc. Coloca el bundle ID registrado en el paso anterior.
El siguiente enlace es externo a la Universidad Tecmilenio,
al acceder a éste considera que debes apegarte a sus términos y condiciones.
Debes sustituir las imágenes en la ruta: /ios/Runner/Assets.xcassets, selecciona y agrega los íconos en cada uno de los tamaños y resoluciones.
Para crear el paquete de aplicación, ejecuta el comando en Flutter “flutter build ipa”. Cuando se genera exitosamente el archivo resultante (ipa), lo puedes ubicar en la siguiente ruta del proyecto: build/ios/archive/MyApp.xcarchive. Al abrirlo desde Xcode, una ventana emergente aparece para iniciar la distribución y carga de la aplicación a App Store.
Posteriormente, debes hacer la revisión de algunas configuraciones antes de la carga a la App Store. Después de esta, los servidores de Apple ejecutarán un análisis para supervisar que la aplicación esté correctamente ensamblada y configurada. En caso de contar con errores o sugerencias, se te notificará vía correo electrónico a tu cuenta de desarrollador.
Si el proceso se completa satisfactoriamente y no existen revisiones importantes a implementar, puedes hacer una prueba o una puesta en producción. Las pruebas en iOS son ligeramente diferentes a Android, es decir, solamente hay un escenario de pruebas, pero existe la posibilidad de hacer una con audiencia interna o externa.
Al hacer una prueba externa necesitas hacer, por lo menos, una revisión corta antes de que esté disponible. Una vez que se ha hecho la revisión y corregido los posibles errores, puedes hacer la solicitud para lanzar el despliegue, sin embargo, habrá que esperar un par de días.
Existen diversos controles de calidad en iOS para permitir el despliegue. Se sabe, por comentarios hechos en la comunidad desarrolladora, que el proceso para hacer el despliegue en iOS es muy complicado y poco transparente. Se requerirá de un trabajo de depuración arduo y de mucha paciencia para lograr el despliegue en iOS.
Lamentablemente, el proceso de desarrollo en iOS es el más complicado, ya que requiere forzosamente un equipo Mac OS, además de que el despliegue final suele ser tortuoso. No obstante, debes recordar que iOS tiene alrededor de un cuarto de la tarifa de usuarios de cómputo móvil, por lo que tener una versión de la aplicación móvil en esta plataforma siempre será una buena idea.
Mantenimiento y propuesta de actualización de versión (control de cambios)
Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.
Ya que la aplicación se ha implementado y lanzado, entrará en un proceso del ciclo de desarrollo de mantenimiento y de cambios. Es posible que la propuesta del desarrollo tenga que pivotar una vez que la aplicación sea usada por los primeros usuarios conocidos como early adopters, quienes serán los primeros en dar retroalimentación (Falcon, 2020).
De acuerdo con Gómez y Moraleda (2020), durante la fase de explotación del software (despliegue) es necesario realizar cambios, ya sea para corregir errores no detectados en las fases de desarrollo y prueba, o para agregar funcionalidades o mejoras.
Cualquier sistema de información o aplicación que esté en funcionamiento recibe comentarios sobre la funcionalidad, facilidad de uso y sobre la interfaz de desarrollo. Ante estos comentarios y nuevas situaciones de funcionamiento, la aplicación debe evolucionar para cubrir las nuevas demandas. Esta etapa en el ciclo de desarrollo se llama fase de mantenimiento. El resultado de esta fase se plasma en un documento que se conoce como control de cambios y la documentación de esta información permitirá independizar las fases del desarrollo y a las personas involucradas en el mismo.
También se sugiere implementar un software de control de versiones como Git para el control de cambios. Este es un software que permite controlar los avances y los cambios en un proyecto de desarrollo. Se puede considerar como una especie de máquina del tiempo, ya que permite regresar a versiones anteriores de la codificación, además de facilitar la documentación de los cambios realizados en el desarrollo y permite crear ramas paralelas, es decir, trabajar en una funcionalidad con una copia del código sin necesidad de cambiar el desarrollo original. Al final, se pueden unir las ramas para agregar nuevas funcionalidades.
Prácticamente, el ciclo de desarrollo de aplicaciones no termina con el despliegue, sino que continúa innovándose, creando nuevas funcionalidades y adaptándose a las necesidades. Dicho proceso seguirá hasta el momento en el que la aplicación ya no sea rentable, o bien, cuando su propósito ya no tenga cabida en las necesidades presentes del ecosistema de usuarios.
El despliegue de aplicaciones es una fase en el ciclo de desarrollo de aplicaciones móviles que suele ser complicada, debido a los requerimientos de cada plataforma. Se sugiere realizar prototipos con un mínimo de funcionalidad a modo de prueba para verificar si se cumplen los lineamientos para cada plataforma en su despliegue y, en caso contrario, hacer los ajustes. La retroalimentación que ofrece Apple y Google es vital para afinar las entregas y perfeccionarlas en futuros desarrollos.
Asegúrate de: