Создание Сквозного dApp на Aptos
Распространенный способ изучения нового фреймворка или языка программирования - создать простой список задач. В этом учебнике мы изучим, как создать сквозной todo list dapp, начиная со стороны смарт-контракта через сторону фронтенда и, наконец, использование кошелька для взаимодействия между ними.
Посмотрите готовый код в исходном коде.
После выполнения предварительных требований и настройки, как описано ниже, вы будете следовать этому учебнику в таком порядке:
- Создать смарт-контракт
- Настроить фронтенд
- Получить данные из цепи
- Отправить данные в цепь
- Обработать задачи
Предварительные Требования
Заголовок раздела «Предварительные Требования»У вас должно быть:
Хотя мы объясним некоторые решения React, мы не будем глубоко погружаться в то, как работает React; поэтому мы предполагаем, что у вас есть некоторый предыдущий опыт с React.
Настройка
Заголовок раздела «Настройка»В этом разделе мы создадим директорию my-first-dapp
для хранения файлов нашего проекта, как клиентского кода (на основе React), так и кода Move (нашего смарт-контракта).
Для этого мы будем использовать create-aptos-dapp для создания проекта.
- Откройте терминал и перейдите в желаемую директорию для проекта (например, директорию
Desktop
). - Запустите
npx create-aptos-dapp@latest
для создания проекта.
npx create-aptos-dapp@latest
- Следуйте инструкциям для создания проекта.
- Выберите имя для проекта, например
my-first-dapp
. - Выберите опцию
Full-stack project
. - Выберите опцию
Boilerplate Template
. - Для простоты выберите не использовать Surf.
- Выберите опцию фреймворка
Vite app
. - Выберите опцию сети
Devnet
.
Инструмент создаст проект в директории с тем же именем, что и проект, и установит необходимые зависимости.
Следуйте инструкциям Next Steps
.
Теперь давайте создадим смарт-контракт.
Что вы изучите
Заголовок раздела «Что вы изучите»В этом учебнике вы изучите:
Разработка Смарт-Контракта
Заголовок раздела «Разработка Смарт-Контракта»- Язык Move: Основы программирования на безопасном языке Move
- Структуры данных: Создание и управление ресурсами для хранения данных
- Публичные функции: Разработка API для взаимодействия с контрактом
- Тестирование: Написание и выполнение unit тестов для Move
- Развертывание: Публикация контракта в блокчейне Aptos
Разработка Фронтенда
Заголовок раздела «Разработка Фронтенда»- React интеграция: Подключение React приложения к блокчейну Aptos
- TypeScript SDK: Использование Aptos TypeScript SDK для взаимодействия с блокчейном
- Управление состоянием: Синхронизация данных блокчейна с UI состоянием
- Wallet интеграция: Подключение и взаимодействие с кошельками Aptos
- Обработка транзакций: Отправка транзакций и обработка результатов
Полный Стек Разработки
Заголовок раздела «Полный Стек Разработки»- End-to-end архитектура: Понимание как смарт-контракты взаимодействуют с фронтендом
- Управление данными: Эффективное получение и обновление данных блокчейна
- Пользовательский опыт: Создание плавного UX для блокчейн приложений
- Обработка ошибок: Graceful обработка ошибок блокчейна и сети
- Развертывание: Подготовка полного dApp к продакшену
Концепции Todo List dApp
Заголовок раздела «Концепции Todo List dApp»Наш пример приложения будет включать:
- Создание задач: Добавление новых задач в список
- Управление задачами: Отметка задач как выполненных/невыполненных
- Постоянство данных: Сохранение данных в блокчейне
- Владение данными: Каждый пользователь управляет своими задачами
- Реальное время обновления: Синхронизация изменений между UI и блокчейном
Архитектура Проекта
Заголовок раздела «Архитектура Проекта»После завершения настройки ваш проект будет иметь следующую структуру:
my-first-dapp/├── contract/ # Move смарт-контракт│ ├── sources/│ │ └── todolist.move # Основной контракт│ ├── Move.toml # Конфигурация Move проекта│ └── tests/ # Unit тесты├── frontend/ # React приложение│ ├── src/│ │ ├── components/ # React компоненты│ │ ├── hooks/ # Custom React hooks│ │ ├── utils/ # Утилиты и хелперы│ │ └── App.tsx # Главный компонент│ ├── package.json # Зависимости frontend│ └── vite.config.ts # Конфигурация Vite└── README.md # Документация проекта
Технологический Стек
Заголовок раздела «Технологический Стек»Блокчейн Слой
Заголовок раздела «Блокчейн Слой»- Aptos: Высокопроизводительный блокчейн Layer 1
- Move: Безопасный язык смарт-контрактов
- Aptos CLI: Инструменты командной строки для разработки
Фронтенд Слой
Заголовок раздела «Фронтенд Слой»- React 18: Современная библиотека UI
- TypeScript: Типизированный JavaScript для лучшей надежности
- Vite: Быстрый инструмент сборки и dev сервер
- Aptos TypeScript SDK: Официальный SDK для взаимодействия с Aptos
Дополнительные Инструменты
Заголовок раздела «Дополнительные Инструменты»- Aptos Wallet Adapter: Стандартизированное подключение кошельков
- TailwindCSS: Utility-first CSS фреймворк для стилизации
- React Query: Управление состоянием сервера и кэшированием
Особенности Полного dApp
Заголовок раздела «Особенности Полного dApp»По завершении учебника ваш dApp будет иметь:
Функциональность Пользователя
Заголовок раздела «Функциональность Пользователя»- ✅ Подключение кошелька одним кликом
- ✅ Создание новых задач
- ✅ Просмотр всех задач
- ✅ Отметка задач как выполненных/невыполненных
- ✅ Удаление задач
- ✅ Постоянное хранение в блокчейне
Технические Особенности
Заголовок раздела «Технические Особенности»- ✅ Безопасный смарт-контракт с тестами
- ✅ Отзывчивый современный UI
- ✅ Обработка ошибок и состояний загрузки
- ✅ Оптимистичные UI обновления
- ✅ Управление газом транзакций
- ✅ Типобезопасность на всем стеке
Лучшие Практики
Заголовок раздела «Лучшие Практики»- ✅ Модульная архитектура кода
- ✅ Переиспользуемые компоненты
- ✅ Типизированные API взаимодействия
- ✅ Comprehensive error handling
- ✅ Производительные обновления состояния
- ✅ Готовность к продакшену
Готовы Начать?
Заголовок раздела «Готовы Начать?»Это руководство разработано пошагово, где каждая глава строится на предыдущей. К концу у вас будет полное понимание того, как создавать современные dApps на Aptos.
Давайте начнем с создания смарт-контракта!