Creación de una aplicación Android descentralizada: primera parte (WalletConnect) | Por Bruno Correa | Pink Wall | Febrero de 2022

El futuro está descentralizado, al igual que su aplicación de Android: 101 Journey para crear su primera DApp de Android.

Descargo de responsabilidad: No estoy aquí para convencerlos de que la Web 3.0, blockchain, crypto, NFT u otras palabras de moda son importantes y serán parte de nuestro futuro. Principalmente porque la opinión es solo eso, opinión, pero también porque definitivamente no sé lo que depara el futuro. Sin embargo, algo innegable está sucediendo, Internet está cambiando, nuestro mundo está cambiando. Si bien el futuro es incierto, conceptos como descentralización, propiedad, seguridad y privacidad han sido y seguirán siendo. Es por eso que estamos comenzando a aprender más sobre las aplicaciones descentralizadas (DApps) en Pink Room y cómo construirlas.
Una DApp es cualquier aplicación que existe y se ejecuta en una red punto a punto (P2P). Esto significa que estas aplicaciones no tienen una autoridad central (como un servidor) que controle los datos o las comunicaciones, pero cualquier par de la red puede comunicarse directamente con otros pares.
Si bien las DApps se pueden desarrollar de varias maneras diferentes, en la actualidad, generalmente se asocian con tecnologías que usan blockchain y admiten contratos inteligentes como Ethereum. De hecho, Ethereum es actualmente la tecnología más utilizada y la primera en admitir contratos inteligentes. Por eso nos vamos a centrar en ello.
Esta es la primera pregunta que nos hacemos antes de iniciar el desarrollo. Entonces, como desarrolladores, necesitamos dos cosas básicas:
- Una forma de conectar nuestra DApp a la billetera.
- Una forma de comunicarse con contratos inteligentes. (Discutiremos esto en la próxima publicación del blog).
Conectar la DApp con la billetera
¿Por qué necesitamos conectar nuestra DApp con la billetera? Porque la billetera es en realidad la clave de su comunicación con la cadena de bloques. Para aquellos que no están familiarizados con esto, imagina una aplicación normal. Por lo general, una aplicación requiere credenciales para comunicarse con una API, lo que le permite realizar ciertas acciones en la plataforma que está utilizando. Para las DApps, estas credenciales son claves privadas que generalmente se guardan en billeteras y corresponden a direcciones únicas en la cadena de bloques. Estas claves se utilizan para firmar transacciones que se almacenarán en la cadena de bloques. ¿Entonces, Cómo lo hacemos? conexión de billetera El protocolo es la respuesta, y nos sumergiremos en él de inmediato.
Integrar WalletConnect
es el primer paso en la construcción de una DApp de Android. Pero primero déjame explicarte brevemente cómo funciona.
Vale la pena mencionar que WalletConnect
Hay dos protocolos diferentes: v1.0 y v2.0.Mi objetivo no es explicar la diferencia entre ellos, puedes leer más al respecto aquísi quieres entender mejor el protocolo te recomiendo leer Documentación de WalletConnect.
En resumen, el protocolo WalletConnect se basa en 3 componentes principales:

- solicitud: lo que estamos construyendo.
- cartera: Contiene la clave privada de la cuenta.
- Relé/Puente*: Servidor WebSocket para retransmitir mensajes entre DApp y Wallet.
*Si tu lees WalletConnect
En la documentación, notará que en el protocolo v1.0, este componente se llama Bridge, porque en ese momento se lo consideraba un puente entre las DApps y las billeteras. En v2.0, este nombre se cambió a Retransmisión para representar mejor la funcionalidad de este componente.
Para conectar su DApp con la billetera, primero comienza con la comunicación fuera de banda. Puede considerarlo como un apretón de manos entre la DApp y la billetera, que contiene información como la versión del protocolo que se utiliza, el tema que se utilizará para la comunicación y la clave utilizada para cifrar esta comunicación.La forma de hacer esto en Android es enviar un Intent
Esto abrirá la billetera y compartirá toda esta información.
Después de eso, toda la comunicación se realizará a través del servidor de retransmisión. Su DApp y Wallet publicarán mensajes a los temas suscritos y conectarán, desconectarán y ejecutarán transacciones de acuerdo con el protocolo.
Si bien esto puede parecer simple, implemente la lógica DApp para cumplir con WalletConnect
Los protocolos son una tarea tediosa que implica escribir mucho código.Por eso construimos Kit de conexión de billetera. WalletConnectKit
es la forma más fácil de integrar WalletConnect
Ingrese su DApp. Lo usaremos para comenzar el desarrollo de su primera DApp.
Nota IMPORTANTE: Si aún no tiene una cuenta de Ethereum, ahora es un buen momento para hacerlo.Le recomendamos que cree un metamáscaraAdemás de ser una de las billeteras más utilizadas, también implementa WalletConnect
protocolo. Después de crear una cuenta, puede cambiar su Metamask a la red de prueba de Ropsten. Esto es muy importante para que puedas jugar con éter falso y evitar perder tus activos.Para conseguir tu primer ETH falso puedes ir a un grifo ropsten y elimine la dirección de su cuenta.
instalación y configuración
Primero cree un proyecto de Android y agregue WalletConnectKit
confiar: implementation 'dev.pinkroom:walletconnectkit:
.
Luego, cree una configuración para compartir la información de la DApp con la billetera.
Después de eso, solo necesita crear un WalletConnectKit
.
Esta instancia le brinda acceso a todos los métodos que necesita para administrar conexiones y ejecutar transacciones.
boton conectar
Aunque te puedes arreglar con WalletConnectKit
Por ejemplo, la forma más fácil es usar WalletConnectButton
. Esta WalletConnectButton
es una costumbre ImageButton
Contiene un tema predeterminado que se puede anular y agregar a la pantalla.
Después de agregar WalletConnectButton
Comienzo WalletConnectKit
instancia y listo. Es fácil.
comercio
Ahora que está conectado a Wallet, es hora de comenzar a ejecutar transacciones.y WalletConnectKit
Puedes hacerlo llamando performTransaction
método.Este método es un suspend
función, lo que significa que debe llamarlo en una rutina.
Cuando llame a este método, su billetera se abrirá y se le pedirá que acepte o rechace la transacción pasando el valor a la dirección dada. Luego, solo maneje el estado de éxito y fracaso.
Puedes ver un ejemplo de integración DApp WalletConnectKit
aquí.
notas: Actualmente, WalletConnectKit
Solo admite el protocolo v1.0 WalletConnect
Porque es el protocolo implementado por la mayoría de las billeteras.Siempre que la billetera implemente el protocolo v2.0 y WalletConnect
La biblioteca de Kotlin es estable y admitiremos el protocolo v2.0.
Si bien actualmente hay una falta de buena documentación y herramientas para crear DApps móviles nativas, hemos comenzado a ver algunos avances y esfuerzos para brindar un mejor soporte de desarrollo.
No obstante, todavía estamos en la infancia y aunque el desarrollo de DApps puede cambiar mucho, realmente creo WalletConnect
El protocolo será el estándar futuro para conectar DApps y billeteras. Ya está implementado en los monederos más usados y utilizado por grandes empresas como Twitter.
¡Eso es todo! En la próxima publicación del blog, le mostraremos cómo su DApp puede comunicarse con contratos inteligentes.Háganos saber si tiene alguna pregunta o idea para mejorar. WalletConnectKit
¡Las contribuciones son bienvenidas!
Si desea obtener más información sobre este tema y otros relacionados con el desarrollo móvil y web3, siga PinkRoomDev y bffcorreia en Twitter.
¡Feliz codificación! 🚀