Aplicación multiplataforma hecha por estudiantes de la Universidad Tecnológica Metropolitana de Chile enfocada en adaptar la plataforma académica Mi.UTEM de la institución a dispositivos móviles.
- Flutter 3.16.3 o superior.
- Dart 3.2.3 o superior.
- Cualquier IDE compatible con Flutter (Android Studio, VS Code, IDEA, etc).
- Un dispositivo Android o iOS para probar la aplicación. (Para iOS se requiere un Mac, también puedes usar el simulador de iOS y Android).
flutterfire CLI
- Para usar
flutterfiredebemos tener instalado las herramientas de firebase en nuestro computador, para esto debemos instalarfirebase-toolsusando npm (o puedes usar tu package manager de node preferido):npm install -g firebase-tools
- Luego de instalar
firebase-tools, debemos instalarflutterfireCLI usando el siguiente comando:dart pub global activate flutterfire_cli
- Para verificar que
flutterfireCLI se instaló correctamente, ejecuta el siguiente comando:Deberías ver la versión deflutterfire --version
flutterfireCLI instalada en tu sistema.
Ruby (Desarrollo para dispositivos Apple)
Este es un extracto adaptado desde mac.install.guide. Recomendamos instalar ruby desde homebrew con chruby y ruby-install.
- Primero hay que instalar
ruby-installychrubyusando homebrew:brew install ruby-install chruby
- Luego debes agregar a tu
~/.zshrc(o a tu perfil de terminal) las siguientes líneas para configurarchruby:# Chruby source $(brew --prefix)/opt/chruby/share/chruby/chruby.sh source $(brew --prefix)/opt/chruby/share/chruby/auto.sh chruby ruby-4.0.1 # Reemplaza con la versión de ruby que instalaste
- Después de configurar
chruby, puedes instalar la versión de ruby que necesitas (recomendamos usar la última versión estable) con el siguiente comando:
ruby-install -U rubyCocoaPods (Desarrollo para dispositivos Apple)
- Para usar
CocoaPodsen tu proyecto Flutter, primero debes asegurarte de tener instaladoCocoaPodsen tu sistema. Puedes instalarlo usando el siguiente comando:sudo gem install cocoapods
- Luego de instalar
CocoaPods, debes navegar a la carpetaiosomacosdel proyecto y ejecutar el siguiente comando para instalar las dependencias:pod install --repo-update
- Si estás usando un dispositivo Apple para ejecutar la aplicación, asegúrate de tener Xcode instalado y configurado correctamente en tu sistema.
Se asume que ya tienes instalado Flutter, Dart, y las herramientas necesarias para ejecutar aplicaciones Flutter en tu dispositivo como XCode y/o Android Studio.
- Clona el repositorio en tu computador.
- Abre el proyecto en un terminal y ejecuta
flutter pub getpara instalar las dependencias. - Si ejecutarás la app en un dispositivo Apple en iOS o macOS deberás de ingresar a su carpeta correspondiente y ejecutar
pod install --repo-updatepara instalar las dependencias de CocoaPods. - Una vez que hayas instalado las dependencias, configura firebase usando
flutterfire. Sigue las instrucciones defirebase
- Para configurar firebase usando
flutterfire, primero debes ejecutar el siguiente comando en la raíz del proyecto:./scripts/flutterfire-configure all # Puedes agregar --dry-run para ver que comandos se ejecutarán. - Se te preguntará que plataformas quieres configurar. Primero deberá ir las de desarrollo. Puedes validar esto ya que saldrá en el output el proyecto de firebase. En este caso es miutem-dev
Asegúrate de seleccionar solo las plataformas de desarrollo actual (android, ios, macos).
i Found 7 Firebase projects. Selecting project miutem-dev. <------ Este es el proyecto de firebase. ? Which platforms should your configuration support (use arrow keys & space to select)? › ✔ android ✔ ios ✔ macos web windows - Luego debes seleccionar
Build Configurationcomo tipo de configuracióni Found 7 Firebase projects. Selecting project miutem-dev. ✔ Which platforms should your configuration support (use arrow keys & space to select)? · android, ios, macos ? You have to choose a configuration type. Either build configuration (most likely choice) or a target set up. › ❯ Build configuration Target - Luego debes seleccionar
Release-developmentcomo tipo de build configurationi Found 7 Firebase projects. Selecting project miutem-dev. ✔ Which platforms should your configuration support (use arrow keys & space to select)? · android, ios, macos ✔ You have to choose a configuration type. Either build configuration (most likely choice) or a target set up. · Build configuration ? Please choose one of the following build configurations › Debug Debug-production Debug-development Release Release-production ❯ Release-development Profile Profile-production Profile-development - Ahora deberás seleccionar y configurar
Build Configuration, esta vez es para la plataforma de macOSi Found 7 Firebase projects. Selecting project miutem-dev. ✔ Which platforms should your configuration support (use arrow keys & space to select)? · android, ios, macos ✔ You have to choose a configuration type. Either build configuration (most likely choice) or a target set up. · Build configuration ✔ Please choose one of the following build configurations · Release-development ? You have to choose a configuration type. Either build configuration (most likely choice) or a target set up. › ❯ Build configuration Target - Nuevamente debes seleccionar
Release-developmentcomo tipo de build configuration para macOSi Found 7 Firebase projects. Selecting project miutem-dev. ✔ Which platforms should your configuration support (use arrow keys & space to select)? · android, ios, macos ✔ You have to choose a configuration type. Either build configuration (most likely choice) or a target set up. · Build configuration ✔ Please choose one of the following build configurations · Release-development ✔ You have to choose a configuration type. Either build configuration (most likely choice) or a target set up. · Build configuration ? Please choose one of the following build configurations › Debug Debug-production Debug-development Release ❯ Release-development Release-production Profile Profile-production Profile-development - Luego deberás repetir los pasos para configurar producción, pero esta vez seleccionando
Release-productioncomo tipo de build configuration para cada plataforma. Esto es importante ya que el proyecto de firebase tiene configuraciones separadas para desarrollo y producción. - (Paso Extra) Debido a un bug con flutterfire_cli, deberás reordenar en los entornos Apple los scripts, por lo que deberás abrir el archivo
<entorno>/Runner.xcworkspacecon Xcode, luego ir aRunner->Build Phases->Targets->Runnery asegurarte de que el script de FlutteFire (los últimos 2) tengan el siguiente orden:[x] FlutterFire: "flutterfire bundle-service-file" [x] FlutterFire: "flutterfire upload-crashlytics-symbols"
Si no revisas el orden tendrás problemas al compilar ya que el comando para subir los símbolos de crashlytics se ejecutará antes de generar el archivo de configuración de firebase, lo que hará que el comando falle ya que no encontrará el archivo de configuración. Mas información del problema la puedes encontrar en la siguiente discusión: [BUG]: La app no compila por un problema de flutterfire. #29
IMPORTANTE: Si te pierdes o eliges mal alguna configuración no hay problema, puedes volver a ejecutar el comando
flutterfire configurepara corregir cualquier error o configuración mal hecha. También puedes revisar el scriptscripts/flutterfire-configurepara entender mejor como funciona la configuración de firebase usandoflutterfire.También, si el script te pregunta para reemplazar el archivo
firebase_options_<env>.dartpuedes elegiryesya que el script se encarga de generar el archivo con la configuración correcta para cada entorno. No te preocupes por perder alguna configuración personalizada que hayas hecho en el archivo, ya que el script solo genera la configuración de firebase y no toca ninguna otra parte del código.? Generated FirebaseOptions file .../lib/firebase_options_prod.dart already exists, do you want to override it? · yes
Una vez que hayas configurado firebase correctamente, puedes ejecutar la aplicación en tu dispositivo usando el siguiente comando:
En producción:
flutter run --flavor production -t lib/main_prod.dartEn desarrollo:
flutter run --flavor development -t lib/main_dev.dartSi quieres ejecutar la app en un IDE como Android Studio, IntelliJ IDEA o VSCode, puedes usar las configuraciones de ejecución que ya existen para cada entorno. Solo asegúrate de seleccionar la configuración correcta para el entorno que quieres ejecutar (producción o desarrollo).
Para el entorno de desarrollo está la configración Mi UTEM [development] y para el entorno de producción está la configuración Mi UTEM [production]. Estas configuraciones ya están predefinidas para ejecutar la aplicación con el comando correcto para cada entorno.
Este proyecto fue creado por el Club de Desarrollo Experimental (ExDev) de la Universidad Tecnológica Metropolitana y es mantenido por los propios estudiantes con el apoyo del equipo de SISEI. Mira los perfiles que han contribuido a este proyecto: