Instalación en Chrome OS

Requisitos del sistema

Para instalar y ejecutar Flutter, tu entorno de desarrollo debe tener estos requisitos mínimos:

  • Sistema Operativo: Linux (64-bit)
  • Espacio en Disco: 600 MB (no incluye el espacio en disco para IDE/herramientas).
  • Herramientas: Flutter depende de que estas herramientas de linea de comando estén disponibles en tu entorno.
    • bash
    • curl
    • git 2.x
    • mkdir
    • rm
    • unzip
    • which
    • xz-utils
  • Librerías compartidas: el comando test de Flutter necesita que esta librería este disponible en tu entorno.
    • libGLU.so.1 - proporcionado por mesa packages e.g. libglu1-mesa en Ubuntu/Debian

Para la mejor experiencia por ahora, deberías poner tu dispositivo Chrome OS en modo desarrollador (esto es necesario para instalar apps en tu dispositivo Chrome OS). Para más información, mira como habilitar el modo desarrollador en tu Chromebook.

Obtener el SDK de Flutter

  1. Descarga el siguiente paquete de instalación para obtener la versión más reciente stable release del SDK Flutter:

    (loading…)

    Para otros release channels, y compilaciones más viejas, mira la página SDK archive.

  2. Extraiga el archivo en la ubicación deseada, por ejemplo:

     $ cd ~/development
     $ tar xf ~/Downloads/flutter_linux_vX.X.X-stable.tar.xz
    
  3. Agrega la herramienta flutter a tu path:

     $ export PATH="$PATH:`pwd`/flutter/bin"
    

    Este comando configura tu variable PATH sólo para la ventana actual de terminal. Para agregar Flutter permanentemente a tu path, mira Actualiza
    el path
    .

  4. Opcionalmente, pre-descarga binarios de desarrollo:

    La herramienta flutter descarga binarios de desarrollo específicos de plataforma según los necesita. Para escenarios en los que pre-descargar estos artefactos es preferible (ej., entornos de compilación herméticos, disponibilidad de red intermitente), los binarios iOS y Android pueden ser descargados por anticipado ejecutando:

     $ flutter precache
    

    Para opciones adicionales de descarga, mira flutter help precache.

¡Ahora estas preparado para ejecutar comandos de Flutter!

Ejecuta flutter doctor

Ejecuta el siguiente comando para verificar si existe alguna dependencia que se necesite para completar la configuración (para una salida detallada, añade la etiqueta -v):

$ flutter doctor

Este comando verifica tu entorno y muestra un reporte en la ventana del terminal. El SDK de Dart esta empaquetado con Flutter, no es necesario instalar Dart por separado. Verifica la salida con cuidado para otros programas que pudieras necesitar o tareas a realizar (mostradas en texto en negrita).

Por ejemplo:

[-] Android toolchain - develop for Android devices
    • Android SDK at /Users/obiwan/Library/Android/sdk
    ✗ Android SDK is missing command line tools; download from https://goo.gl/XxQghQ
    • Try re-installing or updating your Android SDK,
      visit https://flutter.io/setup/#android-setup for detailed instructions.

La siguiente sección describe cómo desempeñar estas tareas y finalizar el proceso de configuración.

Una vez que tengaS instalado cualquiera de las dependencias faltantes, ejecuta el comando flutter doctor de nuevo para verificar que todo se ha configurado correctamente.

Actualiza tu path

Se puede actualizar tu variable PATH para sólo para la sesión actual en la línea de comandos, como se muestra en Obtener Flutter SDK. Probablemente necesitarás actualizar esta variable permanentemente, de esta manera podrás ejecutar el comando flutter en cualquier sesión de terminal.

Los pasos para modificar esta variable permanentemente para todas las sesiones de terminal son específicas del equipo. Típicamente se agrega una línea al archivo que se ejecuta cada que abres una nueva ventana. Por ejemplo:

  1. Determine el directorio donde se encuentra el SDK de Flutter. Necesitaras esto en el paso 3.
  2. Abre (o crea) $HOME/.bash_profile. La dirección del archivo puede estar en un lugar diferente en tu equipo.
  3. Agrega la siguiente línea y cambia [PATH_TO_FLUTTER_GIT_DIRECTORY] para ser la ruta donde has clonado el repositorio de Flutter:
    $ export PATH="$PATH:[PATH_TO_FLUTTER_GIT_DIRECTORY]/flutter/bin"
    ```
    
 4. Ejecuta `source $HOME/.bash_profile` para refrescar la ventana actual. 
 5. Verifica que el directorio de `flutter/bin` esta en tu PATH ejecutando el siguiente comando:

    ```terminal
    $ echo $PATH
    ```

Para más detalles, ver [Estas preguntas en StackExchange](https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path).


## Configurar Android (sin Android Studio)

### Instalar Java

```terminal
$ sudo apt update
$ sudo apt install default-jre
$ sudo apt install default-jdk

