└── 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 |
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 |
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 |
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 |
--------------------------------------------------------------------------------