Пользователям нужны удобные мобильные банковские приложения «не хуже, чем у Сбера или Тинькофф». А Тинькофф и Сбер уже переросли само понятие «банк» — по сути, это зрелые IT-компании с банковскими лицензиями. Как за ними угнаться остальным?
На мобильную разработку нужны огромные бюджеты, сильные разработчики и технологии, которые позволят масштабироваться под постоянно растущие и меняющиеся потребности банковского сектора. Но найти и удержать сильную команду мобильной разработки сложно. Рынок перегрет, разработчиков, особенно для iOS, катастрофически не хватает, а их недостаток может оказаться «бутылочным горлышком» для развития продукта.
Важный фактор — время, которое продуктовая команда тратит на реализацию и запуск в продакшен идей. Приложения ведущих банков обновляются и обрастают новыми возможностями очень быстро. Например, Альфабанк обновляет iOS приложение 3 раза в месяц, Сбер — дважды в месяц. Это очень часто.
Чтобы выдержать такой высокий темп, банкам нужны не только отлаженные процессы в продуктовых командах, но и технологии, которые могут ускорить разработку. Для мобильной фронтенд-разработки выходом может стать использование кроссплатформенных фреймворков.
Недавно мы в Surf разработали первое в России банковское приложение на кроссплатформе Flutter для Росбанка и убедились, что эта технология подходит для бизнеса любого масштаба.
В 2020 году мы написали статью, в которой рассказали, почему Flutter хорош для разработки мобильных приложений для бизнеса. Сегодня разберем, почему этот фреймворк отлично подходит для мобильных приложений банков и финтех-стартапов. Тем более что технология сделала шаг вперед: в марте 2021 года вышла вторая версия Flutter, в которой Google решил многие проблемы роста и добавил новые возможности.
Что в этой статье
Что такое Flutter
Кроссплатформа — это набор инструментов, с помощью которых можно разработать приложение сразу для нескольких платформ (в случае мобильного приложения — для iOS и Android). Кроссплатформы бывают разные — React Native, Ionic, Xamarin, PhoneGap. У каждой свои особенности: в статье на сайте мы подробно сравнили Flutter другим популярным фреймворком — React Native.
Обычно кроссплатформу используют для того, чтобы сэкономить на этапе разработки и при этом обеспечить качественный пользовательский опыт. И большинство фреймворков действительно справляются с задачей экономии.
А вот с точки зрения пользовательского опыта могут быть проблемы. Недостаточно плавные анимации, подвисание, не всегда корректная работа с жестами, непривычные элементы интерфейса — все это усложняет работу с приложением для пользователя. Именно поэтому многие крупные компании с недоверием относятся к кроссплатформенным решениям и предпочитают разрабатывать традиционные нативные приложения.
Google учел все плюсы и минусы разных кроссплатформенных решений и в 2018 году предложил свой фреймворк — Flutter. На нём можно разработать единую кодовую базу под несколько платформ: Android, iOS, веб и в экспериментальной фазе десктоп. Больше узнать про Flutter можно в статье на нашем сайте.
Поскольку Flutter — не первая подобная платформа, ее создатели постарались максимально уйти от недостатков предшественников, начиная с реализации нормального FPS и заканчивая работой «платформенного» дизайна элементов интерфейса «из коробки». В качестве альтернативы для своих клиентов мы рассматривали React Native, но нас не устроила производительность, особенности поддержки, а также то, что крупные игроки сами переходят в натив или на Flutter.
Почему Flutter подходит банку
Традиционный подход для банка — это разработка двух нативных приложений, на Android и на iOS. Для этого нужны разные языки программирования — Swift для iOS, Kotlin для Android, — разные подходы к разработке и две команды разработчиков.
У нативных приложений практически нет недостатков. Кроме одного — большие затраты на разработку, поддержку и развитие.
Поэтому для некоторых банков проще и выгодней использовать кроссплатформенные технологии, например, Flutter. У него есть несколько серьезных преимуществ перед нативным подходом:
Разработка быстрей и дешевле. При разработке на Flutter используется единая бизнес-логика и пишется единый код для разных платформ. Это экономит время разработчиков. Многие фичи можно взять «из коробки» и не тратить время на их создание, а оптимизированная работа с анимациями позволяет реализовать дизайн приложения быстрей, чем при нативной разработке. Все это сокращает время вывода продукта на рынок (time-to-market).
Приложение похоже на нативное. Язык Dart, на котором пишут Flutter-приложение, компилируется в нативный код для разных платформ. Это обеспечивает приложению высокую производительность и возможность поддержки на большом количестве устройств, от мобильных телефонов до веба и десктопа. Кроме того, анимации и элементы пользовательского интерфейса на Flutter ведут себя также, как в нативном приложении.
Высокая производительность. Одним из косвенных показателей производительности приложения является FPS – количество кадров, отображаемых в секунду. Оптимальный показатель – 60 кадров в секунду. При таком FPS человеческий мозг воспринимает анимацию и переходы между экранами как идеально плавные, без прерываний и зависаний. Во Flutter можно добиться производительности в 60 FPS, а в некоторых случаях даже 120 кадров в секунду, что равняется показателям нативных приложений.
Можно реализовать любой дизайн. У фреймворка есть свой графический движок и пакеты с кастомизируемыми виджетами: Material для Android и Cupertino для iOS. Фреймворк сам рисует каждый пиксель, а виджеты контролируют анимацию. За счет этого пользователь фактически не видит разницы между приложением на Flutter и нативным.
С Flutter можно использовать фичи поддерживаемых платформ. Камера, GPS, сенсоры, файловая система устройства — вы можете обращаться ко всем открытым интерфейсам платформы прямо из Dart-кода Flutter-приложения.
Если отбросить игры, то очень удобно (создавать приложения на Flutter). Большая часть разработки приложения заключается в создании внешнего вида приложения, его интерфейса. И на данный момент, возможно, субъективно, но работа с UI у Flutter самая удобная среди всей мобильной разработки (включая «натив»). iOS пытается приблизиться к этому за счет Swift UI, Android тоже идет к этому, но и там не реализовано то, что есть у Flutter. А в отличие от React Native, Flutter самостоятельно отрисовывает все элементы, поэтому экран полностью под контролем разработчика.
Flutter безопасен
Банки внимательно относятся к вопросам безопасности. Поэтому к новым технологиям сперва присматриваются и только потом с осторожностью внедряют.
Уровень безопасности Flutter выше, чем у нативных приложений и других кроссплатформенных фреймворков, таких как React Native. Рассмотрим этот аспект с точки зрения разработки, и с точки зрения пользователя.
1. Код во Flutter пишется на языке Dart и компилируется в нативный, не читаемый человеком. Это усложняет обратную обработку, которая позволяет злоумышленникам понять принципы работы приложения, и повышает его безопасность.
Для нативного приложения реверс-инжениринг может восстановить исходный код полностью или частично его структуру и наименование классов, даже в тех случаях, когда применяли метод обфускации (запутывания) кода. Во Flutter при компиляции кода формируется единая нативная библиотека со сложной структурой и меняющимися форматами данных.
Кроме того, разработчики Dart выпустили библиотечные реализации всех популярных алгоритмов шифрования.
2. Чтобы обеспечить безопасность доступа для пользователя, во Flutter-приложении можно использовать инструмент, который сейчас есть во всех смартфонах — биометрическую аутентификацию при помощи Face ID или Touch ID. В их применении в кроссплатформенном приложении нет отличий от нативных приложений.
Таким образом, безопасность Flutter-приложений не ниже, чем у нативных. А с точки зрения защиты кода от обратной обработки — даже выше.
Flutter экономит
Мобильная разработка — дорогое удовольствие, а разработка приложения для банка дороже вдвойне. Зарплаты финтех-разработчиков выше средних по рынку. Да и разовой инвестицией в проект здесь не отделаешься: приложение нужно постоянно дорабатывать, прикручивать новую функциональность, адаптировать под требования регулятора, создавать новые сервисы для привлечения пользователей.
Зарплаты мобильных разработчиков выше всех остальных категорий разработки
Но без мобильной разработки банку не обойтись. В пандемию, по данным исследовательского агентства App Annie, время, проведенное пользователями в финансовых приложениях, увеличилось на 85%. И хотя жесткие ограничения позади, пользователи не спешат менять приобретенные привычки.
Осознавая, насколько это важно для выстраивания долгосрочных отношений с клиентами, банки делают ставки на мобильные приложения. Flutter помогает существенно уменьшить бюджеты на разработку и упростить:
Процесс разработки в целом. При нативной разработке создаются два отдельных приложения. При кроссплатформенной — одно, с единой кодовой базой для двух платформ, из которой код транслируется на нужную операционную систему через специальную прослойку. Производительность работы повышает и функция Hot Reload, с которой можно оперативно просмотреть изменения прямо в приложении. Экономия при разработке на Flutter может составить 30-50%.
Процесс разработки интерфейса. Интерфейс во Flutter-приложениях реализуется при помощи виджетов, а значит, быстрее создается, легко масштабируется и настраивается. Во Flutter-приложении гибкий подход к дизайну: можно реализовать унифицированный вариант и для iOS, и для Android или кастомизировать его для каждой платформы.
Процесс тестирования. Затраченное время сокращается примерно в 1,3–1,5 раза, так нужно тестировать одно приложение, а не два нативных.
Поддержку и развитие. Единую кодовую базу проще обновлять и устранять баги в случае технической поддержки. Развивать приложение с общим кодом проще, чем два нативных приложения.
Формирование команды. Для нативных приложений нужны команды разработки, пишущие на двух разных языках — Swift (для iOS) и Kotlin (для Android). Зарплаты для разработчиков на этих ЯП находятся в десятке самых высоких. Для разработки на Flutter у вас будет одна команда, а значит, расходы сократятся.
Зарплаты разработчиков по языкам программирования
Для разработки нативных приложений необходимо держать две независимые команды. В случае с Flutter нельзя сказать, что платформа сокращает половину расходов, но экономия все равно очень существенная. Много времени также экономится на дизайне и тестировании приложения.
Flutter прост в освоении
Flutter основан на языке программирования Dart. Он менее известен, чем, например, JavaScript, который используется в одном из самых популярных кроссплатформенных фреймворков React Native. Но при этом разработчики признают, что Dart очень прост в освоении и удобен для работы — мы рассказали об этом в отдельной статье. Для поиска команды у вас есть несколько путей.
- Переучить имеющихся разработчиков своими силами. У Dart есть качественная подробная документация и целый тур по языку. Как показывает практика, Java/C#/JavaScript-разработчикам достаточно просто изучить Dart. Мы много обучаем стажеров и убедились на своем опыте, что разработчики, владеющие другим ЯП, начинают писать на Dart через пару недель, а новичкам требуется около месяца.
- Отправить разработчиков на курсы. Популярность фреймворка растет, а значит, в ближайшее время вырастет и число предложений по обучению программированию на Dart. Мы в Surf запустили свой курс по Flutter с акцентом на практику. Результаты наших учеников говорят, что Flutter проще освоить, если есть опыт фронтенд-разработки на любом языке.
- Нанять разработчиков со стороны. Предложение на рынке труда пока невелико. Скорей всего, это временно, так как востребованность Flutter растет, а значит, в скором времени появятся и новые кадры, освоившие язык Dart. Сейчас на hh.ru около 400 резюме Flutter-разработчиков.
- Нанять аутсорсинговую команду. Работа с аутсорсинговой компанией, специализирующейся на мобильной разработке, поможет банку решить сразу несколько задач. Ведь для реализации такого проекта нужны не только Flutter-разработчики, но и аналитики, дизайнеры, QA.
В команде Surf 150 человек, поэтому мы можем подключить нужного специалиста на любом этапе — аналитики, разработки, дизайна, тестирования. А еще у нас самая большая в России команда опытных Flutter-разработчиков. Ребята не только реализуют коммерческие проект для клиентов, но и постоянно прокачивают навыки: участвуют в тематических конференциях, а тимлид Surf Евгений Сатуров ведет популярный Flutter Dev Podcast.
Flutter продолжает развиваться
Google известен специфичным подходом к развитию своих новых технологий: поддержку и дальнейшее развитие получают далеко не все. Поэтому возникает закономерный вопрос: что будет, если Google решит отказаться от развития Flutter?
Здесь важны два фактора.
1. Flutter — опенсорсный проект, его исходный код хранится в открытом доступе. А значит, вы всегда можете воспользоваться кодовой базой для реализации новых функций.
2. Теперь обратимся к цифрам. Согласно опросу Statista, во всем мире популярность Flutter растет. За 2019—2020 годы, например, она выросла на 9%. А раз технология востребована и широко применяется, ей не дадут кануть в лету.
По данным аналитической компании SlashData, Flutter уже стал самым популярным кроссплатформенным фреймворком. Число использующих его разработчиков выросло в 1 квартале 2021 на 47% относительно этого же показателя в 1 квартале 2020 года.
Flutter уже используется в финтех-проектах
Примеры приложений для банков и финтеха на Flutter
- Первым в мире банковским приложением на Flutter стало приложение Nubank, бразильского цифрового банка и одной из крупнейших финтех-компаний в Латинской Америке. У банка более 20 миллионов клиентов по всему миру.
- Для Росбанка Surf разработал мобильное приложение для бизнеса. «Росбанк Бизнес» — первое банковское приложение в России, написанное на кроссплатформенной технологии Flutter.
Интерфейс приложения «Росбанк Бизнес»
-
Сейчас Surf разрабатывает B2C приложение для СМП банка.
- Birch Finance — приложение для контроля личных финансов. Оно анализирует финансовое поведение пользователя и для каждой покупки рекомендует оптимальную карту. Так пользователь получает больше кешбэка, баллов или бонусов.
- Cryptograph — финансовое приложение, которое анализирует и предоставляет данные о более чем 1600 криптовалютах.
Примеры приложений на Flutter для других отраслей
-
Google Ads — приложение для управления рекламными кампаниями, оптимизации и анализа их показателей.
-
Stadia — игровой сервис от Google.
-
eBay Motors — приложение для покупки и продажи автомобилей.
-
Приложения для облачного сервиса персонального ассистента Google Assistant.
-
Baidu Tieba — крупнейшая китайская коммуникационная платформа.
-
KFC DSR — корпоративное приложение для KFC, которое оптимизирует документооборот в компании, разработано Surf.
-
The Hole — платформа видеостриминга для Medium Quality — крупнейшего паблишера российского YouTube; разработана Surf.
Больше примеров можно найти на сайте Flutter.
Итог: Flutter подходит для банковских мобильных приложений
Мобильное приложение для банка на Flutter — успешный эксперимент для отрасли. Это доказывают проекты Nubank, Росбанка и СМП банка.
Банки-лидеры из первой десятки задают очень высокую технологическую планку и вливают в мобильную разработку неограниченные бюджеты. Flutter поможет остальным банкам не отстать в этой гонке: фреймворк увеличивает скорость разработки и уменьшает расходы на создание, поддержку и развитие приложений. При этом для пользователя нет большой разницы между нативным приложением и приложением на Flutter, так как UI-элементы, анимации, переходы между экранами работают аналогично.
Пока Flutter в силу своей относительной новизны только начинает завоевывать доверие банковского сектора. Но мы уверены, в скором будущем увидим немало мобильных приложений банков на Flutter.
* Комментарии представителей Росбанка взяты из интервью для N + 1.