Давайте разберемся, на каких технологиях строятся проекты Free TON, и что команды предпочитают использовать для создания сайтов и приложений.
Для начала рассмотрим основные проекты экосистемы
Разработчики TON Labs для создания сайтов и приложений предпочли использовать язык программирования JavaScript и стек, в основе которых лежат фреймворки React и React Native.
- React — это одна из самых популярных в мире библиотек для создания пользовательских интерфейсов. На момент написания статьи количество звезд на GitHub почти достигло 170 тыс (6 место среди всех репозиториев, включая сборники).
- React Native — это кроссплатформенный фреймворк для разработки нативных мобильных и настольных приложений на JavaScript и TypeScript. Оба фреймворка были созданы компанией Facebook.
Хитрость TON Labs заключается в использовании библиотеки React Native Web (RNW), которая позволяет писать один код для создания и веб, и мобильных приложений одновременно. Для примера, с помощью RNW созданы клиентские приложения Twitter.
Для взаимодействия с блокчейном команда выбрала GraphQL — язык запросов, используемый клиентскими приложениями для работы с данными, независимо от источников их изначального хранения. Среди преимуществ GraphQL:
- Позволяет клиенту точно указать, какие данные ему нужны
- Облегчает агрегацию данных из нескольких источников
- Не привязан к конкретной базе данных или механизму хранения
На данном стеке были реализованы как минимум
- Основной сайт (http://freeton.org)
- TON Surf (https://ton.surf/main)
- Сайт соревнований (http://gov.freeton.org)
- И сайт Explorer (https://ton.live)
Стоит отметить, что часть из упомянутых приложений работают сравнительно хорошо (например, TON Surf), а вот к некоторым имеются вопросы! Мы рассмотрим в следующей статье юзабилити и впечатления от использования данных сервисов. В рамках данной статьи ознакомимся только со стэками разработки.
Какие технологии используются помимо React?
Сайт блога (https://blog.freeton.org) реализован на CMS WordPress
- CMS (Content Management System) — это программное обеспечение, позволяющее управлять контентом сайта: создавать и публиковать записи, размещать виджеты, менять дизайн, редактировать различные элементы, добавлять функционал и т. д.
- Использование CMS позволяет сократить время при разработке сайтов, однако иногда бывает сложно адаптировать ее под свои нужды
- WordPress — самая популярная CMS в мире. Последние статистические данные показывают, что на долю WP приходится около 32% всех сайтов
- Несмотря на то, что с помощью WordPress можно создавать сайты любой тематики, изначально эта система была заточена под блоги. Исходя из этого, выбор WordPress в качестве основы для блога Free TON — это хорошее решение
Сайт форума (https://forum.freeton.org) реализован на CMS Discourse
- Discourse — это интернет-форум с открытым исходным кодом и программное обеспечение для управления списком рассылки, созданное в 2013 году
- Выбор Discourse очевиден — за кратчайшие сроки можно получить полноценный форум со множеством готовых функций. Из минусов — не уникальный дизайн, шаблонное решение.
Рассмотрим еще несколько проектов
ExtraTON (https://extraton.io/)
— это набор децентрализованных приложений FreeTON для хранения кристаллов, стейкинга, создания и подписания транзакций.
Фронтенд:
- Язык программирования: JavaScript
- Фреймворк: Vue
- Связь с API: GraphQL
Бэкенд (для некоторых приложений):
- Язык программирования: PHP
- Фреймворк: Symfony
- А еще команда представила альтернативу TON Surf — расширение extraTON для браузера Google Chrome (Написан также на JS и Vue).
TON Swap (https://tonswap.com/ - https://github.com/SVOIcom/tonswap-frontend)
— это победитель в конкурсе на первый этап разработки децентрализованной биржи (DEX) на блокчейне Free TON.
- Язык программирования: JavaScript
- Фреймворк: Не используется
- Связь с API: GraphQL
TON Crystal Wallet (https://github.com/broxus/wallet-desktop)
— это кошелек позволяющий проводить операции с TON Crystal. На данный момент поддерживает Windows 7+, macOS 10.12+ и Ubuntu 14.04+
- За основу взят кошелек Test Gram Wallet
- Языки программирования: C++ и Python
Выбор стека технологий несомненно является одним из важных параметров процесса разработки, однако работоспособность и юзабилити проектов - более важные аспекты! Именно их мы и рассмотрим в одной из следующих статей – подписывайтесь на канал, чтобы не пропустить новую статью!