


Rubicon - это некастодиальный криптокошелек для безопасного хранения, отправки и получения цифровых валют и токенов. Он поддерживает четыре нативных валюты: Bitcoin, Ethereum, Litecoin, Tron и два токена: Tether ERC 20 и Tether TRC 20.
Первоначально заказчик планировал создать платежный инструмент только для своих существующих клиентов, однако чуть позже принял решение вывести криптокошелек на глобальный рынок и сделать его общедоступным.
Как проходила разработка Rubicon Wallet, с какими трудностями и вызовами сталкивалась наша команда во время работы – рассказываем дальше.





Цели и задачи
Разработать мобильный криптовалютный кошелек для IOS и Android на нативных технологиях:
- Создать индивидуальный и удобный UX/UI дизайн с возможностью персональной кастомизации.
- Реализовать программу на уровне кода.
- Разработать панель администратора для управления контентом.
- Обеспечить надежную защиту доступа к программе и безопасность транзакций.
- Добавить возможность импорта внешних некастодиальных кошельков по seed-фразе.
Как работает Rubicon Wallet
Есть два способа начать использовать Rubicon Wallet:
- Создать новый криптокошелек.
- Импортировать в приложение свой существующий некастодиальный кошелек с помощью seed-фразы.
Программа Rubicon является удобным инструментом, с помощью которого пользователи могут безопасно хранить средства и выполнять трансферы.
Количество кошельков, которые можно добавить в Rubicon – неограниченное.
Хранение и отображение средств
Приложение отображает баланс сразу в двух валютах – в цифровой и фиатной. По желанию, пользователь также может просмотреть информацию о текущей стоимости криптовалют прямо в Rubicon Wallet, для этого мы интегрировали в приложение настраиваемые графики, которые обновляются в режиме реального времени. Например, можно задать интересующий период — день, месяц или год, нужную фиатную валюту, и посмотреть историю курсов. Если стоимость крипт благоприятна, ее можно сразу приобрести, не оставляя приложение Rubicon.
Трансферы: отправка и получение активов
Отправка и получение средств – это основные функции криптокошелька, поэтому мы учли популярные поведенческие паттерны и ввели несколько полезных фичей. Например, добавили возможность указывать сумму перевода в фиате и вносить постоянных контрагентов в список контактов, чтобы каждый раз не вводить номер их кошелька при создании трансфера.
История финансовых операций доступна пользователю в любое время. Для удобства мы добавили возможность фильтрации: по дате и типу транзакции (отправка или получение).
Персональные настройки
Для удобства использования Rubicon мы внедрили возможности персонализации программы. К примеру, пользователь может изменить цветовую тему, настроить push-уведомление или изменить нужный язык.

Безопасность и прозрачность
Важным преимуществом Rubicon является то, что никто, даже владельцы программы, не имеют возможности влиять на транзакции пользователей. Это создает оптимальный доверительный фон и исключает риск односторонней заморозки или блокировки средств.
Надежную защиту доступа к программе обеспечивают:
- Запрос PIN-кода или биометрии при каждом открытии программы.
- Запрос PIN-кода или биометрии после автоматической блокировки экрана или бездействия.
- Запрос PIN-кода или биометрии перед транзакцией.
Таким образом, пользователь может быть уверен, что денежными средствами на его кошельке никто не сможет воспользоваться без его участия.

Разработка
Работу над проектом мы разделили на две части: создание самого криптокошелька и разработка панели администратора.
В качестве основного стека взяли нативные технологии Swift и Kotlin с использованием Jetpack Compose, а бэкенд построили на Python. Дополнительно задействовали посторонние API сервисы, облегчающие работу по блокчейн-сетям Tron и Ethereum.
Разработка проходила в несколько этапов. Подробнее о каждом из них сейчас расскажем.
1. Сбор информации и анализ
Изучили идею заказчика, а затем провели подробный анализ рынка. Это помогло нам понять потребности целевой аудитории, сильные и слабые стороны конкурентов Rubicon, которые мы использовали при дальнейшей разработке.
2. Проектирование
Перед началом разработки полностью описали функции кошелька, продумали его внутреннюю архитектуру и структуру безопасности, построили майндмепы и нарисовали варфреймы интерфейса. В результате получили тщательно продуманный прототип, позволивший максимально точно оценить сроки и стоимость реализации проекта.
Чтобы скоординировать свои планы с клиентом, мы провели презентацию мокапа и обсудили нюансы, а затем принялись за техническую реализацию криптокошелька.

3. Разработка дизайна
Дизайн сделали минималистичным и лаконичным. Количество графических элементов, которые могли бы отвлекать пользователя от основного контента, были сведены к минимуму. А чтобы приложение выглядело чисто и контрастно, в UI мы использовали зеленый цвет. Он создает ощущение свежести и открытости, а еще хорошо гармонирует со светлой и темной цветовой схемой.
Особое внимание уделили главному экрану и решили сделать его функциональным, по аналогии с другими успешными решениями в криптоиндустрии. При открытии программы пользователь на первом экране видит свой баланс, доступны криптовалюты и может перейти к созданию трансфера в один клик.

4. Mobile и backend-разработка
Rubicon Wallet функционирует как обычное мобильное приложение: фронтенд формирует и посылает новые запросы, а на бэкенде осуществляется обработка данных.
Для выполнения задач, связанных с выполнением транзакций, Rubicon обращается в блокчейн-сети Ethereum и Tron через API, которые были интегрированы нашими разработчиками:
- CryptoCompare – передает информацию о текущей и исторической стоимости криптовалюта в режиме реального времени. Эти данные приложение использует для отображения баланса в фиате и при построении графиков курса крипт.
- TronGrid – используется для получения баланса, списка транзакций, отправки транзакций и других операций в сети Tron.
- Etherscan – предоставляет данные истории транзакций в сети Ethereum.
- GetBlock – отображает баланс и отправляет Ethereum-транзакции в блокчейн.
5. Тестирование
Провели несколько уровней тестирования, устранили баги и убедились, что все функции криптокошелька работают так, как это было задумано.
Результат
Наша команда выполнила разработку некастодиального кошелька Rubicon для операционных систем IOS и Android. Деплой в App Store уже выполнен, а Play Market состоится в ближайшее время.
Клиент остался доволен технической реализацией криптокошелька и продолжает сотрудничество с нашей командой после релиза программы. Сегодня мы собираем обратную связь от пользователей и работаем над обновлением программы, направленной на повышение безопасности и улучшение функциональности продукта.