Существует множество рисков, о которых вам, как разработчику мобильных приложений, нужно заботиться, когда вы отправляете DApp в виде мобильного приложения.
1: Безопасность - создание собственного приложенияблокчейн означает, что вы должны сами встроить управление ключами.
В текущем состоянии DApp у нас есть MetaMask, браузер шифра, браузер статуса, браузер доверия и многие другие.Основная проблема, которую они пытаются решить, - это управление учетными записями, управление секретными ключами, процесс восстановления и хороший UX.
Все это необходимо решить самостоятельно, если вы хотите, чтобы ваши пользователи подписывалисоздайте личный ключ и надежно храните его в телефоне.Если хакерам удастся провести реинжиниринг и использовать ваше мобильное приложение, они смогут взломать хранилище закрытых ключей (место, где вы храните закрытые ключи для своих клиентов в своих телефонах).Вы ввернуты.
В MetaMask и вышеупомянутой банде есть эксперты, которые знают, что они делают, и всегда ставят безопасность в качестве основного столпа в процессе разработки.Кроме того, у них также есть команда дизайнеров, которая всегда предлагает лучшие идеи UX, чтобы каждый мог легко внедрить блокчейн.
Итог, если в вашей команде есть опыт в области безопасности и дизайна, который хорошо знает, как с этим справлятьсяуправление ключами, процесс восстановления (мнемонические / начальные фразы) и т. д., вероятно, это хорошая идея, чтобы создать свой собственный внутри вашего мобильного приложения.В противном случае я настоятельно рекомендую вам просто создать веб-приложения DApps и использовать вышеупомянутые браузеры MetaMask или DApp.
2: Доверие - идея самой блокчейна - сделать все децентрализованным и прозрачным.Когда вы создаете мобильное приложение для своего DApp, это означает, что вы делаете его централизованным.Ваше решение находится где-то на сервере.
Вы будете полагаться на Apple и Google каждый раз, когда хотите отправить обновления приложения.Представьте, что вы разработчик для iOS, а Apple очень долго проверяет и одобряет отправку обновлений вашего приложения?Вы ничего не можете сделать, потому что находитесь в среде централизованного / замкнутого контура.
Если вы делаете это как веб-приложение DApp, вы можете развертывать обновления DApp в любое время.В дополнение к этому, вы также можете разместить его на IPFS или Swarm , чтобы сделать его действительно децентрализованным приложением.
Прелесть того, чтобы сделать его здесь не мобильным приложениемваши пользователи могут просматривать код, потому что все, что они имеют в своем браузере, это статические файлы;HTML, CSS и JS.Ваши пользователи могут сказать, делаете ли вы что-то плохое в своем коде.Потому что они могут щелкнуть правой кнопкой мыши на вашем веб-приложении и увидеть исходный код страницы.
Но если вы делаете это как мобильное приложение, ваши пользователи не могут по-настоящему знать, что находится за приложением, и вам будет сложнопозже, чтобы убедить их, что они в хорошей компании.
3: Разработка - Web3JS - самый популярный и стабильный проект на данный момент.Он действует как слой моста между вашим DApp-интерфейсом и блокчейном.И, конечно, он написан и должен быть реализован в JS.
Даже сейчас мы начали видеть, что Web3 перенесен на многие другие разновидности, например, для Swift и Kotlin, они все еще новы.Значит, вы потратите много человеко-часов спустя, пытаясь отладить и решить проблемы, о которых знает / помнит только меньше людей.
Чтобы поделиться своим опытом, я Rubyist, и есть несколько разновидностей Web3для Руби сейчас.Но из того, что я тестировал, они все еще далеки от совершенства и стабильности, и в конце концов я решил перенести все на Web3JS для компонентов переднего плана и Go для back-end.компоненты.
К вашему сведению, клиент Ethereum Geth написан на Go, выписка go-ethereum project. Это означает, что все, что вам нужно сделать позже, то есть создание транзакции, подписание транзакции, запрос блоков / транзакций, создание / получение закрытого ключа и т. Д., Было протестировано и используется в реальном производстве. В любое время, когда вы застряли, вы можете пойти дальше, прочитать исходный код go-ethereum, чтобы узнать, как они делают определенные вещи (список выше).
Я не собираюсь повторять все эти новые ароматы. Вот что я пытаюсь вам сказать, это то, что все эти новые ароматы станут зрелыми и достаточно стабильными. Мой совет для вас сейчас, если вы хотите сделать DApp, используйте Web3JS. Если вам нужна некоторая внутренняя работа (ваш централизованный сервер <> блокчейн), используйте Go.
Надеюсь, это поможет!