Оглавление

    Flutter vs Kotlin Multiplatform: гайд для бизнеса

    Обложка

    В нашем сравнении Flutter vs Kotlin Multiplatform расскажем, в каких случаях и почему лучше выбрать один из этих фреймворков для разработки IT-продукта.

    Задача любого бизнеса — создавать все условия, чтобы быть ближе и доступнее клиенту. Если бизнес хочет презентовать себя на нескольких платформах сразу, чтобы еще теснее взаимодействовать с пользователями, стоит выбрать кроссплатформенную разработку и обратить внимание на лидеров в этой сфере — Flutter vs Kotlin Multiplatform. Каждый из этих фреймворков — совокупность технологий, которые позволяют написать код один раз и адаптировать его для нескольких платформ. Это означает, что вам не понадобится делать разработку для каждого приложения и вы сэкономите до 60% бюджета. 

    В этой статье мы сравнили две кроссплатформенных технологии — Flutter и Kotlin Multiplatform (KM) — и показали, какая из них лучше подойдет для определенных сфер бизнеса и в чем плюсы и минусы каждой.

    [Посмотрите, как работают кроссплатформенные технологии на примере приложений Росбанка
    Ознакомиться с кейсом

    Flutter vs Kotlin: как выбрать?

    Выбор между разными фреймворками зависит от разных факторов, значимых для бизнеса — начиная с затрат на разработку и заканчивая скоростью работы приложения. При выборе стоит отталкиваться от следующих моментов:

    • скорость разработки — если сроки поджимают, то кроссплатформенные технологии помогут получить приложения на всех платформах быстрее, чем при разработке отдельных нативных приложений.
    • размер бюджета также играет роль — помните, что нужно не только разработать приложение, но и сопровождать его в дальнейшем для любых изменений и обновлений. Создание приложений с помощью кроссплатформ поможет сэкономить до 60% бюджета.
    • визуал и его качество зависят от возможностей конкретного фреймворка, поэтому стоит разобраться с тем, что предлагает каждая технология и из какого функционала состоит — обратите внимание на SDK (набор инструментов).
    За последние годы популярность двух платформ возросла, но пока в лидерах у разработчиков остается Flutter благодаря большей доступности, легкости освоения и результативности. Тем не менее у KM есть свои плюсы, которые разберем в статье.

    Источник

    Приведем пример: для healthcare компании, которой необходимо разработать поддерживающее здоровье клиентов приложение, важны интерактивные визуальные элементы, такие как виджеты для телефона, графики для сравнения разных периодов и интеграция с внешними девайсами. Чтобы поддерживать интерес и мотивацию клиентов, приложение должно иметь максимально удобный интерфейс, уникальный визуал и плавную анимацию. Поэтому лучший выбор в противостоянии Flutter vs Kotlin Miltiplatform будет Flutter: в отличие от KM он показывает более стабильную работу без сбоев на 6 платформах и при разработке позволяет собирать пользовательский интерфейс довольно быстро из готовых компонентов, а также кастомизировать их визуально и с точки зрения их поведения. 

    Ниже мы подробнее разобрали особенности Flutter vs Kotlin Multiplatform, а также собрали реальные примеры для наглядности. 

    Что такое Flutter? 

    Суть кроссплатформенных технологий, и в частности Flutter, в том, что разработчики пишут одну кодовую базу и используют её на всех целевых платформах. Благодаря этому не приходится нанимать несколько команд, чтобы написать отдельные приложения под разные платформы. 

    Flutter — это уже готовый набор инструментов, с которыми можно создавать приложения под разные системы — iOS, Android, Windows, macOS, Linux и Web. Более того, Flutter позволяет создавать инфосистемы, или встроенные системы, как, например, сделали Toyota в своем приложении.

    Из чего состоит Flutter

    SDK Flutter — это готовый набор инструментов для создания приложения, в котором уже есть все, что нужно. Это по сути конструктор, который содержит следующие компоненты:

    • Фреймворк, подстраивающийся под нужды бизнеса.
    • Широкий спектр виджетов для уникального дизайна приложения в iOS в соответствии с Material Design. 
    • Движок с поддержкой 2D и 3D для плавного интерфейса на мобильных устройствах с поддержкой текста.
    • Инструменты для тестирования и отладки ПО.
    • Программные интерфейсы приложения (API) для юнит-тестов и интеграционных тестов.
    • Плагины и API для взаимодействия с системой и сторонними наборами инструментов для разработки ПО.
    • Инструменты для создания, тестирования и компиляции приложений.
    • Система тестирования в консоли, с помощью которой можно прогонять тесты на Linux, Mac и Windows.

    Обновления для Flutter выходят приблизительно раз в три месяца. Google постоянно повышает стабильность и производительность фреймворка, а также добавляет новые фичи.

    Кто разработал и поддерживает

    Flutter создала и поддерживает команда Google с 2017 года, но также его поддержкой занимается развивающееся сообщество разработчиков. Это позволяет сервису развиваться и улучшаться. Например, мы в Surf также внесли вклад в его развитие благодаря разработке отдельной библиотеки элементов для упрощения работы на Flutter.

    Фреймворк написан на языке Dart, который не требует глубокого погружения в код — то есть более интуитивно понятен разработчикам. Flutter использует собственный движок для работы с виджетами — «строительными блоками» приложения — что дает лучшее качество и гибкость в его сборке.

    Примеры использования Flutter

    С момента релиза версии Flutter 1.0 в декабре 2018 года эту технологию использовали для разработки более 1 000 000 приложений. Всемирно известные компании используют Flutter в своих проектах. Среди них Alibaba Group, eBay, Google Pay, Nubank, Toyota и BMW. Например, eBay провел опрос о легкости разработки на Flutter и нативных приложений по времени.

    Опыт Surf

    Мы разработали на Flutter уже более десяти приложений. В их числе крупный видеостриминг The Hole, приложение сети аптек Ригла и корпоративное приложение для KFC, а также создали первое в Европе и второе в мире банковское приложение на Flutter для Росбанка. В 2021 году приложение «Росбанк Бизнес» было признано «Лучшим приложением для финансовой компании». 

    Подробнее о том, какие фичи реализовали наши Flutter-разработчики
    Ознакомиться с кейсом

    Основные преимущества Flutter

    1. Затраты и time-to-market сокращаются до 60%

    Выбрав для кроссплатформенной разработки Flutter, вы можете существенно уменьшить time-to-market, при этом сократив расходы на разработку 30%–60% по сравнению с нативными технологиями. В кейсе с Ригла мы сэкономили 40% бюджета компании и создали на одной кодовой базе 6 приложений для 3 брендов крупнейшей аптечной сети. Для каждого бренда сделали особый дизайн, чтобы отразить уникальность, при этом функционал на всех приложениях остался одинаковым для удобства.

    2. Сопровождать продукт легко

    Это одно из основных преимуществ кроссплатформенной разработки с помощью Flutter. Намного быстрее и проще выпустить обновление или добавить новую фичу, когда у вас вместо нескольких кодовых баз одна — вы просто вносите изменения сразу на всех устройствах.

    Конечно, нативные приложения можно писать параллельно, но для каждого такого приложения вам понадобятся 2 команды разработчиков, которые должны будут также поддерживать работу приложений после их создания. В итоге вы потратите больше времени и средств, чем на Flutter. 

    3. Пользовательский интерфейс почти не отличается от нативного

    Разработка кроссплатформенных приложений с Flutter даёт множество преимуществ, например, создать качественный пользовательский интерфейс и практически любые анимации или взаимодействия, при этом обеспечивая их единообразие на разных платформах. Также с помощью Flutter разработчики могут внедрить в приложение жестовую навигацию.

    Благодаря отдельному компоненту Material Design на Flutter есть много качественных виджетов для форматирования под iOS. С помощью этой технологии можно даже создавать собственные виджеты или адаптировать существующие. 

    Сейчас Flutter предлагает разнообразие визуала и отрисовки приложений под конкретный запрос. Если изначально Flutter работал с 2D-графикой, то сейчас активно переходит на Impeller — движок, позволяющий создавать 3D-анимацию и плавность переходов без торможения. Мы в Surf проверили это при разработке плавного интерфейса для видеостриминга The Hole

    3. Тратится меньше ресурсов на разработку 

    Специальная фича Hot Reload позволяет разработчикам вносить изменения в код и мгновенно видеть их в реальном времени. Она позволяет экономить время на разработке и компиляции — нативные технологии такой функциональности не предоставляют.  

    4. Приложение работает стабильно

    Flutter позволяет создавать высокопроизводительные и стабильные приложения. Технология обеспечивает производительность 60 кадров в секунду (FPS), а значит, она отлично подходит для разработки видеостриминговых и обучающих платформ и других приложений и требующих быстрого отклика. Для сравнения — если этот показатель ниже 30 кадров в секунду, приложение будет сильно тормозить.

    В некоторых случаях можно увеличить производительность в 2 раза (до 120 FPS), что эквивалентно показателям нативного ПО. Приложения на Flutter работают так быстро потому, что фреймворк написан на языке программирования Dart, который встраивается в нативный машинный код различных операционных систем и не требует разработки «моста» JavaScript для интеграции — это экономит время и ресурсы.

    Немаловажно и то, что для Flutter довольно часто выходят обновления, которые повышают его стабильность и улучшают производительность. Так, в мае 2020 года создатели Flutter добавили поддержку Metal API, то есть прямого взаимодействия с процессором Apple без дополнительных устройств. Благодаря этому удалось улучшить производительность на iOS устройствах почти на 50%. 

    Недостатки Flutter

    1. Разработка на непривычном языке

    Flutter написан на языке Dart, что поначалу может отпугнуть компании. На самом деле, этот язык требует меньше подготовки и более интуитивно понятен, так как относится к языкам C, знакомым даже тем, у кого нет опыта разработки. Конечно, у него есть свои особенности, что может занять некоторое время на освоение, но оно минимально.

    2. Разработка нативных фич требует времени

    Если разработчикам потребуется создать мобильное приложение со сложным функционалом, свойственным нативным приложениям, они скорее всего потратят на это больше времени, чем при нативной разработке. Flutter развивается, но до сих пор возникают сложности с использованием AR-technologies. 

    3. Найти команду разработчиков на Flutter сложнее, чем для нативных приложений

    Хотя Flutter работает всего 6 лет, он предлагает много возможностей и постоянно развивается, но важно найти разработчиков, которые умеют эффективно работать на нем. Пока что опытных команд не так много, и проще найти разработчиков нативных приложений. Мы в Surf начали использовать Flutter для разработки одними из первых в России и активно вкладываемся в его развитие, а также растим лучших Flutter-разработчиков, чтобы вам не пришлось их искать. 

    Разработайте ваше приложение на Flutter с нами
    Оставить заявку

    Что такое Kotlin Multiplatform?

    Kotlin Multiplatform — это набор для разработки приложений, как и Flutter, с упором на нативные функции приложений. Он вырос из языка программирования Kotlin, разработанного компанией JetBrains. Kotlin работает на привычным многим Java и JavaScript. 

    Развитие технологии

    Первый релиз языка вышел в 2016 году. Спустя три года Google анонсировали, что Kotlin стал приоритетным языком разработки Android-приложений, которым он остается и сейчас. По данным на 2023 год, более 50% Android-разработчиков используют именно его и только 30% используют Java. 

    Из чего состоит?

    У фреймворка есть свой набор технологий, которые помогают разработать приложения на разных платформах эффективнее:

    • Compose Multiplatform (CM) — реализация визуала и интерфейса.
    • Jetpack Compose (JC) — основа Compose Multiplatform, которая используется для верстки интерфейса в нативном Android.
    • Kotlin Multiplatform (KM) — непосредственно кроссплатформенный фреймворк, который позволяет писать один код и адаптировать его под разные платформы.
    • Kotlin Multiplatform Mobile (KMM) — разработка только для мобильных платформ, т.е. iOS/Android.

    В чем главные особенности KM?

    Совсем недавно JetBrains добавили поддержку кроссплатформенной разработки (Kotlin Multiplatform Mobile), чтобы приложения создавались быстрее. Благодаря ей разработчики могут использовать один и тот же специальный код при создании мобильных приложений под Android и iOS, что позволяет ускорить разработку. Однако, в отличие от Flutter, с помощью Kotlin Multiplatform программисты не могут создавать пользовательский интерфейс — для этого им нужно использовать отдельное дополнение Compose Multiplatform. При необходимости разработчики могут писать и код для отдельной платформы, например, чтобы создать нативный UI или интегрировать API в нативное решение.

    Принцип работы Kotlin Multiplatform

    Источник

    Примеры использования KM

    Kotlin Multiplatform — сравнительно новая кроссплатформенная технология, тем не менее многие известные компании, например, Yandex, Philips, Netflix, Quizlet и Autodesk, уже используют эту технологию в своих продуктах.

    Основные преимущества Kotlin Multiplatform

    1. Разработка дешевле на 40% без потери преимуществ нативных технологий

    Фреймворк позволяет переиспользовать ключевую бизнес-логику на множестве платформ, включая Android, iOS, JVM, macOS, tvOS, watchOS, Windows, JavaScript и WebAssembly. 

    При этом основное отличие Kotlin Multiplatform от Flutter здесь — это то, что с помощью KM не получится разработать приложение один раз и на любой платформе. Чтобы сделать приложение под Android и iOS, всё равно понадобится писать два отдельных нативных приложения. 

    Однако уже готовый код для одной платформы можно встроить в код для другой, таким образом сократив срок разработки продукта и не теряя преимуществ нативного приложения. В итоге затраты на работу сокращаются до 30–40%.

    2. Привычный для разработчиков язык

    Многие компании и организации выбирают язык Kotlin, так как он основывается на привычных разработчикам Java и JavaScript. Google объявила Kotlin предпочтительным для Android, и поэтому его выбирают многие компании. Более того, на Kotlin нет необходимости внедрять в кодовую базу новый язык программирования. Android-приложение будет работать на iOS-устройствах без значительных изменений в коде.

    3. Высокая производительность

    Кроссплатформенная технология Kotlin Multiplatform обеспечивает высокую производительность приложений на различных операционных системах. 

    Flutter также обеспечивает стабильную работу приложения, поэтому обе технологии подходят, например, для разработки маркетплейсов, сложных обучающих приложений и других подобных решений.

    Недостатки Kotlin Multiplatform

    1. Сложнее исправить ошибки, чем на Flutter

    Отладка, или устранение ошибок, в нативном коде усложняется, когда Kotlin Multiplatform используют для кроссплатформенной разработки. Поддержка в виде дополнительных программ для работы над разработкой приложения может быть ограничена, однако над этой проблемой постоянно работают JetBrains, создатели технологии.

    2. Обучающие ресурсы ограничены 

    Kotlin Multiplatform — сравнительно новая технология, поэтому обучающие ресурсы у неё ограничены. Если для Flutter написана обширная документация, с помощью которой разработчики могут с лёгкостью приступить к работе с фреймворком и разобраться с техническими сложностями, то здесь нужно будет время для освоения разработчиками — например, нужно изучить особенности работы с языком Kotlin и освоить другие элементы SDK.

    Kotlin Multiplatform vs Flutter: подведем итог

    И Kotlin Multiplatform, и Flutter позволяют разработчикам создавать приложения, отвечающие высоким стандартам качества, и при этом экономить время и затраты по сравнению с нативной разработкой. Как результат, вы можете запускать продукт на всех операционных системах и устройствах, не тратя ресурсы на создание отдельных приложений.

    Однако у Kotlin Multiplatform и Flutter разное назначение — KM позволяет писать нативные решения и при этом упрощает их разработку. Это способствует повышению производительности и улучшает пользовательский опыт. При этом Kotlin Multiplatform позволяет разработчикам переиспользовать код для нескольких операционных систем, а не написать одну кодовую базу для всех целевых платформ. Кроме того, там нет набора инструментов для разработки пользовательского интерфейса, или UI. В результате на разработку уйдёт на 20–30% больше времени и расходов по сравнению с Flutter.

    Тем временем у Flutter есть полноценный набор инструментов разработки, благодаря чему это идеальный вариант для компаний, стремящихся выпустить готовое приложение в короткие сроки. Этот фреймворк позволяет компаниям сократить расходы на разработку на 30%–60% и получить удобные в использовании приложения на разных платформах. С помощью Flutter можно не только добиться быстрой стабильной работы приложения, но и реализовать красивый пользовательский интерфейс.

    Оставляйте заявку для разработки вашего приложения на Flutter
    Оставить заявку