dApp開発の対象範囲
クイックチェック: ユーザーが完了すべきアクションを3つ挙げてください。3画面以上必要な場合は、まずフローを簡略化しましょう。
dApp開発は、ユーザーが使いやすいインターフェースとブロックチェーン機能、そしてプロダクトが表示する必要のあるデータを結びつけます。作業内容には、Webフロントエンド、ウォレット接続、コントラクトインタラクション、インデックス層が含まれる場合があります。正確な範囲は、既に構築されているものと、ユーザーが実行できなければならないことによって決まります。
技術の列挙ではなく、ユーザーアクションから始めてください。例えば、訪問者がウォレットを接続すべきか、オンチェーンポジションを確認すべきか、トランザクションを送信すべきか、アクティビティを確認すべきかを指定します。これにより、実装開始前に画面、エラー状態、データ要件を定義するための基盤がチームに与えられます。
最初の計画メモで回答すべき項目:
- どのユーザーグループがアプリケーションを利用し、それぞれ何ができるべきか?
- 計画対象のチェーンはどれか、またコントラクトは既に利用可能か?
- インターフェースに表示すべき情報は何か、どの程度最新である必要があるか?
- モバイルブラウザとデスクトップの両方で動作する必要があるか?
プロダクトにコントラクトロジックも必要な場合は、アプリ計画をスマートコントラクト開発と連携させてください。より広範な技術ロードマップについては、Web3開発をご覧ください。お客様の回答をもとに、機能範囲、依存関係、受入基準を明確にします。「dAppを構築する」という漠然とした仕様では対応しません。
画面、ウォレット、データはどのように連携するのですか?
フロントエンドはプロダクトのアクションを提示し、ウォレット接続はユーザーがサポート対象チェーンとやり取りする手段を提供し、インデックスは選択されたブロックチェーンデータをアプリケーションが取得・表示しやすくします。これらは一つのユーザージャーニーとして設計されるべきです。なぜなら、どんなに明確な画面でも、接続やデータの状態が混乱していては補えないからです。
フロントエンドについては、主要な画面と、それぞれが表示できる状態(未接続、接続済み、読み込み中、完了、注意が必要)を特定します。ウォレット接続については、計画対象のチェーンとアクションを文書化し、ユーザーにリクエスト承認を求める前にインターフェースが何を説明すべきかを決定します。インデックスについては、プロダクトが必要とするレコード、それらが機能とどのように関連するか、インターフェースがデータの遅延や利用不可をどのように処理すべきかをリストアップします。
実用的な要件チェックリスト:
- 各主要アクションを、対応する画面と結果の状態にマッピングする。
- ユーザーがアカウントやネットワークを変更したときに何が表示されるかを指定する。
- プロダクトが必要とするデータフィールド、履歴、フィルターを特定する。
- エラーや不完全な情報をどのように説明するかについて合意する。
プロダクトが既存のウォレットに接続するのではなく、ウォレット自体を必要とする場合は、スタンドアロンの仮想通貨ウォレット開発計画も立案可能です。マーケティングサイトが必要でインタラクティブなアプリケーションではない場合は、Web3ウェブサイト・ランディング開発サービスが適しています。
dAppの引継ぎ内容
有用なdAppの引継ぎでは、お客様のチームが実装を運用・拡張するための、動作するコードと十分なコンテキストを提供します。作業開始前に、どの納品物がお客様の計画に適用され、それぞれがどのようにチェックされるかを合意します。これにより、リポジトリやデモだけが完了の定義とみなされることを防ぎます。
概要に応じて、納品物にはフロントエンド実装、ウォレット接続フロー、データ取得・インデックス作業、合意されたジャーニーのテストカバレッジ、セットアップ手順、ウォークスルーが含まれます。既存のコードベースがある場合は、アクセス情報と現在のアーキテクチャの簡単な説明を提供していただくことで、新規作業と統合・修正作業を区別できます。
明確な受入チェックリストのために、以下を合意します:
- 合意された環境で動作しなければならないユーザージャーニー。
- 対象となるチェーン、ウォレットシナリオ、データビュー。
- 完了したテストの基準と、結果をレビューする担当者。
- 引き渡される設定、運用メモ、ソースファイル。
受入基準は目に見える動作に結びつけます。レビュー担当者は合意されたフローを実行し、期待されるインターフェース状態を確認し、エラーに対するアプリケーションの応答をチェックできます。別途モバイルアプリケーションが含まれる場合は、モバイルブラウザ対応とネイティブアプリを同一の納品物として扱う前に、Web3プロダクト向けモバイルアプリ開発と計画を調整してください。
dApp概要チェックリスト(6項目)
開発開始前に以下の6項目を準備してください。これらがあれば、開発者は正確な見積もりを提示でき、お客様のチームは各マイルストーンを明確な基準でレビューできます。完了したチェックリストは記録として保管してください。後日、合意内容を説明する最も迅速な方法となります。
- コントラクトアドレスをリストアップし、ABIを共有する。
- 主要なユーザーアクションを3つ説明する。
- サポートするチェーンとウォレットを指定する。
- 画面に表示する必要のあるデータを決定する。
- ブランドアセットとデザインメモを共有する。
- 引継ぎ項目(コード、メモ、テスト手順)を合意する。
用語の一言説明
ABI(平たく言えば、フロントエンドがコントラクトを呼び出すために必要な関数の説明書)。
インデックスとは、アプリが素早く読み取れる形式でオンチェーンデータを収集することを指します。
概要から引継ぎまで
経験則: すべての画面にウォレットとネットワークの状態を表示し、ユーザーが現在地を推測しなくて済むようにします。
dAppは、ユーザー、コアジャーニー、チェーン要件、依存関係が判断可能なほど明確になった時点で実装に移行します。MarketingExtraでは、まず構造化されたレビューで、お客様が依頼しているフロントエンド、ウォレット、インデックス作業に対して概要をチェックし、その後、計画とレビューポイントをお客様のチームと確認します。
作業の流れは実践的です。プロダクトフローを明確化し、利用可能なコントラクト、チェーン詳細、データソースを確認し、インターフェース状態と受入チェックを定義し、合意されたコンポーネントを実装し、結果をレビューして合意された資料を引き渡します。コントラクトや外部サービスがまだ変更中の場合は、その依存関係を早期に指摘し、チームが先に確定させるか、関連するアプリケーション作業を分離して進めるかを判断できるようにします。
キックオフを生産的にするための準備事項:
- 簡潔なプロダクト説明と主要なユーザーアクション。
- 既存のデザイン、リポジトリ、コントラクト詳細、テストアクセス(可能な場合)。
- チェーンとウォレットの要件、およびインターフェースに必要なデータ。
- プロダクトの決定と作業フローのレビューに対応できる連絡担当者。
スケジュールは、確定した計画、統合、フィードバックのサイクルに依存するため、これらの依存関係をレビューした後に計画します。汎用的な期間を提示することはありません。お客様は、合意された計画、レビュー用のチェックポイント、および納品基準に沿った引継ぎを受け取ります。
ウォレットとネットワークに依存する動作
インターフェースが合意通りに実装されていても、アプリケーションの動作の中には開発チームの制御外にあるものがあります。ウォレットプロバイダーはプロンプトやサポート動作を変更する可能性があり、チェーンのトランザクション確認やインデックスサービスのデータ可用性はユーザーに表示される内容に影響を与える可能性があります。これらの条件はフロントエンドの構築で保証できません。明確な状態を設計し、合意されたフローをテストしますが、サードパーティの動作は依存関係として残ります。
予期せぬ問題を減らすために、計画対象のウォレットとネットワークを記録し、テスト環境へのアクセスを手配し、接続やデータリクエストが失敗した場合のアプリケーションの応答方法を合意してください。プロダクトが特定のインデックスレコードに依存する場合は、それらのレコードの出所と、レビュー中にチームが検証する方法を確認してください。
受入時には、インターフェースが読み込まれるかどうかだけでなく、実際のユーザー体験を確認してください:
- レビュー担当者は、先に進む前に要求されているウォレットアクションを理解できますか?
- ユーザーが拒否または切断した場合、プロダクトは有用な応答を返しますか?
- 読み込み中、データ欠落、エラーの各状態は明確で理解しやすいですか?
- 表示された情報が合意されたソースと一致していることをチームは確認できますか?
これらのチェックにより、依存関係が可視化され、お客様のチームは何を引き渡す準備ができているかを具体的に判断できます。また、アプリケーションの問題と、上流のウォレット、ネットワーク、データサービスの問題を区別するのに役立ちます。ただし、開発者が制御できない動作を保証することはありません。
3つのものをお送りください:コントラクトアドレスとABI、ユーザーフロー、サポートするウォレットとチェーン。
仕組み
- プロダクト概要を共有プロダクトのユースケース、主要なユーザーアクション、既存のデザインやコードをお送りください。既に把握しているチェーン、ウォレット、データ要件を含めてください。
- 計画と依存関係をレビューフロントエンド、ウォレット、インデックスのニーズを確認し、まだ必要な判断やアクセスを特定し、納品範囲を確定します。
- 受入チェックに合意お客様のチームが実装をレビューするために使用するユーザージャーニー、環境、目に見える動作を定義します。
- 構築とレビューチームが合意された計画を実装し、受入チェックに基づいてレビュー用に共有します。決定事項とフィードバックは記録されます。
- 引継ぎ合意されたファイル、セットアップ情報、ウォークスルーを提供し、お客様のチームが次のプロダクトステップに進めるようにします。
よくある質問
dApp開発を依頼する前に何を送ればよいですか?
プロダクトの簡単な説明、主要なユーザーアクション、対象チェーン、ウォレット要件、インターフェースに表示する必要のあるデータをお送りください。既存のデザイン、コントラクト、リポジトリ、統合情報があればそれも含めてください。未決定の項目がある場合は、未解決の質問として明記してください。初期レビューで、どの判断が計画に影響するかを特定できます。
コントラクトが既にある場合、フロントエンドを構築できますか?
はい。利用可能なコントラクトインターフェースとデプロイ詳細、サポート対象チェーン、フロントエンドが対応すべきユーザージャーニーを共有してください。それらの入力に基づいて、インターフェース、ウォレットインタラクション、必要なデータ処理を計画できます。コントラクトに変更が必要な場合は、アプリケーション作業の範囲を合意する前にその依存関係を特定します。
インデックス層がないと何が問題になりますか?
インデックスは、アプリケーションが選択したオンチェーン情報を画面に適した形式(ユーザーが閲覧するアクティビティやレコードなど)で取得・表示するのに役立ちます。必要性はデータとユーザー体験によります。まずインターフェースが表示すべきものをリストアップし、その後、その情報をどのように取得しチェックするかを決定します。
複数のウォレットやチェーンをサポートできますか?
プロダクト要件の一部として複数のウォレットやチェーンのシナリオを計画できます。概要には、どの組み合わせが重要で、それぞれに対してどのユーザーアクションが動作しなければならないかを記載してください。これにより、一つの設定での接続がすべての要求シナリオをカバーすると想定するのではなく、関連するインターフェース状態とテストを考慮に入れることができます。
dAppの構築には何週間かかりますか?
期間は、機能、既存のコードとコントラクト、統合、チェーン要件、フィードバックプロセスをレビューした後に設定します。焦点を絞ったフロントエンド計画と、ウォレットフローやインデックス層も必要なプロダクトとでは異なります。これらの依存関係が明確になった時点で、お客様のチームと納品スケジュールとレビューポイントを合意できます。
ウォレット接続とデータは常に利用可能ですか?
いいえ。合意されたアプリケーションの動作を納品しテストすることはできますが、ウォレットプロバイダーの変更、チェーンの確認条件、インデックスサービスの可用性や鮮度はアプリケーションチームの制御外です。合意された障害シナリオに対して明確なインターフェース状態を用意し、関連する依存関係を文書化して、お客様のチームが何を確認すべきかを把握できるようにします。
プロジェクトについて教えてください
4つの簡単な質問に答えると、マネージャーが1時間以内にプラン、スケジュール、価格帯をお送りします。すべて機密情報として扱われます。
フォームを読み込んでいます…