Instalar el SDK de Android

Descarga el Android SDK tools y selecciona la opción “Command Line Tools only”.

Arrastra y suelta el zip descargado en tu carpeta Linux Files la app Chrome OS Files. Esto lo mueve al directorio home, anotado como $TOOLS_PATH (~/).

Descomprime los tools y despues añádelo a tu path.

$ unzip ~/sdk-tools-linux*
$ export PATH="$PATH:$TOOLS_PATH/tools/bin"

Navega a donde quieres almacenar los paquetes del SDK ($PLATFORM_PATH en este resumen) y descarga los paquetes del SDK usando la sdkmanager tool (los números de version aquí son los últimos cuando se publicó este artículo):

$ sdkmanager "build-tools;28.0.3" "emulator" "tools" "platform-tools" 
"platforms;android-28" "extras;google;google_play_services" 
"extras;google;webdriver" "system-images;android-28;google_apis_playstore;x86_64"

Añade las Android platform tools a tu path (debes encontrar esto donde ejecutaste el comando sdkmanager: $PLATFORM_PATH):

$ export PATH="$PATH:$PLATFORM_PATH/platform-tools

Configura la variable ANDROID_HOME a donde hayas descomprimido las sdk-tools antes (tu $TOOLS_PATH):

$ export ANDROID_HOME="$TOOLS_PATH"

Ahora, ejecuta flutter doctor para aceptar las licencias android:

$ flutter doctor --android-licenses

Nuevo paso

Nuevo paso: Configurar el editor

Flutter y Chrome OS, Consejos y Trucos

¿Cómo ejecutar tu apliación? En Chrome OS, puedes conectar tu teléfono (actualmente solo en Dev channel) o lánzalo directamente al contenedor del dispositivo Android. Para hacer esto debes habilitar el modo desarrollador en tu máquina, y después conectar al contenedor local con ADB:

$ adb connect 100.115.92.2:5555

¿Quieres construir tu primera app optimizada para Chrome OS? Clona el repositorio flutter-samples y compila nuestro ejemplo específico de Mejores Prácticas en Chrome OS:

$ git clone https://github.com/flutter/samples
$ cd samples/chrome-os-best-practices
$ flutter run

¿Te preguntas como acceder a tus accesos directos favoritos con la tecla de función en el teclado de Chrome OS?

  • Presiona la tecla de busqueda junto con 1 para acceder a F1–F12.

Para la versión actual de Chrome OS, solo ciertos puertos de Crostini son expuestos al resto del entorno. Aquí hay un ejemplo de como lanzar
Flutter DevTools para una app Android con puertos que funcionará:

$ flutter pub global run devtools -p 8000
$ cd path/to/your/app
$ flutter run --observatory-port=8080

Entonces, navega a http://localhost:8000/?port=8080 en tu navegador Chrome.

Flutter Chrome OS Lint Analysis

El equipo de Flutter esta añadiendo Lint Analysis para Chrome OS comprueba que están disponibles para asegurar que la app que estas construyecndo funcionará bien en Chrome OS. Esto buscas cosas como el hardware requerido en tu Android Manifest que no está disponible en dispositivos Chrome OS, permisos que implicarán solocitudes de hardware no soportado, así como otras propiedades o código que brinden una experiencia menor en estos dispositivos.

Para activar esto, actualiza o crea tu fichero analysis_options.yaml para incluir estas opciones:

include: package:flutter/analysis_options_user.yaml
analyzer:
 optional-checks:
   chrome-os-manifest-checks

Para ejecutar esto desde la línea de comandos:

$ flutter analyze

La salida de esto puede verse como:

Analyzing ...                                                      
warning • This hardware feature is not supported on Chrome OS • 
android/app/src/main/AndroidManifest.xml:4:33 • unsupported_chrome_os_hardware

Esta funcionalidad esta aún en desarrollo, vuelve aquí para ver instrucciones sobre como puedes hacer esta funcionalidad funcionar con tu Chrome OS como objetivo de tus apps Flutter próximamente.