コードサンプル

以下のサンプルアプリをご覧いただき、IC を利用したアプリで何ができるかご確認ください。すべてのサンプルとその他のプロジェクトは Examples Repo で見つけることができます。 Awesome Dfinity (私たちのコミュニティから集められたオープンソースプロジェクトや事例を集めたもの)や Hackathon projects でさらなる事例を見つけることができます。

Hello world

hello world に相当する Dapp で、バックエンドとフロントエンドの Canister に分かれて Web ページを提供します。
MotokoRustSee runningTechnical docs

静的なウェブサイト

このチュートリアルでは、静的な Web サイトの構造を設定し、コンテンツと基本的なスタイルを追加して IC にデプロイする方法を紹介します。
Technical docsVideo guide

ベーシックな DEX

IC 上で Defi アプリケーションを実現するために、Canister はトークン Canister や Ladger Canister とインタラクションする必要があります。このサンプルアプリでは、取引所が資金を預かり、ユーザーの取引に応じて残高を更新し、資金が引き出されると預金をユーザーに返す方法を通じてこれらのインタラクションを説明します。
MotokoRustSee runningTechnical docs

NFT のミント

この NFT ミント Dapp は、ユーザーが生成した NFT を簡単に作成し、それを共有することができることを紹介しています。このアプリは、https://github.com/Psychedelic/DIP721[DIP721] NFT スタンダードを使用しています。
RustTechnical docs

ベーシックな DAO

分散型ガバナンスは IC のハイライトであり、以下のベーシックな DAO のサンプルコードによって説明されています。これは、アカウントと対応するトークンのセットを初期化する方法、アカウントの所有者が他のアカウントの所有者に投票するための提案を提出する方法、および十分な賛成票を得た提案が実行される方法を示しています。
MotokoRustTechnical docs

暗号化されたノート

Internet Identity サービスとエンドツーエンドの暗号化を用いて、複数のデバイスから秘密のメモを作成/アクセス/変更することができます。このサンプルコードは、ICの ウェブサービス機能ストレージ機能 に依存しており、(1)クライアントサイドのエンドツーエンド暗号化、(2)マルチユーザーおよびマルチデバイスのサポート、の 2 つの重要な機能をハイライトしています。
MotokoRustSee runningTechnical docs

トークンの送金

このサンプルコードは、Dapp が最もアクティブなユーザーにトークンを転送する方法を示しています。
MotokoRustTechnical docs

Motoko Playground

Motoko で書かれたコードサンプルのレリポジトリへのリンク集です。ほとんどは Motoko playground でも公開されています。Playground は、SDKをダウンロードして使い方を学ぶことなく Motoko のサンプルを試すことができる最もシンプルな環境ですが、フロントエンドを持つ Dapp はサポートしません。

基礎

IC と Motoko の基本的な概念を示す、入門用サンプル集です。

  • Actor_reference では Actor(参照)としての IC マネジメント Canister を紹介します。

  • Counter では基本的な (静的) 変数のデモを紹介します。

  • Echo では基本的なクエリ関数のデモを紹介します。

  • Factorial では基本的な階乗のデモを紹介します。

  • Hello_cycles では Cycles の受信と転送、残高の確認を紹介します。

  • Whoami では呼び出し元の Principal を報告する単純な Canister を紹介します。

中級

中級編のサンプルでは、基本的なコンセプトを一般的なユースケースでどう使うかを紹介しています。このサンプルでは、Motoko で簡単なバックエンド機能を構築する方法を紹介します。

  • Classes では動的な Actor(クラス)のインスタンス化について紹介します。

  • Pub-sub では複数の Canisters で、パブリッシャーとサブスクライバーの Canister 間通話を行う方法について紹介します。

  • Quicksort では Motoko のクイックソートによる配列のソートの方法を紹介します。

  • Simple-to-do は CRUD 的なデモサービスで、フロントエンドはありません。phone-book と superheroes もご覧ください.

  • Calc は counter demo の発展型です。

最小限のフロントエンド

これらの例では、最小限のフロントエンドコンポーネントを使用しています。

  • Random_maze は IC ベースのランダムな迷路生成です。

  • Cert_var は単純な認証済み変数(単一の32ビット)で、クライアントサイドの証明書検証を行うものです。

フルスタック

これらの例では、( React.Component を介してを介して)"従来の" フロントエンドコンポーネントを使用しています。

  • Life では Motoko Canister で動作する Conway の Game of Life のデモンストレーションをおこないます。3つのバージョン間のアップグレードと、ステーブル変数を使った状態の移行のデモンストレーションを行う

  • Phone-book は CRUD ライクなデモサービスです。

  • Superheroes はシンプルな CRUD Dapp です。

  • Auth Client Demo は Internet Identity を使った単純な認証のデモです。

  • IC-Avatar は Motoko + React のフルスタックアプリで、より高度な認証、画像アップロード、楽観的更新(Optimistic updates)が可能です。

アドバンス

コミュニティから寄稿された大規模なサンプルで、必ずしも最新のものではありません。

Dapps 構築のためのビデオガイド

community conversationsシリーズは、Rust で Dappsを作るためのインストラクションと、Rust で Dapps を作るためのベストプラクティスを紹介するビデオです。

その他の有用なビデオシリーズとしては、https://www.youtube.com/watch?v=M2XnywvwxFM&list=PLuhDt1vhGcrfQGLWqhUo9-DFD5JaHqCh1[Coding with Kyle] があります。