└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Тестовые задания в MyTonWallet 2 | 3 | Приглашаем выполнить одно из тестовых заданий для MyTonWallet. Успешное выполнение задания является **необходимым условием** для присоединения к команде. Цель тестового задания — оценить квалификацию и самоорганизованность кандидата. 4 | 5 | ### Использование результатов 6 | 7 | Результаты выполнения тестового задания могут использоваться в реальном проекте **только в случае успешного найма** кандидата и при возможности дальнейшего развития своего решения уже в рамках проекта. В этом случае рабочее время, затраченное на тестовое задание, **оплачивается** в первую неделю работы. 8 | 9 | В остальных случаях работы кандидатов никак **использованы не будут**. Однако всем кандидатам, полностью выполнившим задание в соответствии с критериями, будет выплачено **вознаграждение** вне зависимости от результатов найма. 10 | 11 | ### Критерии 12 | 13 | Основные критерии оценивания: **скорость работы приложения**, **точное соответствие макетам**, **плавность анимаций** и **внимание к деталям**. Не рекомендуется использовать сторонние библиотеки и фреймворки. 14 | 15 | ### Сроки выполнения 16 | 17 | Перед началом выполнения необходимо оценить задачу по срокам (с учётом собственной загруженности и количества свободного времени) и сообщить нам. 18 | 19 | ### Прочее 20 | 21 | Предлагается выполнить одно из трёх заданий на выбор. Первое задание относится к разработке прототипа нового мобильного приложения, последующие — к улучшению существующего веб-приложения, код которого доступен в [open-source репозитории](https://github.com/mytonwalletorg/mytonwallet). 22 | 23 | ## ⭐️ Задание 1. Нативное мобильное приложение 24 | 25 | Screenshot 2023-02-21 at 21 00 34 26 | 27 | **Оплата** в случае успешного найма: до _$3000_ за каждую платформу. 28 | 29 | **Вознаграждение** при правильном выполнении задания, но при отсутствии последующего найма: до _$750_ за каждую платформу. 30 | 31 | **Описание.** Предлагается разработать MVP мобильных приложений для iOS и/или Android в соответствии с [дизайн-макетами](https://www.figma.com/file/4zlzG0ShKBrhxT6yUZlqtk/MyTonWallet-Design-Mobile-Public?node-id=0%3A1&t=6sQFwq4lfEtj8XS5-0). В MVP должны быть реализованы все экраны авторизации (_Start_, _Creating Wallet_, _Import_), а также главный экран (_Home_) с возможностью просмотра списка доступных токенов (_Assets_) и лентой транзакций (_Activity_) в режиме infinite scroll. Дополнительные экраны (_Token Activity_, _Send_, _Receive_, _Settings_ и т.д.) не являются обязательными, но их реализация может оказаться дополнительным плюсом при оценивании. Наличие ночной темы также опционально. Интерфейс должен быть полностью анимированным по примеру актуальной веб-версии. 32 | 33 | Выбор стека технологий остаётся на усмотрение кандидата. Допустимо использование гибридных технологий (например, React Native). При этом вероятно, что реализации с использованием нативных технологий (Swift, Kotlin) могут быть оценены выше из-за более точного соответствия основным критериям. 34 | 35 | Важным условием является **переиспользование существующей JavaScript-абстракции** для работы с криптографическими функциями, обращений к блокчейну и эндпоинтам api.mytonwallet.org (папка [/src/api](https://github.com/mytonwalletorg/mytonwallet/tree/master/src/api) в текущем репозитории). Прослойка должна запускаться в виде отдельного JavaScript-процесса внутри мобильного приложения (вне зависимости от основной выбранной технологии) и общаться с основным процессом с помощью сообщений провайдера (см. примеры в `/src/api/providers`). 36 | 37 | В целом привествуется сохранение общей архитектуры и стилистики кода основного проекта. 38 | 39 | ## ⭐️ Задание 2. Раздел Connected Dapps в Настройках 40 | 41 | Screenshot 2023-02-28 at 20 24 58 42 | 43 | **Оплата** в случае успешного найма: до _$1000_. 44 | 45 | **Вознаграждение** при правильном выполнении задания, но при отсутствии последующего найма: до _$250_. 46 | 47 | **Описание.** В режиме расширения для Chrome поддерживается протокол TON Connect для подключения dapp-сайтов (например, getgems.io, tegro.finance и т.п.) Предлагается добавить в Настройках раздел управления подключёнными dapp-сайтами согласно [макетам](https://www.figma.com/file/4zlzG0ShKBrhxT6yUZlqtk/MyTonWallet-Design-Mobile-Public?node-id=3277%3A33896&t=vcntzMfbHADbRQrk-0). 48 | 49 | ## ⭐️ Задание 3. Экран Swap 50 | 51 | Screenshot 2023-02-28 at 20 27 26 52 | 53 | **Оплата** в случае успешного найма: до _$500_. 54 | 55 | **Вознаграждение** при правильном выполнении задания, но при отсутствии последующего найма: до _$100_. 56 | 57 | **Описание.** Предлагается добавить на главный экран кнопку Swap (согласно макетам). При её нажатии происходит переход к [экрану Swap](https://www.figma.com/file/4zlzG0ShKBrhxT6yUZlqtk/MyTonWallet-Design-Mobile-Public?node-id=2632%3A48601&t=vcntzMfbHADbRQrk-0) (открытие модального окна/панели). Т.к. добавление токенов пока недоступно, небходимо использовать mock-данные для списка доступных токенов и их балансов. С учётом этих mock-данных нужно обрабатывать ошибки — например, когда вводится количество, превышающее баланс (по аналогии с экраном Send). 58 | --------------------------------------------------------------------------------