Тестовые задания в MyTonWallet

Приглашаем выполнить одно из тестовых заданий для MyTonWallet. Успешное выполнение задания является необходимым условием для присоединения к команде. Цель тестового задания — оценить квалификацию и самоорганизованность кандидата.

Использование результатов

Результаты выполнения тестового задания могут использоваться в реальном проекте только в случае успешного найма кандидата и при возможности дальнейшего развития своего решения уже в рамках проекта. В этом случае рабочее время, затраченное на тестовое задание, оплачивается в первую неделю работы.

В остальных случаях работы кандидатов никак использованы не будут. Однако всем кандидатам, полностью выполнившим задание в соответствии с критериями, будет выплачено вознаграждение вне зависимости от результатов найма.

Критерии

Основные критерии оценивания: скорость работы приложения, точное соответствие макетам, плавность анимаций и внимание к деталям. Не рекомендуется использовать сторонние библиотеки и фреймворки.

Сроки выполнения

Перед началом выполнения необходимо оценить задачу по срокам (с учётом собственной загруженности и количества свободного времени) и сообщить нам.

Прочее

Предлагается выполнить одно из трёх заданий на выбор. Первое задание относится к разработке прототипа нового мобильного приложения, последующие — к улучшению существующего веб-приложения, код которого доступен в open-source репозитории.

⭐️ Задание 1. Нативное мобильное приложение

Screenshot 2023-02-21 at 21 00 34

Оплата в случае успешного найма: до $3000 за каждую платформу.

Вознаграждение при правильном выполнении задания, но при отсутствии последующего найма: до $750 за каждую платформу.

Описание. Предлагается разработать MVP мобильных приложений для iOS и/или Android в соответствии с дизайн-макетами. В MVP должны быть реализованы все экраны авторизации (Start, Creating Wallet, Import), а также главный экран (Home) с возможностью просмотра списка доступных токенов (Assets) и лентой транзакций (Activity) в режиме infinite scroll. Дополнительные экраны (Token Activity, Send, Receive, Settings и т.д.) не являются обязательными, но их реализация может оказаться дополнительным плюсом при оценивании. Наличие ночной темы также опционально. Интерфейс должен быть полностью анимированным по примеру актуальной веб-версии.

Выбор стека технологий остаётся на усмотрение кандидата. Допустимо использование гибридных технологий (например, React Native). При этом вероятно, что реализации с использованием нативных технологий (Swift, Kotlin) могут быть оценены выше из-за более точного соответствия основным критериям.

Важным условием является переиспользование существующей JavaScript-абстракции для работы с криптографическими функциями, обращений к блокчейну и эндпоинтам api.mytonwallet.org (папка /src/api в текущем репозитории). Прослойка должна запускаться в виде отдельного JavaScript-процесса внутри мобильного приложения (вне зависимости от основной выбранной технологии) и общаться с основным процессом с помощью сообщений провайдера (см. примеры в /src/api/providers).

В целом привествуется сохранение общей архитектуры и стилистики кода основного проекта.

⭐️ Задание 2. Раздел Connected Dapps в Настройках

Screenshot 2023-02-28 at 20 24 58

Оплата в случае успешного найма: до $1000.

Вознаграждение при правильном выполнении задания, но при отсутствии последующего найма: до $250.

Описание. В режиме расширения для Chrome поддерживается протокол TON Connect для подключения dapp-сайтов (например, getgems.io, tegro.finance и т.п.) Предлагается добавить в Настройках раздел управления подключёнными dapp-сайтами согласно макетам.

⭐️ Задание 3. Экран Swap

Screenshot 2023-02-28 at 20 27 26

Оплата в случае успешного найма: до $500.

Вознаграждение при правильном выполнении задания, но при отсутствии последующего найма: до $100.

Описание. Предлагается добавить на главный экран кнопку Swap (согласно макетам). При её нажатии происходит переход к экрану Swap (открытие модального окна/панели). Т.к. добавление токенов пока недоступно, небходимо использовать mock-данные для списка доступных токенов и их балансов. С учётом этих mock-данных нужно обрабатывать ошибки — например, когда вводится количество, превышающее баланс (по аналогии с экраном Send).