jueves, 29 de agosto de 2024
miércoles, 28 de julio de 2021
Flutter: autenticarse en Google
Requisitos
- Flutter instalado
- Android Studio con plugin para Flutter
- Tener una cuenta de Google
Pasos
- Crear proyecto Firebase
- Crear aplicación Flutter
- Añadir aplicación Android a proyecto Firebase
- Añadir aplicación iOS a proyecto Firebase
- Añadir las dependencias al proyecto Flutter
- Habilitar autenticación de Google en Firebase
- Integrar la autenticación en la aplicación Flutter
Crear proyecto Firebase
En el siguiente paso podemos habilitar o desabilitar Google Analytics (no es importante para este ejemplo). Pulsar en Continuar:
Crear aplicación Flutter
Añadir aplicación Android al proyecto Firebase
En Android Studio abrir el fichero <project>/android/build.gradle (NOTA: es distinto del fichero anterior). Añadir la siguiente línea en la sección de dependencias:
Pulsar "Siguiente", de nuevo "Siguiente" y por último, pulsar en "Ir a la consola"
Y con esto, ya tenemos configurada la aplicación Android en el proyecto Firebase.
Añadir aplicación iOS al proyecto Firebase
Seleccionar Runner (raíz del árbol de la izquierda), pestaña General y copiar el "Bundle Identifier":
Rellenar el id de la aplicación que hemos copiado en XCode, un sobrenombre opcional y pulsar en "Registrar app":
Añadir las dependencias al proyecto Flutter
firebase_core: ^1.4.0
firebase_auth: ^3.0.1
cloud_firestore: ^2.4.0
Habilitar autenticación de Google en el proyecto Firebase
La aplicación de Android necesita una huella SHA-1 que hemos dejado vacía anteriormente. Abrimos un terminal, vamos al directorio del proyecto Flutter y ejecutamos los siguientes comandos:
cd google_signin
cd android
./gradlew signingReport
Buscamos la aplicación Android y pulsamos "Agregar huella digital":
martes, 29 de junio de 2021
El Input Manager de Unity
El Input Manager es el sistema que tenía Unity hasta ahora gestionar la entrada desde diversos dispositivos: teclado, touch, ratón, joystick...
En 2021 Unity ha introducido un nuevo sistema: el Input System, más versátil, soporta nuevos dispositivos, soporta entrada multi-usuario y es más configurable. Sin embargo, el nuevo Input System es más complejo de usar debido fundamentalmente a su versatilidad, y por eso, el Input Manager se sigue y se seguirá usando mucho tiempo como gestor de dispositovs de entrada en Unity.
En este post revisaremos el antiguo Input Manager de Unity, porque creo que en una gran parte de juegos no es necesaria la versatilidad del nuevo Input System.
Cómo maneja Unity la entrada
El Input Manager de Unity
- Input Manager
- Input Class
Cómo recibir entradas en un script
- Abrimos Project settings > Input Manager: Aquí tenemos todas las acciones predefinidas: "Horizontal", "Vertical", "Fire1", etc. Podemos añadir nuevas acciones cambiando el Size.
- Abrimos la acción "Fire1"
- Cambiamos el Input Type: Key or Mouse Button
- Cambiamos Positive button a space. Para ver otras posibilidades: Documentación del Input Manager
Múltiples entradas asociadas a la misma acción
Uso de Axis en el Input Manager
domingo, 18 de octubre de 2020
CONDA: entorno para trabajar con Python y machine learning
Python es el lenguaje más usado para machine learning y también para deep learning. Hay algunas iniciativas para promocionar el lenguaje Go (golang) para machine learning. Mi opinión es que a día de hoy, las librerías más avanzadas para “x learning” están en python, y aunque creo que el futuro puede derivar a Go, actualmente es python el lenguaje dominante.
Sin embargo, la instalación típica de Python tiene un problema cuando se quiere trabajar con librerías para machine learning, ya que el comando pip para instalar librerías no maneja correctamente algunas dependencias que están escritas en C o en Fortran. Librerías como numpy, scikit-learn, Tensorflow o Keras pueden dar problemas.
La solución está en CONDA, una distribución de Python preparada específicamente para trabajar con data science y machine learning. CONDA se puede instalar de dos formas:
- Anaconda: es una distribución que incluye un gran número de librerías preinstaladas y que permite trabajar directamente sin necesidad de instalar nada más. Ocupa unos cuantos gigas.
- Miniconda: es una distribución básica que permite instalar fácilmente cualquier librería python (incluidas las que están en C o Fortran). Ocupa mucho menos que Anaconda y es igual de funcional, aunque tendremos que instalar manualmente las librerías que necesitemos.
Instalación de miniconda
Mi elección es miniconda, que incluye el intérprete python, unas cuantas librerías básicas y un gestor de paquetes. Miniconda se descarga de:
http://conda.pydata.org/miniconda.html
Dispone de instaladores para Windows, OSX y Linux.
Después de la instalación, tendremos un directorio miniconda3 en nuestro directorio HOME. Es conveniente añadir a la variable PATH el directorio bin de miniconda, para utilizar más fácilmente los comandos.
$ conda --version
Para actualizar a la última versión de conda:
$ conda update conda
Entornos conda
Replicar entornos
jueves, 21 de febrero de 2019
React (1)
¿Qué es React? Como dicen en su propia web: React es una librería Javascript para construir interfaces de usuario. Es una librería javascript y se utiliza para escribir código de cliente, no de servidor. Sirve para implementar la interfaz de usuario y está orientada a componentes. Los componentes son "piezas" de código auto-contenidas, parametrizables y reutilizables.
Sus principales características son:
- Lenguaje declarativo (no programático) para construir la UI
- Basado en componentes (reutilizables)
- Independiente de la plataforma (web, mobile...)
En estos artículos voy a intentar mostrar React desde un punto de vista absolutamente práctico y para desarrolladores. No quiero contar lo mismo que hacen cientos de tutoriales y manuales sobre React. Me gustaría contar las cosas de forma que un desarrollador con cierta experiencia en web pueda aprender React lo más rápidamente posible.
Por otro lado, quiero aclarar que aunque React no está "atado" a ninguna plataforma, en estos artículos me voy a centrar en la web. Existen librerías como React native, basadas en React que permiten desarrollar para plataformas móviles.
Empezamos con el clásico Hello world para ir abriendo boca...
Hello world of React!
En principio, para empezar a desarrollar y aprender con React, no es necesario instalar nada. Aunque más adelante veremos que es conveniente instalar algunas sencillas herramientas, sobre todo para el despliegue de la aplicación.Vamos a hacer una pequeña página HTML con React.
En primer lugar nos descargamos tres ficheros javascript que incluiremos en nuestra página HTML:
- react.js : librería react
- react-dom.js : librería react para acceso a DOM
- babel.js : transforma JSX (que ya veremos más adelante) en javascript que entiende el navegador
En segundo lugar, copiamos estos tres ficheros en el directorio donde vayamos a poner nuestra página HTML.
Y por último vamos con nuestro ejemplo.
HTML
Creamos una página html con el siguiente contenido:<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Hello world of React!</title> </head> <body> <div id="app"></div> <script type="text/javascript" src="react.js"></script> <script type="text/javascript" src="react-dom.js"></script> <script type="text/javascript" src="babel.js"></script> <script type="text/babel" src="./app.js"> </script> </body> </html>
Javascript
Y ahora creamos un fichero javascript denominado app.js en el mismo directorio de la página html y con el siguiente contenido:var template = <div><h1>Hello world of React!</h1><p>This is JSX</p></div> var appElement = document.getElementById('app'); ReactDOM.render(template, appElement);
Ejecutamos
Es importante abrir el fichero html con Firefox, no con Chrome. Y no porque Chrome no sea compatible con React (no entremos en modo pánico tan al principio), sino porque al abrir un fichero en local, no descargado de un servidor http, Chrome da algunos errores de seguridad con los ficheros js que hemos descargado. Ya digo que esto no es un problema, porque en un caso real la aplicación React vendrá descargada por http.Cómo instalar un sencillo web server para nuestros ejemplos
Si a pesar de todo queremos que nuestra aplicación se descargue mediante http y además queremos visualizarla con Chrome, voy a proponer una solución muy sencilla (hay otras muchas soluciones).En primer lugar instalamos nodejs (si no lo tenemos ya instalado): nodejs
Abrimos una consola en el directorio que estamos trabajando y ejecutamos el siguiente comando para instalar live-server (un servidor http basado en node):
npm install -g live-serverEjecutamos el servidor:
live-serverSe abrirá el navegador por defecto y mostrará todos los ficheros. Pulsamos sobre la página html y podremos ver nuestra página React en acción!
miércoles, 13 de junio de 2018
HTTPS explicado con palomas
Comunicación básica
Código secreto
¿Cómo se decide la clave?
Palomas que llevan cajas
- Alice envía la paloma a Bob pero con una caja vacía abierta (con un candado abierto). Alice tiene la llave del candado
- Bob mete el mensaje en la caja y cierra el candado. Bobo envía la paloma a Alice.
- Alice recibe la paloma con la caja cerrada, abre el candado y saca el mensaje.
¿Cómo confiamos en la caja?
Las cajas son pesadas
sábado, 7 de octubre de 2017
Mi experiencia con Apple pencil y Goodnotes
Hasta ahora...
Apple pencil
Además del lag inapreciable, otro tema muy importante con los stylus es 'palm rejection' o sea, que mientras estás escribiendo/dibujando en la pantalla, puedas apoyar la palma de la mano en la pantalla y que este gesto no dispare otras acciones o que incluso no haga rayas en el dibujo. Y Apple pencil esto lo hace muy muy bien. Mientras la punta del lápiz esta cerca de la pantalla, el resto de interacciones se desactivan. Así que si eres zurdo como yo o bien tienes la costumbre de escribir apoyando la palma de la mano sobre la pantalla, no vas a tener ningún problema.
Goodnotes
No voy a juzgar la forma que tiene Goodnotes de organizar las libretas en carpetas, no es la mejor, pero es suficiente. Tampoco necesito 10000 libretas!!! Lo que hace me vale, aunque esto podría mejorar en un futuro.
Escribir con Apple pencil y Goodnotes es una experiencia fantástica. Una vez te acostumbras a escribir sobre un cristal (la pantalla), la sensación es casi la misma que escribir en un cuaderno. Pero claro, tienes muchas ventajas: puedes hacer 'undo' y 'redo'; puedes borrar cualquier cosa, puedes mover trazados por la pantalla, ampliarlos o reducirlos, cambiarlos de color, etc, etc. Las posibilidades son enormes. Y lo bueno es que la interacción que ha diseñado el equipo de Goodnotes hace que todo esto sea casi natural.
Cómo utilizo Goodnotes con Apple pencil
- Lápiz (4) : selecciona el modo de dibujo o escritura con lápiz. Si se vuelve a pulsar aparece un menú con opciones de color del lápiz y grosor
- Subrayador (5) : selecciona el modo de subrayado (el efecto es parecido al de los rotuladores subrayadores que solemos utilizar para resaltar palabras). Al igual que ocurre con el lápiz, si se vuelve a pulsar, aparecen opciones para elegir el color y el grosor
- Borrador (6) : borra libremente por la página. Si se vuelve a seleccionar, aparecen opciones para el grosor de la goma de borrar
- Undo (8) : deshace lo último que hayamos hecho
- Formas geométricas (3) : si esta opción está seleccionada, Goodnotes intentará "arreglar" nuestros trazados para que se conviertan en formas geométricas. Por ejemplo, un trazado más o menos redondo, se convertirá en un círculo. Yo uso mucho esta opción para subrayar texto: la activo, hago una raya más o menos recta, y Goodnotes la transforma en un subrayado perfecto
- Selección (7) : permite seleccionar cosas trazando un lazo libremente. Hay que tener en cuenta que si la selección corta un trazado por la mitad, entonces Goodnotes lo incluye completamente en la selección. Es muy útil para mover zonas dentro de la página o para redimensionarlas. Aunque también se puede usar para cambiar el color de una zona
- Visor de páginas (1) : muestra todas las páginas del cuaderno en miniaturas. Permite realizar rápidamente operaciones como borrar páginas, insertar, cambiar de orden
- Insertar (3) : permite insertar páginas provenientes por ejemplo de un fichero PDF externo
- dibujo con el pencil sobre la hoja del cuaderno.
- deslizando con dos dedos paso a la página siguiente o anterior (dependiendo si deslizamos hacia la izquierda o hacia la derecha)
- en la última página del cuaderno, deslizando con dos dedos hacia la derecha y aguantando un poco, aparece la opción de crear una nueva página al final.
Uso real
- Charlas: la experiencia es fenomenal, porque escribes a tu ritmo y no hay desventajas sobre el papel. Tiene la ventaja de que puedes mover trozos de texto hacia abajo e insertar cosas que se te hayan pasado anteriormente
- Reuniones: también muy buena experiencia, ya que puedes hacer dibujos rápidamente en el "cuaderno" y mostrarlos a los asistentes
- Aprendizaje: me encanta seguir cursos online, y ahora mucho más, ya que mientras estoy viendo un vídeo en el ordenador, puedo estar tomando apuntes en el iPad.
Otros dispositivos
Pero Magnus Wanberf se empeñó en conseguir un dispositivo de tinta electrónica con un lag inapreciable, similar al apple pencil. Desde hace unas semanas está distribuyendo los primeros dispositivos, y las críticas son bastante buenas. Me han pedido que evalúe uno de estos dispositivos, así que escribiré en este blog los resultados y mi experiencia. Estad atentos...