The term DApp means “decentralized application” and is here to stay.
When we find ourselves with a new topic to study, we cannot help but activate our previous knowledge to be able to link the new concepts with those already known. In some ways, we create our own mental data blockchains.
Based on this constructivist stance on learning, it seemed to me that the best way to explain DApps is from different perspectives. A user would try to relate the concepts of DApps from, precisely, their role as an active user in web2 applications. A person who develops would activate their knowledge of programming and website architecture. A person who designs, from their vision of user experience. Obviously there are more involved, but let's cut back a little and stay for now with those three examples for this article.
Each one would start from their knowledge built up to the moment of encountering this new world of the web3. The goal of this article is for everyone to understand the basic terms of a DApp to incorporate this new tool into their lives, regardless of where they began to understand it.
Let's now put all these points of view together in a single lens and analyze a real case of DApps. I share one that I found very funny: https://www.cryptokitties.co/
Let's get to know this platform by first reading the definition that appears on Wikipedia:
CryptoKitties is a blockchain game on Ethereum developed by Axiom Zen that allows players to buy, collect, breed, and sell virtual cats.1 It is one of the first attempts to implement blockchain technology for recreation and leisure. The popularity of the game in December 2017 congested the Ethereum network, causing it to reach an all-time high in the number of transactions and slowing it down significantly.
Let's put ourselves in the shoes of an active user. A person who constantly interacts with Web2, whether by uploading content, creating accounts on various platforms with their Google account, using applications to order food, to send messages, watch videos... They are very easy to access and we can download them from a app store, either Apple Store or Google Play. These applications are controlled by companies. They own the data and determine the flow of its use. It is common knowledge that many of these applications have fallen and we could not access our accounts or we were afraid of losing our photos, documents... In addition, those people who create content do not have the power to determine the value of their videos and neither when can they start monetizing them. Most of the applications used today have these features.
With the introduction of DApps it is intended to modify several of the previous points. A decentralized application does not store our data in one place, but in many. If it falls on one side, it has support from thousands more. The blockchain is based on this structure. Let's imagine the blockchain as a large database that collects and stores information in a shared and decentralized way. The contents cannot be modified or deleted. Regarding profits, a token system is established to encourage the maintenance of this ecosystem. What do we understand by tokens? A token is a unit of value issued by a person or entity. An example of tokens is BTC from Bitcoin and ETH from Ethereum.
To connect they will need a wallet address, although it is still possible to create accounts with email to avoid a gap in the use of this new technology.
Let's bond with the kittens
New way to log in: through the wallet address.
Profits are made from the buying and selling of collectibles.
I must make transactions
My data is stored on a decentralized network.
Kittens are unique and cannot be destroyed.
DApps have a very backend logic. Let's remember that one characteristic consists of storing data in a decentralized way and that certain technologies such as blockchain nodes, APIs, Web Sockets work that way. Therefore, a whole new programming paradigm will be required. The data is distributed on synchronized servers (computing nodes) spread around the world.
Additionally, DApps use smart contracts written in high-level languages such as Solidity or Vype in backend development. Solidity is a high-level object-oriented language
From the front-end, we can say that its development is similar to that of the web applications that we know so far, but developing DApps requires implementing scalability solutions to improve the responsiveness of requests.
The front-end can build DApps with frameworks like React and communicate with the blockchain through libraries like web3.js for Ethereum. One of the fundamental objectives is to send transactions and check the status of contracts.
Let's bond with the kittens
CryptoKitties is like a Neopets but with Ethereum
Blockchain technology verifies users' cryptocurrencies in a wallet.
Flow uses the proof-of-stake consensus model.
Use smart contracts.
The interface and user experience is an issue to prioritize to begin to include society in DApps. For decades they have been adapting to the use of traditional applications and managed to understand what is expected of them when they use them. The hamburger menu is now recognized visually, link the Gmail account with the applications, recover passwords. The correct use of DApps implies a new adaptation and must, I emphasize, be gradual and as comfortable as possible.
Here the design of interfaces in decentralized applications plays an important role. The user interface should be intuitive and easy to understand, especially for those who are not familiar with blockchain technology. Simple processes must be designed to contribute to a positive experience.
Let's bond with the kittens
Simple, intuitive and functional website to use.
FAQ and a chat bot guide users through the steps for authentication and use of the digital wallet.
Uses loading indicators, status updates and error monitoring.
DApps introduce us to the new era of applications where users, developers and designers must understand basic concepts such as blockchain, decentralization, digital wallet... We must go through this process together and handle ourselves precisely as nodes, as a large network where we share data and we are going towards the same goal.
There will be new changes for both the people who use it, who develop it and who design it.