Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
Introducing a new tutorial series designed to take Web2 and Web3 developers alike from space cadets to astronauts building cool dapps on the Internet Computer.
Written by Jessie
Developing on a new platform or using a new language can seem daunting or overwhelming. Thatâs why the Internet Computer Protocol (ICP) has been designed to make creating and deploying entire web applications seamless, secure, and scalable. For new developers, itâs important to have a solid foundational understanding of the Internet Computerâs architecture, features, tools, and workflows.
Sometimes, finding the best place to start on your own can be a challenge. Thatâs why weâve put together a clear, comprehensive series of tutorials that brings developers through a curated path that covers everything from the fundamental concepts of the IC, all the way through the most advanced features to integrate into an application.
Introducing the Developer Journey
Today, weâre excited to announce this new tutorial series, known as the Internet Computer Developer Journey! The Developer Journey will contain a total of 36 written tutorials, covering everything from the architecture of the ICP to deploying your own SNS locally. For each written tutorial, there will be a corresponding video that walks through the content and steps displayed in the documentation tutorial. After level 0, each tutorial includes writing and deploying canisters that demonstrate the concepts introduced in the tutorial.
These 36 tutorials are divided into 6 levels, where the content in each level increases in skill level, building upon the information covered in the previous levels. The names of each level use an astronaut theme to describe the levelâs place in the journey.
For example, Level 0, the first level, is called the Pre-Flight Operations level, since it covers the prerequisite information that developers should know before they get started, similar to the pre-flight steps that are taken before an astronaut launches into space. Level 5, the final level, is called the Astronaut level, since after completing it, youâll have finished the Developer Journey series and have all the skills you need to be an IC astronaut!
Currently, the written documentation for levels 0, 1, and 2 are available on the IC developer docs, and the first video corresponding to module â0.1: Overview of the Internet Computerâ is available on the DFINITY Youtube channel here. (Insert link)
New videos will be released regularly every week, and the remainder of the documentation will be published in the upcoming months.
Letâs take a deeper dive into each level and the components of each level.
Level 0: Pre-Flight Operations
In the introductory level, the Developer Journey starts with taking a look at the Internet Computerâs architecture and how it works, including the essential terms and tools that are the foundation of developing on the IC. Specifically, this level consists of an overview of the IC and relevant terms, setting up a development environment, and an introduction to programming languages, tools, and canisters.
0.1 Overview of the Internet Computer: In the very first level of the Developer Journey, readers will get acquainted with the IC through an overview of the essential components, such as:
- An overview of the Internet Computer Protocolâs stack, including the peer-to-peer layer, consensus layer, message routing layer, and execution layer.
- An overview of chain-key cryptography.
- An overview of canisters and smart contracts.
- An overview of tokens and cycles.
- An overview of governance through the NNS and an SNS.
- An overview of the ICâs Internet Identity authentication service.
0.2 Internet Computer terminology: In this module, developers are introduced to some of the most commonly used terms on the IC, such as:
- Terms referring to different concepts, such as actor, agent, certified variables, principal, proposal, and replica.
- Terms relating specifically to canisters, such as canister development kit, canister state, controller, query, state change, and wallet.
- Terms describing different tools and products, such as dfx, ledger, and Motoko.
0.3 Developer environment setup: In the next module, developers are walked through setting up their local developer environment. For developing on the IC, the developer environment includes tools such as the IC SDK, a code editor, git, Node.js, and a command line interface.
0.4 Introduction to canisters: Canisters are at the very core of developing applications on the IC. This module introduces what a canister is, their architecture, and discusses the different types of canisters that can be developed.
0.5 Introduction to languages: In this page, we discuss the different languages that can be used to develop dapps, and provide a base-level introduction to the two primarily supported languages: Motoko and Rust.
0.6 Introduction to dfx: dfx is the DFINITY command-line execution environment for the IC SDK. It is the primary tool used for creating, managing, and deploying dapps onto the Internet Computer. This module covers dfxâs basic usage and syntax, upgrading to the latest version, and explores the default project template that new projects created with dfx use.
Level 1: Space Cadet
In the space cadet level, developers get started creating dapps hands-on by first looking at a live demo dapp deployed to the Motoko playground. Then, a comprehensive introduction to Motoko prepares developers for the remainder of the level that covers writing, deploying and managing their canisters.
1.1 Exploring a live demo: Before beginning to develop dapps, this module explores a live, deployed canister that utilizes the Motoko playground through the `dfx deployâââplayground` command.
1.2 Motoko level 1: This module provides an introduction to Motoko by covering the Motoko syntax, basic concepts and terms, and simple functions such as declaring an actor, printing values, and passing text arguments.
1.3 Developing your first dapp: In this tutorial, developers create their very first dapp on the Internet Computer that provides a simple poll dapp with a frontend canister and a backend canister.
1.4 Acquiring and using cycles: To deploy dapps on the IC mainnet, weâll need to acquire cycles. Cycles are used to pay for a canisterâs resources on the IC. This module covers how to acquire and use cycles.
1.5 Deploying canisters: This module details how to deploy dapps to the ICÂ mainnet.
1.6 Managing canisters: In this module, various canister management functions are covered such as how to obtain information on the canister, managing the canisterâs controller identities, topping the canister up with cycles, and deleting a canister.
Level 2: Space Explorer
At this point in the Developer Journey, itâs important to cover more advanced canister concepts and workflows, such as canister upgrades, advanced canister calls, and third-party canisters. This level also introduces Candid, an interface description language, and unit testing.
2.1 Canister upgrades, storage, and persistence: When a canisterâs code needs to have changes made, the canister must be upgraded. In this tutorial, in addition to canister upgrades, memory types such as stable storage and stable variables, are covered.
2.2 Advanced canister calls: This module takes a look at advanced canister calls, such as query and update calls, composite queries, and inter-canister calls.
2.3 Using third-party canisters: For certain workflows, using third-party canisters and integrating them with a dapp is important to provide functionalities such as authentication. This module covers using the command `dfx pull` to utilize third-party canisters.
2.4 Introduction to Candid: Candid is an interface description language that has unique support for IC features. In this tutorial, Candid types, values, and service descriptions are discussed.
2.5 Unit, integration, and end2end testing: Testing code prior to setting it live in production is an important step in the development process. In this tutorial, unit testing, end2end testing, and integration testing are covered.
2.6 Motoko: level 2: In the second Motoko tutorial of the developer journey, actor types, actor classes, shared functions, async data, and using multiple actors are taught.
Level 3: Space Engineer
The fourth level of the Developer Journey covers a wide variety of development tools, such as HTTPS outcalls, package managers, certified data, agents, and identities.
3.1 Motoko package managers: The package managers Mops and Vessel are covered in this tutorial.
3.2 Using HTTPS outcalls: HTTPS outcalls can be used to retrieve data from external APIs using `GET` and `POST` requests. This tutorial provides examples for both types of requests.
3.3 Certified data: In this module, what certified data is, how data is certified, and how to use certified variables are discussed.
3.4 Introduction to agents: Agents can be used to interact with a canisterâs API. In this introduction to agents, how an agent works, what an agent does, and how to use the JavaScript agent are explained.
3.5 Identities and authentication: When developing on the Internet Identity, there are several types of identities and methods of authentication that developers use and interact with. This guide focuses on Internet Identity, and provides an example of how to integrate Internet Identity into a sample dapp.
3.6 Motoko level 3: In the third Motoko installment, principals and caller identification, pattern matching, periodic timers, and access control are discussed.
Level 4: Space Pilot
In the Space Pilot level, itâs time for developers to learn about the decentralized finance features on the Internet Computer and how they can be integrated into a dapp. This level also covers the governance of the IC, known as the NNS.
4.1 Using the ICP ledger: To start learning about the ICâs DeFi features, we start with the ICP ledger and how to interact with it on the mainnet and locally.
4.2 ICRC-1 tokens: This guide covers the token standard ICRC-1, how to create an ICRC-1 token, and how to use the XRC canister.
4.3 ckBTC and Bitcoin integration: ckBTC is a digital twin token to BTC, created on the IC using chain-key cryptography. This guide covers that token and how a ckBTC dapp can be created.
4.4 NNS governance and staking: The IC is governed by a DAO known as the Network Nervous System (NNS). This guide covers how governance is achieved using the NNS, and how developers can participate in the NNS through staking tokens.
4.5 Using Quill: Quill is a minimalistic CLI tool that can be used to interact with the ICP ledger and governance bodies such as the NNS or a dappâs SNS. This guide covers basic usage of Quill.
4.6 Motoko: level 4: In the last installment of Motoko guides, Motokoâs mutable state, message inspection, local objects, and error features are taught.
Level 5: Internet Computer Astronaut
In the final step of the Developer Journey, developers will explore and create dapps that showcase some of the most advanced development workflows on the IC. These examples provide solid foundations for developers to build their own custom dapps on afterwards.
5.1 Encrypted notes dapp with vetKD: This sample showcases the vetKeys cryptographic functionality. vetKeys allow developers to encrypt, decrypt, and sign information when building dapps on the IC.
5.2 ICP ETH Integration dapp: To showcase the Internet Computerâs ETH integration, this guide explains how to build a simple dapp that displays the integrationâs functionality.
5.3 Creating a decentralized exchange: Decentralized exchanges are used to purchase and transfer tokens, such as ICP. This tutorial showcases how to create your own decentralized exchange.
5.4 Creating NFTs: This module details how to create NFTs on the Internet Computer using the ICRC-7 standard.
5.5 Creating an SNS: As the final code tutorial in this series, this guide teaches developers how to create and launch an SNS for their dapp, allowing the dapp to be governed by a DAO.
5.6 Next steps: To wrap up the Developer Journey, this guide leads you to the next steps to take now that you are an Internet Computer Astronaut! These next steps include things like how to apply for a developer grant or where to find developer bounties. It also provides resources for how to further interact with the IC developer community.
Start coding today!
You can get started with the Developer Journey tutorial series today by watching the first video in the series on the DFINITY Youtube channel, or you can follow the written documentation on the Internet Computer Developer Documentation.
If you have feedback or questions about the Developer Journey, join the conversation on the developer forum or chat with ICP developers in the community Discord server.
Follow the tech developments of Internet Computer: @DFINITYDev
Jumpstarting Your Internet Computer Developer Journey was originally published in The Internet Computer Review on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.