Проще говоря, первое, что нужно сделать при запуске своего Web3-решения, — понять, что именно вы хотите создать. И чем четче будет это понимание, тем проще разработчикам будет реализовать вашу задумку. Определиться с требованиями вы можете как самостоятельно, так и с помощью профильных специалистов (бизнес-аналитиков, маркетологов, программистов, дизайнеров, финансистов и т.д.).
Обычно это происходит таким образом: вы во время брифинга рассказываете о своей задумке и тех бизнес-целях, которых хотите достичь. Дальше:
- бизнес-аналитик изучает, насколько это актуально, есть ли на рынке конкуренты (их плюсы и минусы) и будет ли спрос среди пользователей;
- маркетолог помогает понять, какой продукт понравится пользователям, как выделиться среди конкурентов, как выйти на рынок и заработать деньги;
- дизайнеры описывают, каким должен быть пользовательский интерфейс, чтобы он понравился конечным пользователям и решил их запрос;
- программисты же говорят, как все это реализовать в коде.
Этап 2: Определение функций
На следующем этапе команда разработчиков решает, какие функции добавить. Перечень зависит от проекта. Так, в случае
создания криптовалютного кошелька список функций будет один, а в случае
запуска децентрализованной криптобиржи совсем другой. Кроме того, конкретный перечень функций также зависит от способа выхода на рынок — через MVP (Minimum viable product) или запуск полноценного продукта, который с самого старта предоставляет максимум возможностей клиентам.
Разница между MVP и полнофункциональным продуктом.
Источник.
Также нужно учесть, сколько ролей пользователей будет у продукта. Обычно это конечные пользователи и администраторы. Но иногда их бывает больше. Например, если вы хотите
создать NFT-маркетплейс, то в этом случае конечных пользователей можно разделить на покупателей и продавцов. Если вы
создаете криптовалюту, то в этом случае у вас будут обычные пользователи и майнеры / валидаторы, а также разработчики, которые будут улучшать код и добавлять новые функции.
Для примера рассмотрим перечень функций для криптокошелька.
Вот функционал кошелька для роли конечного пользователя:
- Регистрация. В случае криптокошелька регистрация происходит путем создания нового криптоадреса или восстановления (привязки) старого. В некоторых кошельках, например BlueWallet, также нужно выбрать тип учетной записи: стандартная, хранилище или Lightning. В зависимости от ее типа DApp будет выполнять роль обычного кошелька, очень надежного хранилища или кошелька для проведения Lightning-транзакций в сети Биткоина. В будущем на этом этапе также, вероятно, нужно будет проходить верификацию личности (такие требования сейчас принимают регуляторы США и ЕС).
- Курс, коэффициент конверсии. Самый простой вариант криптокошелька позволяет получать и отправлять виртуальные активы, как в MetaMask. Более продвинутые версии также позволяют переводить одни токены в другие или просто узнать курс всех токенов в портфеле и его стоимость по отдельным монетам и в целом (в фиате, например, в долларах, евро или фунтах).
- Управление активами (платежи). Это функционал, позволяющий пользователям покупать и продавать крипту не покидая кошелька. Это функционал должен быть реализован максимально просто и интуитивно понятно, чтобы даже незнакомый с криптовалютой человек сразу понимал, какую иконку ему нужно для достижения своих задач. Для удобства также желательно в этот раздел добавить QR-коды (и их сканирования) для быстрых транзакций и листинг Избранных адресов для повторяющихся операций.
- Привязка банковского счета. Также для повышения пользовательского опыта стоит добавить возможность привязать к учетной записи кошелька банковский счет, банковскую карту, PayPal, Google Pay, Apple Pay или другую платежную систему. Это позволит быстро покупать и продавать криптовалюту, не отвлекаясь на указание платежных реквизитов.
- Push-уведомления. Необязательная, но очень важная функция, если вы хотите разработать удобный Web3-кошелек. Уведомления будут сообщать о важных для пользователя вещах: запросах на оплату, изменении баланса, подтверждении транзакции, угрозах безопасности, обновлениях системы и прочем. Уведомления будут возвращать пользователей в приложение.
- Поддержка NFT. Еще одна необязательная опция. Но так как на данный момент NFT — один из главных трендов в отрасли, то поддержка возможности их хранения почти обязательная. Точнее, поддержка основных стандартов NFT: ERC721, ERC1155, BEP-721, BEP-1155, TRC-721, dGoods, Composables.
- Безопасность. Обычно на стороне пользователя это такие вещи, как двухфакторная аутентификация, аутентификация по отпечатку пальца или лицу, поддержка аппаратных кошельков, TTL, Seed-фраза. На стороне Web3-платформы — защита от DDoS, SSRF, CSRF, HPP и прочее.
Вот функционал кошелька для роли администратора:
- Панель приборов. Этот экран помогает администратору платформы отслеживать состояние системы: количество активных пользователей, количество проведенных транзакций (в секунду, час, день), объемы транзакций, новые сообщения, наличие каких-то проблем и другое.
- Управление пользователями. С помощью этой панели администратор может отслеживать статус пользователей платформы и изменять, добавлять, удалять, замораживать и восстанавливать их учетные записи. Помимо этого, здесь также должна быть функция для общения с пользователями.
- Управление платежной системой. На этом экране можно добавлять и удалять платежные системы, доступные пользователям. Также здесь обычно есть некоторые настройки, например возможность установить минимальный размер сделки для покупки криптовалюты за фиат.
- Управление комиссиями. Здесь админ может добавить, удалить или изменить комиссию за криптовалютные и фиатные транзакции, проходящие через ваш криптовалютный кошелек. Также на этом экране можно установить размер и периодичность выплат по реферальным программам.
- Управление контентом. Также вашим администраторам нужна будет возможность добавлять, изменять и удалять тексты, изображения, анимацию и другой контент внутри пользовательского интерфейса вашей платформы.
- Маркетинг и реклама. При запуске своего Web3-кошелька вы можете добавить возможность вывода рекламы через уведомления или баннеры. В этом случае администратору нужен будет функционал для управления ею.
- Документация по API. Инструменты для интеграции с другими сервисами.
Этап 3: Разработка архитектуры
Следующим шагом при
разработке Web 3-платформы будет создание информационной архитектуры будущего проекта. Обычно это блок-схема, на которой отображены основные компоненты системы и взаимосвязи между ними. Чаще всего это будущие экраны пользовательского интерфейса и переходы между ними.
Такая схема нужна, чтобы изучить и оптимизировать пользовательские потоки — действия пользователя по достижению нужных ему целей, например покупки криптовалюты. Считается, что чем проще будет этот путь, тем лучше пользовательский опыт и тем привлекательнее для пользователя интерфейс сайта или приложения.
Как правило, такую архитектуру создают бизнес-аналитики и UX/UI-дизайнеры. Также к ним может присоединиться программист или иной специалист, если нужна их консультация по какому-то вопросу. Например, сейчас к созданию криптопроектов нужно привлекать юристов, чтобы помогли соблюсти нормы и правила регуляторов и законов о хранении и распространении пользовательских данных.
Пример информационной архитектуры Web3-платформы.
Источник.
Этап 4: Разработка UX/UI-дизайна
На основе собранной на первых этапах информации, перечня функций и информационной архитектуры дизайнеры создают дизайн пользовательского интерфейса вашего Web-решения. Это должно быть чистое, простое и приятное внешне решение, которое должно соответствовать отраслевым стандартам (должен быть привычный всем дизайн кнопок и привычные названия разделов) и актуальным дизайнерским трендам. Кроме того, дизайн должен соответствовать рекомендациям от поставщиков платформ. Например, в случае создания приложения под iOS нужно соблюдать Human Interface Guidelines, у Android это Deliver high quality apps.
Сама разработка дизайна пользовательского интерфейса обычно состоит из нескольких шагов. На первом создается простой эскиз будущего интерфейса, где в очень упрощенной форме отображены экраны и что в них должно быть. Такой эскиз обычно называют варфреймом низкой точности. Вот как он может выглядеть:
Дальше эти эскизы согласовываются с заказчиком, и если все нормально, то дизайнеры на их основе создают варфреймы высокой точности. Это намного более точные эскизы дизайна пользовательского интерфейса в том виде, в котором он будет представлен конечным пользователям. Вот как они могут выглядеть:
Варфреймы высокой точности кошелька.
Источник.
Если и эти эскизы одобрены заказчиком, то дальше обычно создаются анимированные прототипы дизайна пользовательского интерфейса, где работают все анимации и переходы, но не работают сами функции приложения. Прототипы нужны для тестирования дизайна приложения на целевой аудитории и привлечения финансирования на ранних этапах разработки. Вот как они выглядят:
Пример анимированного прототипа криптокошелька.
Источник.
После определения функционала, построения информационной архитектуры, создания дизайна пользовательского интерфейса за дело берутся программисты, которые реализуют все это в коде. Для этого разработчикам нужно выбрать стек технологий, который лучше всего подходит под текущую задачу. Его обычно делят на стек для серверной части (back-end) и стек для интерфейса (front-end).
Стек технологий для разработки бэкенда Web3-решения:
- Смарт-контракты: виртуальная машина Ethereum или BSC.
- Базы данных SQL: MySQL, PostgreSQL, MariaDB, MS SQL, Oracle.
- DevOps: GitLab CI, TeamCity, GoCD Jenkins, WS CodeBuild, Terraform.
- Базы данных NoSQL: MongoDB, Cassandra, DynamoDB.
- Поисковые системы: Apache Solr, Elasticsearch.
- Языки программирования: Java, PHP, Python.
- Фреймворки: Spring, Symphony, Flask.
- Кэш: Redis, Memcached.
Стек технологий для разработки фронтенда Web3-решения:
- Языки программирования для веб: Angular.JS, React.JS и Vue.JS.
- Языки программирования для App: Java, Kotlin для Android и Swift для iOS.
- Архитектура: MVVM для Android и MVC, MVP, MVVM и VIPER для iOS.
- IDE: Android Studio и Xcode для
- SDK: Android SDK и iOS SDK.
Этап 6: Тестирование продукта
Тестированием занимаются QA-специалисты. Они проверяют код созданного продукта на наличие ошибок и соответствие спецификациям. Кроме этого, также тестируются функционал, юзабилити и производительность. Если Web3-решение содержит смарт-контракты, то их также нужно проверить как внутренними силами, так и с помощью независимых аудиторов, таких как Certik и Techrate.
Этап 7: Развертывание, релиз
Когда ваше Web-решение создано и протестировано, производится его развертывание на локальные серверы вашей компании или в облако (AWS, Azure, Google). Если это мобильное приложение, то его добавляют в листинги App Store, Google Play и Amazon App Store (это не противоречит правилам площадки).
Этап 8: Поддержка продукта
На последнем этапе происходит обучение персонала заказчика работе с разработанным продуктом и налаживание службы поддержки.
Стоимость создания NFT-кошелька