Categorías
Dev Flutter

Instalar en Android Studio para que Flutter funcione bien

Para que con flutter todo funcione bien, es necesario entrar a Android Studio, buscar en la «lupa» SDK Manager e instalar todos los SDK Tools que aparecen a continuación. No hacerlo, hará que flutter no corra bien algunos comandos. Seguramente en el momento menos apropiado.

Categorías
Dart Dev Flutter

Cómo hacer un botón circular con ícono y texto en la mitad en flutter

Como ningún bendito tutorial oficial y no oficial me sirvió para nada, aquí les dejo esta obra de arte:

Categorías
Angular Dev Flutter

Opciones gratuitas a Google Maps

Para mostrar un mapa, polylines y marcadores https://leafletjs.com/ ofrece alternativas para angular y flutter.

Para cálculo de rutas, http://project-osrm.org/ podría ser una alternativa muy interesante. Esto me lo encontré de puro lolo, en este link https://www.jamesrcroft.com/2015/06/snapping-gps-tracks-to-roads/

Obviamente esto está lejos de la tonelada de herramientas que ofrece Google Maps, pero son herramientas que podrían utilizarse en casos de uso con menos requerimientos.

Categorías
Dev Flutter

Como crear un keystore para hacer el build de un proyecto en Flutter

A veces quisiera que la documentación fuera un poco más maternal y no un oceano de links con manuales técnicos en los que uno se termina perdiendo para tirar un simple comando. Cómo el mundo es así de cruel, hoy seré yo su madre y los llevaré de la mano por este difícil sendero que es programar.

Categorías
Cloud Dev Firebase Flutter

Cómo consultar el listado de firmas de una app (gradlew signinReport) y habilitar Google Sign In en una instalación directa con Flutter


Este post resuelve el bug Flutter and google_sign_in plugin: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null) que ocurre al testear a la autenticación en local. En caso de que el comando ./gradlew signingReport no funcione, es muy probable que su error esté relacionado con este problema https://stackoverflow.com/questions/61289461/java-lang-noclassdeffounderror-could-not-initialize-class-org-codehaus-groovy-v

En pocas palabras, para resolver el bug, basta con ir al archivo android\gradle\wrapper\gradle-wrapper.properties y reemplazar la línea:

distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip

Por:

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

También es posible que sea mejor correr el comando directamente en gitbash, para evitar esos formatos extraños que a veces genera cuando se usa en vscode.


Ahora sí, este es el post:

Normalmente es suficiente con agregar las firmas de firebase y de google play a la app para poder que funcione. Pero en el caso de las instalaciones directas (un archivo apk), es necesario agregar la firma de release de la app a firebase. El proceso es el siguiente:

Primero tenemos que consultar el listado de firmas o gradlew signinReport (por si alguna vez se había preguntado para que era ese tal archivo gradlew). Para esto hay dos opciones:

  • Buscar el archivo gradlew, normalmente ubicado en un-proyecto/android/gradlew, y Hacer clic derecho encima y seleccionar la opción Abrir en la Consola (Open in Terminal).
  • Navegar en la consola hasta la carpeta android.

A continuación ejecutar el siguiente comando:

./gradlew signingReport

Esto mostrará un largo reporte con todas las firmas y sobretodo con las claves SHA1, que se necesitarán.

La clave requerida en este caso es la que está marcada como release:

...
Variant: release
Config: release
Store: C:\Su Madre\Su App\android\app\key.jks
Alias: key
MD5: E6:...
SHA1: A9:...
....

Esta opción les permitirá agregar la clave a firebase o donde quiera que la necesiten… incluso en una petición a la santísima virgen, si no les funciona.

No olviden descargar y actualizar el archivo google-services.json después de esto. Eso es todo.