В данной статье мы расскажем о том, как мы умудрились разработать достаточно сложный аналитический биржевой терминал для рынка нефтепродуктов на кроссплатформенной технологии Xamarin под две платформы – iOS и Android.
Заказчиком проекта выступила компания «Солид-товарные рынки», которой принадлежит бренд «Коммод» и одноименный аналитический терминал.
Компания «Солид-товарные рынки» – ведущий брокер на товарном рынке, оказывающий услуги на всех секциях Санкт-Петербургской Международной Товарно-сырьевой биржи, Московской международной товарно-энергетической бирже и ЗАО «Биржа «Санкт-Петербург».
Так как мы специализируемся на разработке ИТ-решений для финансовых и биржевых компаний, то данный проект вызвал наш интерес и началось сотрудничество.
Когда была достигнута договоренность об установочной встрече с представителями заказчика у него в центральном офисе, то мы выехали на встречу расширенным составом.
Приехав в офис к клиенту, мы прониклись чувством острой ностальгии, т.к. многие из наших сотрудников работали в финансовых и брокерских компаниях и очень хорошо помнят ту атмосферу, которая царит в подобных организациях. Всё, начиная от солидного собственного офиса и заканчивая специфическим сленгом «биржевиков», говорило нам о том, что мы попали по адресу и найти общий язык с клиентом не составит труда. Так в итоге и получилось.
У заказчика на тот момент уже был разработан и запущен собственный классический десктопный торгово-аналитический терминал «Коммод», который хорошо зарекомендовал себя на рынке брокерских услуг. Трейдеры, брокеры и аналитики топливного рынка уже давно используют данный терминал в своей работе и привыкли к нему.
Но даже такая консервативная отрасль как товарная биржа не стоит на месте, и там сейчас активно внедряются современные, в том числе мобильные, технологии.
Поэтому компания «Солид-товарные рынки» приняла решение запустить мобильный терминал «Коммод» ля того, чтобы предоставить своим клиентам возможность получать самую актуальную аналитическую информацию с сырьевых рынков максимально оперативно прямо с мобильных устройств.
В силу того, что серверная часть данной биржевой системы была разработана на платформе .NETи C#, то IT-департамент клиента принял смелое решение о том, чтобы разработать мобильный терминал на кроссплатформенной технологии Xamarinдля того, чтобы обеспечить максимальную совместимость уже имеющихся архитектурных решений с новым мобильным терминалом.
Наша компания обладает сильной экспертизой как в нативных, так и в кроссплатформенных технологиях. Поэтому нам не составило труда выполнить разработку данного решения на Xamarin.
Справедливости ради нужно отметить, что наши архитекторы и разработчики с самого начала скептически отнеслись к идее разрабатывать такой высоконагруженный программный комплекс на Xamarin, т.к. скорость и надежность работы данной технологии явно уступает нативным решениям. Мы настаивали на том, чтобы выполнить данный проект на нативе, чтобы в будущем обеспечить максимальную надежность и стабильность работы системы, а также открыть возможности по масштабированию системы.
Ситуация осложнялась тем, что серверная часть исторически была написана на socket’ах с использованием протокола protobuf.
Для нативных платформ данная реализация совсем не типичная, что сделало проект еще более интересным с точки зрения реализации и дополнительно осложнило жизнь нашим разработчикам, а также впоследствии вынудило пользователей терминала намного чаще заряжать свои мобильные устройства, так как данная технология подразумевает частое обновление данных с сервера, а, следовательно, повышенный расход батареи.
Однако, после серии встреч и переговоров с заказчиком мы всё-таки пошли на встречу и согласились разработать данный проект на Xamarin.
У заказчика было четкое видение того, как должен выглядеть современный мобильный биржевой аналитический терминал. Это дало нам огромное преимущество по скорости разработки дизайна. Нам не составило труда достаточно быстро отрисовать шикарный дизайн и утвердить его у заказчика.
Утвержденный дизайн для для iPhone:
Утвержденный дизайндля для iPad:
Утвержденный дизайндля для Android:
Традиционно архитектура биржевых систем подразумевает множество модулей и компонентов, которые активно взаимодействуют между собой.
Так как любой биржевой программный комплекс работает с котировками по различным финансовым инструментам, то обычно существует поток, который формируется путём получения текущих курсов валют, сырья и прочих инструментов из различных источников котировок.
Далее этот поток подается в торгово-аналитические терминалы для анализа исторических данных, проведения технического анализа и осуществления сделок.
В данном проекте архитектура системы представляет собой паттерн разработки MVC, когда модели данных, верстка интерфейса и связующий компонент – контроллер делят логически зону ответственности. Подробнее про данный паттерн можно прочитать тут.
Также выбор кроссплатформенного решения подразумевает наличие общих участков кода, поэтому архитектура разрабатывалась исходя из этих принципов. Таким образом мы вынесли около 70% общего кода в рамках логики, а остальную часть около 30% - составляла верстка приложения под непосредственно iOS и Android и ресурсы проекта для каждой из платформ.
Как уже было сказано выше серверная часть была разработана на стороне заказчика с использованием стека технологий, основанного на языке C# и платформе .NET.
Специалисты заказчика подготовили описание API, при помощи которого наши разработчики подключили фронтенд-часть терминала к серверу.
Напомним, что фреймворк Xamarin состоит из нативных компонентов Xamarin.IOS (библиотека классов для C#, предоставляющая разработчику доступ к iOS SDK) и Xamarin.Android (библиотека классов для C#, предоставляющая разработчику доступ к Android SDK), а также Xamarin.Forms
В данном проекте мы сделали выбор в пользу Xamarin.iOS и Xamarin.Android, так как исходя из требований к отображению большого количества данных и частоте обновления этих данных - это оптимальное решение в плане производительности. Также была необходимость подобрать PDF-библиотеку для отображения внутренних выпусков новостей. Для Xamarin.Forms таких инструментов не было поэтому очередной плюс к выбору данной технологии получил XamarinNative.
В итоге мы уложились в заявленные сроки реализации данного проекта и осуществили релиз мобильного приложения.
Сейчас можно с полной уверенностью говорить о том, что продукт получился отличным, и пользуется устойчивым спросом у целевой аудитории.
Средняя оценка в GooglePlay– 4,8
Средняя оценка в AppStore – 4,6
Приложение в GooglePlayдоступно здесь>>
Приложение в AppStoreдоступно здесь>>
По итогам проекта клиент остался доволен нашей работой, и даже прислал нам благодарственное письмо, которое по настоящий момент висит у нас в перегоговорке на почётном месте. Данный жест заказчика послужил для нас лучшей наградой за наши труды, т.к. мы всегда измеряем свой успех по достигнутому результату и удовлетворённости заказчика.
Кейс подготовлен RESULTANT PROJECT AGENCY
Проведите конкурс среди участников CMS Magazine
Узнайте цены и сроки уже завтра. Это бесплатно и займет ≈5 минут.