Construir una aplicación web móvil con un pie en la web3

Construir una aplicación web móvil con un pie en la web3

Al principio de la vida profesional en la tecnología, es muy difícil reflexionar sobre la mejor manera de posicionarse para tener un buen futuro en el área. Solemos tener la sensación de tener el futuro garantizado cuando, en realidad, no suele ocurrir como lo visualizamos. Siempre avanzamos hasta el momento en que este ritmo nos pasa factura, principalmente en lo que respecta a nuestra salud.

Después de participar también en este viaje incesante, acabé alejándome un tiempo para "reponer mis energías". Después de esa ausencia, era natural que me pusiera al día sobre lo que ocurría actualmente en la escena del desarrollo.

Punto de entrada

Ahora, busco volver al campo. Pero ¿cómo recuperar la forma en un escenario en el que los cambios suceden constantemente y con extrema rapidez? En primer lugar, decidí enfocarme en una actualización. Sin embargo, como ves, no se trata de una simple actualización: tendré que hacer también una "actualización mayor".

Pensé entonces en crear un proyecto para el desarrollo de una aplicación que me ayudara en esta actualización. Un proyecto que me permitiera tener contacto con la mayoría de las nuevas tecnologías y nuevas formas de utilizarlas en el desarrollo de software.

También pensé en hacer esto como un proyecto de código abierto. De este modo, todos podrían participar activamente en la construcción de este software. Con ello, imagino que este proceso será aún más estimulante, debido al dinamismo existente.

#1. Racionalización

El proyecto consiste en la construcción de una aplicación web y móvil (Android) para visualizar las NFTs existentes en una blockchain (Ethereum).

La construcción de esta aplicación hará uso de varias tecnologías y lenguajes de programación, llevándonos entre varios segmentos del área de la informática.

Se han producido muchos cambios en la forma de desarrollar software hoy en día y este cambio comienza en la fase de planificación del software, donde se definen cuáles son los componentes que se van a desarrollar, capaces de satisfacer los requisitos planteados.

Antes, utilizábamos un concepto de modelo secuencial o modelos de ciclo al planificar el proyecto de software. Hoy, utilizamos las distintas metodologías ágiles disponibles en el mercado.

¿Por qué? Pues bien, el modelo anterior podría traernos una serie de problemas, como, por ejemplo, la necesidad de realizar constantes modificaciones en el proyecto, una característica que los avances tecnológicos amplifican cada vez más. La metodología ágil sirve para resolver (o puntuar correctamente) estos eventos.

#2. Definición del proyecto

Para el desarrollo del proyecto abordaremos los siguientes temas:

Construir una aplicación web

Crearemos una aplicación web para ver cómo nuestros códigos que previamente construimos utilizando HTML, CSS, JavaScript y algunas APIs y frameworks, comenzaron a utilizar herramientas potentes como React, Node.js y recursos de Cloud Computing como Firebase para las bases de datos.

Blockchains, NFTs, DAOs, etc.

Las cadenas de bloques, a través de productos como las criptomonedas, las DAO y las NTF, han ido formando un ecosistema tecnológico cada vez más amplio y se han convertido en una tendencia cada vez más dominante en los medios sociales de todo el mundo. Por lo tanto, parece sensato echar un vistazo a su mecanismo. Desarrollaremos, entonces, una interfaz de backend que nos permita acceder y leer los datos de una NFT en una blockchain.

Datos y Python

El uso de los datos se ha convertido en algo enorme y esencial para todas las empresas. Por ello, también daremos un paseo por este ámbito de la tecnología. Construiremos un software en lenguaje Python para realizar el tratamiento de los datos de una NFT y generar un gráfico que se visualizará en nuestra aplicación web creada anteriormente.

Aplicación Android

Para terminar con estilo, crearemos una aplicación Android para mostrar todo nuestro contenido generado en los teléfonos con ese sistema. Aquí podemos ver las diferencias en la construcción de una aplicación móvil desarrollada con Android Studio o Flutter.

En medio de todo este desarrollo, creo que tendremos varias situaciones en las que será necesario hacer cambios incluso al principio del proyecto, mostrando la rapidez y flexibilidad de una metodología de desarrollo ágil.

#3. Inicio de la actividad

Cinta de cassette preparada, vinilo separado... ¡Uy! ¡Lo olvidé, Alexa! Lol.

Hasta hace poco, nuestro ecosistema de trabajo tenía una estructura informática muy diferente a la actual con el uso de hardware y la producción de software totalmente localizados en la propia empresa, fuera o no del área tecnológica.

