Etiqueta: kotlin

Canales de Programación en YouTube

A continuación me gustaría compartirles una lista de canales de YouTube de programación que me he encontrado y que de algún modo u otro me han sido útiles esperando que también les sirvan a ustedes.

En Inglés

En Español

Videojuegos

Programación

Bonus

SERVER_ERROR 1349195 The key hash does not match any stored key hashes

Actualmente me encuentro desarrollando una aplicación Android que utiliza los servicios de Firebase, de los cuales voy a utilizar la autenticación con Facebook.

Al implementar la autenticación de Facebook me aparecía el siguiente error:

SERVER_ERROR: [code] 1349195 [message]: The key hash does not match any stored key hashes. Go to https://developers.facebook.com/docs/facebook-login/android for more information.

Había seguido los pasos que indica la documentación de Firebase así que no sabia porque aparecía dicho error.

Después de estar buscando por internet un rato, dí con la solución, que paso a explicarles.

Generar la Huella SHA-1

Debemos generar la huella SHA-1 con el siguiente comando, desde la terminal en Android Studio

Usando Gradle

Deberá aparecer algo como lo siguiente:

Usando keytool

Windows

Mac

Deberá aparecer algo como esto:

Convertir la Huella a Base64

Ahora que tenemos la huella SHA-1 la debemos convertir a base64, puedes ir a cualquiera de estos dos sitios:

Una ves en el sitio, en el campo que diga “Hex string” o “Hex value” pega la huella SHA-1 que generaste y haz clic en el botón “Convert”.

Esto te generará el token que necesitas para tu aplicación en Facebook for Developers

Si alguno de sitios que deje no funcionan basta con que busques en google “hex to base64 online” y deberás encontrar sitios similares.

Guardar Preferencias en Android con Kotlin

Recientemente se me presentó la necesidad de desarrollar una aplicación Android, cosa que no había hecho nunca, aunque algo había visto en videos y tutoriales.

La aplicación requería la funcionalidad de “Recordar contraseña” y viendo en internet me topé con que para esto podía utilizar instancias de las clases SharedPreferences.Editor y SharedPreferences para guardar y recuperar datos respectivamente.

Y aunque es fácil de usar, la verdad es que se repetía bastante código y en algunas ocasiones se me olvidó llamar a la función apply() para guardar los cambios, como era de esperarse con alguien que no había hecho nada para Android.

Entonces, después de varias ocasiones en las que no entendía porque no se guardaban las preferencias, decidí hacer una Clase Helper para guardar y leer las preferencias. Lo que conseguí no es ni lo más eficiente ni lo más elegante, pero me funciona y creo que para alguien que antes no había hecho aplicaciones Android y mucho menos algo en Kotlin esta “decente”.

Para esto creé la clase AppPreferences que contiene un enumerado donde se pueden ir agregando las claves(keys) de los campos que vamos a guardar en las preferencias, para tener mejor control y sobre todo a evitar errores al guardar o leer las preferencias.

También dentro de AppPreferences declaré las clases Reader y Writer que fungen como wrapers para instancias de SharedPreferences y SharedPreferences.Editor respectivamente. Para la clase Reader solo hice funciones que simplemente retornan los valores de las preferencias, pero para la clase Writer hice funciones que guardan el dato que deseo almacenar y a su vez llaman a la función apply().

Guardé esta clase en Github Gist por si a alguien más le pudiera servir y/o es gustoso de contribuir a mejorarla, sin más les dejo el código de la clase.