Hasta finales de los 90 era habitual, incluso para las pequeñas empresas, tener un CPD (Centro de Procesamiento de Datos) en sus instalaciones. En el CPD se encontraban el hardware y el software utilizados por la empresa, como los servidores de aplicaciones, las bases de datos, los servidores de impresión, etc., además del equipo utilizado por los operadores y los programadores -¡el término desarrolladores ni siquiera existía todavía!- La norma era que nos quedáramos aislados en el CPD escribiendo un montón de códigos.

Assembler, C y Cobol eran los más utilizados hasta que empezamos a utilizar C++, Visual Basic y otros lenguajes visuales de alto nivel que aparecieron luego. Mirando hacia atrás, parece que vivimos en un mundo completamente diferente hoy en día y realmente es uno muy distinto. Sucedió en un abrir y cerrar de ojos.

En nuestro proyecto utilizaremos tecnologías y conceptos mucho más actuales como Cloud Computing, Gestión de Datos, Blockchains, Low-code, Desarrollo Multiplataforma, etc.

#4. Control de versiones, repositorios, etcétera

Para iniciar el desarrollo tal y como lo planeamos, es necesario que el contenido del proyecto sea accesible para todos. También se requiere que estos contenidos puedan ser gestionados y compartidos de forma ágil, flexible y fiable. Para ello, utilizaremos la plataforma GitHub de Microsoft.

GitHub se ha convertido en la principal plataforma de proveedores de servicios para el desarrollo de software, permitiendo el alojamiento y la gestión del código fuente y otros archivos.

Para acceder al contenido de GitHub, utilizamos una herramienta de software llamada "control de versiones". Un software de control de versiones ayuda al equipo de software con toda la gestión del código compartido. Git es el software de control de versiones más utilizado, principalmente por las comunidades de software libre, al tiempo que es la herramienta utilizada por GitHub.

Para utilizar Github, es necesario crear una cuenta. Podemos utilizar una con el plan gratuito. Es muy sencillo y rápido. Así que, veamos el repositorio que he creado en Github. Aquí está el enlace para acceder a él.

En nuestro recién creado repositorio tenemos dos archivos de inicio autogenerados.

El archivo LICENSE contiene los términos de la licencia para utilizar los archivos del proyecto y el código contenido en este repositorio. He utilizado la Licencia Pública General GNU v3.0, la cual da total libertad para utilizar los contenidos de este repositorio.

El archivo README.md es un documento donde normalmente se describe la visión general del proyecto y también los procedimientos para aquéllos que pretenden utilizar el repositorio en sus equipos.

Ahora tenemos que instalar el software Git en nuestras computadoras para acceder al repositorio. En la página oficial de Git, encontrarás el modo de instalación en sistemas Linux, Windows y macOS. También es gratis.

Como utilizo Linux (distribución Ubuntu 22.04 LTS), ejecuté la línea de comandos siguiente para instalar Git en mi máquina:

$ sudo apt install Git

Después de instalar Git, tenemos que hacer una pequeña configuración inicial que le dirá a Git cuál usuario lo utilizará. Esto se logra utilizando el nombre de usuario de la cuenta que cada uno creó en Github con nuestro correo electrónico:

$ git config --global user.name "nombre de usuario

$ git config --global user.email "emaildeusuario@email.com"

¡Bien! Hecho esto, ahora vamos a descargar el repositorio en nuestra máquina usando el comando clone de Git:

$ git clone https://github.com/Revelo-Community/rcn-appdemo.git

Tomamos el enlace a clonar de la página del repositorio (pulsando sobre la palabra "Código" situada en la parte superior derecha de la pantalla). Este comando genera una copia del repositorio en nuestra computadora y crea los archivos con la configuración necesaria para que podamos trabajar con todos los archivos gestionados por Git.

#5. Conclusión

Este es el primer artículo de esta serie en la que tendremos una gran variedad de tecnologías utilizadas.

En el próximo escrito, nos pondremos manos a la obra. Construiremos una aplicación web con tecnologías tanto de frontend como de backend, tratando siempre de utilizar las herramientas más utilizadas en el mercado de software actual.

La participación de todos en el desarrollo es importante y genial, porque incluso para aquellos que ya tienen una buena experiencia en el área de desarrollo, siempre se puede encontrar algo nuevo o incluso contribuir mediante la adición de una mejor manera en la construcción de alguna parte del proyecto (se dará el debido crédito por la participación, por supuesto).

Para quienes se inician en su carrera de desarrollo, esta puede ser una gran oportunidad para aprender cómo ocurren los distintos pasos durante todo el proceso de desarrollo de una aplicación como ésta.

En este proyecto, ¡iremos desde cero hasta su publicación en la web, Play Store y posiblemente en la App Store! Con todo esto, imagino que incluso puede ganar alas más allá de su propósito inicial.

¿Lo hacemos realidad?

⚠️
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Revelo.

Revelo Content Network da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.