Кроссплатформенная разработка находится на подъеме, и вы можете задаться вопросом, почему. Как можно предположить из названия, она позволяет запускать приложения на нескольких платформах — будь то iOS или Android — и помогает бизнесу привлечь больше клиентов, а значит, заработать больше денег. Неудивительно, что акцент постепенно, но неуклонно смещается в сторону кроссплатформенной разработки, и новые технологии появляются все чаще и чаще.
Просуществовав некоторое время, этот тип разработки выявил двух лидеров: React Native и Flutter. Почему же мы хотим рассказать вам о Flutter в сравнении с Kotlin, а не о Flutter и React Native? Что такое Kotlin, и может ли он на самом деле представлять угрозу популярности Flutter? Что такое Kotlin Multiplatform (Мультиплатформа), и в чем преимущества обеих технологий? Давайте узнаем.
Почему разработка кросс-платформенных приложений так важна?
Состояние кроссплатформенной разработки приложений
Число пользователей смартфонов растет на протяжении последних лет и в 2021 году охватит половину населения Земли — 3,8 миллиарда человек. Где есть спрос, там всегда будет и предложение для его удовлетворения, поэтому доходы от мобильных приложений в последние годы стремительно растут. Они выросли с $97,7 млрд. в 2014 году до впечатляющих $365 млрд. в 2018 году. Statista прогнозирует постоянный стабильный рост с $935,2 млрд. в 2023 году.
Цифры показывают значимость разработки мобильных продуктов. Но почему стоит задуматься о создании кросс-платформенных приложений? Согласно данным StatCounter Global Stats, по состоянию на январь 2021 года Android доминирует на рынке с долей 71,93%, в то время как iOS занимает второе место с долей 27,47%. Создавая кроссплатформенные приложения, компании занимают два рынка одновременно, тем самым расширяя свою целевую аудиторию и охватывая примерно 99,4% пользователей смартфонов. Компании также экономят деньги, поскольку выполняют только половину работы по разработке и последующему сопровождению.
Неудивительно, что специалисты прогнозируют дальнейший рост кроссплатформенной разработки и отмечают ее многочисленные преимущества. Разработчики и владельцы ИТ-бизнеса называют несколько технологий, которые станут необходимыми для будущего рынка разработки, включая Flutter в сравнении с Kotlin и React Native.
Но когда следует рассматривать возможность разработки на разных платформах?
Прежде всего, кроссплатформенная разработка поможет вам охватить большую часть потенциальных пользователей. Если по каким-то причинам вы решили сосредоточиться именно на пользователях iOS или Android, то создавайте соответствующие нативные приложения.
И, конечно, все зависит от вашего бюджета. Создание кросс-платформенных приложений значительно дешевле, чем нанимать две команды разработчиков и работать над двумя приложениями для двух операционных систем.
Но когда вам следует дважды подумать, прежде чем сделать выбор в пользу кроссплатформенного приложения?
Например, если ваш выбор зависит от типа и сложности приложения. Возможно, кроссплатформенный подход не сработает.
Кроме того, существует так называемый нативный подход. Когда вы создаете приложение специально для iOS или Android и используете выпущенные ими комплекты для разработки ПО, у вас есть шанс создать приложение лучшего качества. Нативные приложения также обычно работают немного быстрее и обеспечивают лучший пользовательский опыт. Все зависит от конкретной ситуации, но во многих случаях выбор кросс-платформенного подхода может оказаться правильным решением для вашего бизнеса.
Преимущества кроссплатформенной разработки приложений
Почему кроссплатформенная разработка становится все более актуальной? Каковы основные преимущества такого подхода?
Более широкий рынок
Раньше люди считали, что пользователи iOS охотнее тратят деньги на дополнительные функции, чем владельцы Android, и на этом основывали свои маркетинговые решения. Возможно, в этом убеждении была доля правды, но сейчас ситуация выглядит иначе. Очевидно, что выбор платформы в основном обусловлен вкусовыми предпочтениями и имеет меньше отношения к социальному статусу. Решить, какой рынок выбрать, еще сложнее, поэтому создание кросс-платформенных продуктов и ориентация на 99,4% пользователей мобильных устройств - это правильный путь.
Сокращение времени выхода на рынок
Хотя вам по-прежнему потребуется некоторое понимание особенностей iOS и Android, особенно пользовательского интерфейса, руководств и публикаций магазина, единая кодовая база значительно ускоряет процесс разработки.
Меньшая рабочая нагрузка
Несмотря на то, что рекомендуется нанимать разработчиков, ориентированных на конкретную платформу и разбирающихся в тонкостях правил и стандартов iOS и Android, большая часть вашей команды может состоять из кроссплатформенных кодеров. Сокращение числа работников позволит сэкономить значительную сумму денег и обеспечит более ровное и простое общение.
Более быстрая разработка
Вы не только сократите продолжительность разработки, сосредоточившись на создании одной части кода, но и выиграете от возможности его повторного использования. Кросс-платформенная разработка подразумевает применение многократно используемых фрагментов кода вместо написания нового кода с нуля. Это ускоряет сам процесс разработки, а также сокращает этап тестирования.
Облачная интеграция
Благодаря необходимости использования единого исходного кода, кроссплатформенные приложения легче интегрируются с облаком. Облачные технологии, безусловно, являются будущим разработки программного обеспечения, поскольку они повышают его доступность и тем самым значительно улучшают пользовательский опыт.
Лучшие кросс-платформенные фреймворки
Из-за обилия фреймворков для кросс-платформенной разработки вам потребуется слишком много времени, чтобы прочитать обо всех из них, поэтому давайте сосредоточимся на лидерах рынка: React Native, Xamarin и Flutter. Кроме того, в этой статье будут затронуты такие темы, как Kotlin, а также сравнение Flutter и Kotlin. Но перед этим давайте углубимся в описание этих фреймворков. Вот сравнительная таблица.
|
React Native |
Xamarin |
Flutter |
Производительность |
Здорово |
Здорово |
Отлично |
Популярность |
42% (стабильно) |
14% (12%↓) |
39% (9% ↑) |
Языки |
JavaScript |
C# and F# |
Dart |
Возможность повторного использования кода |
90% |
60-95% |
80% |
Сообщество |
Большое |
Огромное |
Развивающееся |
Уникальная особенность |
Нативные UI компоненты |
Производительность, подобная нативной |
Готовые виджеты |
Среди кроссплатформенных разработчиков, согласно данным Statista, в 2020 году по сравнению с 2019 годом.
React Native
Запущенный в 2015 году, React Native - это фреймворк для мобильных приложений с открытым исходным кодом, разработанный компанией Facebook. Чем же он так хорош для кроссплатформенной разработки? Используя нативные компоненты API, React Native обеспечивает ощущение "нативного" приложения, отличную производительность и стабильность. Этот фреймворк, использующий JavaScript в качестве языка разработки приложений, имеет ряд преимуществ:
1. Отслеживание в реальном времени
Так называемая функция Hot Reload позволяет разработчикам видеть изменения в приложении сразу после написания кода. Обновления в реальном времени позволяют автоматически обновлять приложение и его интерфейс.
2. Сторонние плагины
Многие разработчики отмечают эту особенность React Native как превосходную, поскольку она позволяет использовать сторонние плагины. В отличие от большинства языков, которые не позволяют использовать плагины, React Native обеспечивает более высокий уровень гибкости и настраиваемости.
3. Сокращение времени выхода на рынок
React Native выявляет ошибки на ходу, сокращает время отладки, предоставляет готовые компоненты и позволяет повторно использовать до 90% кода, что способствует сокращению времени разработки и запуска.
4. Модульная архитектура
Модульное программирование позволяет разделять различные функциональные возможности на блоки, или модули, при этом каждый блок содержит все необходимые данные для выполнения определенной функции приложения. Более того, React Native обеспечивает гибкий и оптимизированный процесс кодирования благодаря своей декларативной функции программирования.
С другой стороны, если вы пишете приложение для Android с использованием React Native, вам придется нанять разработчика нативных приложений, по крайней мере, на неполный рабочий день. Хотя сообщество React растет и предлагает больше библиотек с открытым исходным кодом для добавления нативных функций, интеграция сложных функций по-прежнему требует участия программистов нативных приложений.
Xamarin Forms
Первоначально основанный на проекте Mono и приобретенный Microsoft в 2016 году, Xamarin Forms стал одним из самых известных фреймворков с открытым исходным кодом для разработки приложений. Он позволяет создавать многократно используемый код и применять его на разных платформах, обеспечивая высокую производительность и удобство работы. Xamarin Forms обладает следующими преимуществами:
1. Нативный опыт
Предоставляя доступ к нативным наборам инструментов, Xamarin Forms позволяет разработчикам создавать нативные приложения как для iOS, так и для Android.
2. Единый язык
Xamarin Forms использует один язык C# и создает все приложения в одной среде - Visual Studio, что сокращает время обучения.
3. Экономическая эффективность
Поскольку вы можете писать все на одном языке и оставаться в рамках одного фреймворка .NET, вы сэкономите деньги на создании команды разработчиков и сократите время выхода на рынок. Xamarin также позволяет повторно использовать код на 60%-95%, что означает, что вы сможете применить код в следующем проекте, не начиная с нуля.
4. Тестирование
Xamarin Forms предлагает отличные решения для тестирования производительности приложений, такие как Xamarin Test Cloud или Xamarin Test Recorder. Эти встроенные инструменты позволяют протестировать приложение на реальном устройстве и выявить возможные проблемы до выпуска.
Основным недостатком этого фреймворка является его неспособность предложить сложную графику и легкие приложения. Кроме того, Xamarin Forms теряет свою поддержку и сообщество, что делает его плохим выбором для будущей разработки приложений.
А что насчет Flutter?
Flutter — это фреймворк для приложений от Google, который предоставляет набор средств разработки пользовательского интерфейса с открытым исходным кодом для создания приложений на различных платформах. Популярность Flutter все больше растет в последние годы и, вероятно, будет увеличиваться в ближайшие годы. Он предлагает обширный набор инструментов вместе с Flutter API, фреймворком и виджетами для создания привлекательных и быстрых приложений. Хотите узнать больше о Flutter? Читайте дальше!
Flutter
В следующем разделе статьи мы расскажем о том, почему Flutter так любим сообществом кроссплатформенных разработчиков и какие популярные приложения были созданы с использованием фреймворка Flutter. Итак, что же такое Flutter? Какой язык использует Flutter для создания приложения, и что такое язык программирования Dart? Давайте узнаем.
Что такое Flutter?
Flutter — это инструментарий пользовательского интерфейса от Google на основе платформы Dart, который позволяет разрабатывать нативные мобильные приложения с единой кодовой базой. Он предоставляет разработчикам возможность создавать два разных приложения для IOS и Android, используя один язык программирования. Кроме того, Flutter может использоваться при создании приложений для macOS и в настоящее время проходит бета-тестирование для веб-приложений. Чтобы сделать приложение с помощью Flutter, используется язык программирования Dart от Google.
Dart — это официальный язык программирования Flutter, который обеспечивает асинхронное программирование с использованием класса Flutter Future и гарантирует повышенную производительность и быстрый отклик приложений. А обширный инструментарий делает его отличным выбором между Flutter и Android Studio. Давайте более подробно рассмотрим этот фреймворк в нашем кратком обзоре Flutter.
Плюсы использования Flutter
Flutter предлагает целый список преимуществ, которые выделяют его на фоне конкурентов. От простого в освоении языка Flutter под названием Dart до функции Hot Reload — вам определенно понравится работать с этим фреймворком. Давайте обсудим основные преимущества более подробно.
1. Простота в использовании
Комбинация Flutter-Dart проста в использовании и быстро осваивается. Если ваши разработчики когда-либо кодировали на Swift, React Native или Java, они почувствуют разницу с современным фреймворком Flutter. Вы можете создавать полнофункциональные приложения, используя значительно меньше кода. Фреймворк Flutter также обеспечивает быструю и простую установку, которая занимает всего 30 минут, после чего можно приступать к созданию своего первого приложения Flutter. Мы выделили четыре основных преимущества, которые отличают его от других инструментов и делают его особенным в приведенном ниже сравнении Flutter и Kotlin.
2. Бесплатный и с открытым исходным кодом
Поскольку Flutter и Dart оба с открытым исходным кодом, то у вас будет бесплатный доступ к оригинальному коду и всей необходимой документации. Документация Flutter удобна и проста в навигации, что позволяет быстро и легко найти ответы на все ваши вопросы.
3. Просмотр выходных данных в режиме реального времени
Flutter дает возможность редактировать код и наблюдать за происходящим в реальном времени с помощью функции под названием Hot Reload. Hot Reload позволяет вносить изменения в бэкэнд и мгновенно наблюдать за переменами фронтэнда, уменьшая необходимость часто перезагружать все приложение. Данная функциональная способность позволяет командам экономить ценное время на разработку и компиляцию. Такая функция не предусмотрена в нативной версии, что делает кроссплатформенную реализацию еще более выгодной.
4. Растущая популярность
Flutter еще не так широко распространен, но его известность быстро растет. Dart стремительно становится одним из самых популярных языков программирования, а Flutter занял первое место по результатам опроса на GitHub среди других технологий кроссплатформенной разработки. Хотя Flutter еще не так распространен в США, как в других странах, он стремительно набирает рейтинг у программистов.
5. Отличная нативная поддержка
Хотя нативная поддержка Flutter не идеальна, разработчики влюблены в эту технологию. Один из них утверждает: "Flutter заботится о таких вещах, как скорость прокрутки, поэтому он максимально приближен к нативному приложению Android/iOS". В настоящее время производительность приложения стала одной из самых важных составляющих хорошего пользовательского опыта. И производительность приложений Flutter находится на втором месте после нативных, но с более сложной анимацией пользовательского интерфейса. Это связано с тем, что фреймворк Flutter позволяет производить сборку непосредственно в машинном коде, что исключает возможность появления ошибок. Таким образом, вы можете быстро и легко создавать приложения Flutter для iOS и Android, используя одну технологию.
Минусы использования Flutter
Нет ничего идеального, и Flutter также имеет свои ограничения. Мы выделили два наиболее важных недостатка, с которыми вы можете столкнуться при работе с этим фреймворком.
1. Не так широко используется
Хотя разработчикам нравится современный фреймворк Flutter, существует не так много образовательных ресурсов и курсов для начинающих кодеров, поскольку Dart менее популярен, чем Kotlin, Java, JavaScript, C# и C. На данный момент на Udemy существует около 400 курсов по Flutter, в то время как по Kotlin - не менее 945. Это может привести к замедлению темпов найма и обучения. Однако быстро растущая популярность Flutter может свести на нет эту проблему в кратчайшие сроки.
2. Большие размеры приложений
Приложения, созданные с помощью Flutter, достаточно велики, и это проблема для разработчиков, которые изо всех сил пытаются создать программы, не занимающие слишком много места на ограниченных устройствах IOS и Android. Таким образом возникает обратная сторона использования Flutter, которая заключается в том, что пользователи явно не хотят удалять свои любимые песни и видео, ради того, чтобы скачать приложение. Надеемся, что команда, работающая над обновлениями фреймворка приложений Google, решит эту проблему.
5 приложений, созданных с использованием Flutter
Крупные компании, такие как Google, Alibaba и SpaceX, признали преимущества фреймворка Flutter и использовали его для разработки мобильных приложений. Ниже представлен список из 5 лучших приложений, которые были созданы с использованием этого UI-фреймворка Google.
Google Ads
Google Ads — это приложение для управления рекламными кампаниями, созданное на основе Flutter, которое позволяет запускать их прямо на ходу. Оно обеспечивает глубокий анализ вашей рекламы, такой как впечатления, конверсии, клики, привлечение клиентов и многое другое. Вы можете наслаждаться отличным дизайном и оповещениями в реальном времени, а также хорошей технической поддержкой от команды Google.
Xianyu
Xianyu — это приложение для электронной коммерции, созданное компанией Alibaba, которое предлагает быструю и простую платформу для покупок. Оно насчитывает уже более 50 миллионов пользователей и охватывает огромное количество различных категорий товаров, делая процесс как продажи, так и покупки более простым и прозрачным.
Pairing
Pairing — это приложение для онлайн-знакомств, которое позволяет осуществлять поиск по географической близости, в рамках социальных сетей. Оно также действует как приложение для обмена сообщениями и предлагает привлекательный и интерактивный дизайн.
PostMuse
PostMuse — это приложение, разработанное на основе фреймворка Google UI, которое предлагает широкий выбор различных шаблонов для историй Instagram. Выступая в качестве инструмента редактирования и приложения для обмена фотографиями, оно позволяет настраивать и создавать достойные Instagram изображения и видео. Flutter обеспечил высокий уровень удобства использования без ущерба для производительности.
SpaceX Go!
Это мобильное приложение Dart также было создано с использованием фреймворка Flutter и оно предоставляет своим пользователям постоянные обновления о космическом подразделении Tesla. Вы найдете всю доступную информацию о прошлых, настоящих и будущих планах компании, а также обновления о запусках, автомобилях и кораблях. Благодаря фреймворку Flutter приложение имеет четкий интерактивный дизайн и простую навигацию.
Мультиплатформа Kotlin
Что такое Kotlin для разработки под Android? В чем разница между языком программирования Kotlin и Мультиплатформой Kotlin? Показывают ли приложения для Android на Kotlin лучшую производительность? Об этом вы узнаете в следующем разделе статьи.
Что такое Kotlin?
Kotlin — это статически типизированный язык программирования с открытым исходным кодом, разработанный для взаимодействия с Java. Как самостоятельный язык, он предоставляет отличные возможности по сравнению с Java, но при этом также хорошо работает в связке с более старым языком. Мультиплатформенные возможности Kotlin позволяют разработчикам совместно использовать код, логику и данные на нескольких платформах: IOS, Android, Web и других.
В противостоянии React Native и Kotlin последний имеет гораздо более высокую совместимость с родной платформой Android и обеспечивает лучшую производительность. В поединке Kotlin против Dart, Kotlin будет лучшим выбором для разработчиков Android, поскольку им не придется приобретать новые знания. Однако если ваша команда состоит из iOS-разработчиков, битва Dart и Kotlin теряет смысл, поскольку в любом случае им придется изучать новый язык. Давайте обсудим этот язык кодирования для мобильных устройств, его производительность и другие преимущества в нашем обзоре Kotlin.
Плюсы использования Kotlin
В этой части мы поговорим о преимуществах использования Kotlin и сравним его с Flutter.
1. Хорошо сочетается с Java
Поскольку Kotlin сохраняет значительную часть объектно-ориентированной структуры Java, его легко преобразовать в любой уже существующий Java-код. Такая совместимость делает написание текстов на обоих языках, и миграцию приложений с Java на Kotlin, намного проще и быстрее. Вы можете поддерживать старые приложения на Java, создавать новые на базе Kotlin и легко конвертировать их по одному файлу за раз, не прерывая процесс. Это преимущество Kotlin особенно ценно в ситуации Flutter в сравнении с Java, когда вам нужно перепрыгнуть с одной технологии на другую, и в данном случае делает его предпочтительным выбором для Flutter в сравнении с Kotlin Android.
2. Ясный и лаконичный код
Прямой синтаксис Kotlin делает ваш код более четким и компактным. Благодаря меньшему сроку для написания небольшого количества строк кода делает команду разработчиков более эффективной, экономя ваше драгоценное время и деньги. Как это экономит время и ресурсы? Меньше кода означает меньше ошибок, особенно если ваш фреймворк будет заниматься рутинной частью кодирования, и даст вам возможность сосредоточиться на других важных аспектах. Kotlin обеспечивает надежность, простоту и ускорение процесса создания приложений.
3. Безопасность и последовательность
Поскольку ваша кодовая база короче и легко читается, ошибки компилируются в процессе разработки, поэтому они выявляются и исправляются на ранних стадиях. Разработчики Kotlin постарались создать один из лучших мобильных языков программирования для Android и исправить проблемы, которые были у Java. В результате Kotlin предохраняет вас от распространенных ошибок во время выполнения программы и демонстрирует безопасность более высокого уровня. Здесь Kotlin побеждает в гонке производительности по сравнению с Flutter.
Недостатки использования Kotlin
Что можно сказать о недостатках Kotlin? Перевешивают ли они преимущества? Давайте рассмотрим наиболее распространенные ограничения при разработке на Kotlin.
1. Относительно новый язык
Хотя Kotlin и Java имеют несколько общих черт, нанять Java-разработчика - это не то же самое, что нанять программиста, разбирающегося в Kotlin. Поскольку язык программирования является относительно новым, текущий спрос на работу значительно превышает количество доступных разработчиков Kotlin. Хотя в настоящее время существует более 12 000 вакансий для разработчиков Kotlin, многие из них остаются незаполненными из-за нехватки специалистов. Тем не менее, язык набирает обороты, поэтому мы ожидаем, что эта технология станет более популярной в ИТ-сообществе.
2. Дороже
Поскольку Kotlin SDK предлагает полунативные функции, стоимость создания мобильного приложения резко возрастает. Такие ценовые последствия Kotlin делают его дорогим языком программирования, особенно при создании прототипов и MVP. Кроме того, Kotlin - относительно новый язык, который необходимо сначала выучить, что также требует инвестиций с вашей стороны для обучения ваших разработчиков этому новому языку программирования мобильных приложений.
3. Замедленная скорость компиляции
Еще одним пунктом в списке недостатков Kotlin является более низкая скорость компиляции по сравнению с Java. В редких случаях Kotlin выигрывает у Java в скорости компиляции, но зачастую она намного ниже. При компиляции инкрементальных изменений Kotlin хорошо справляется со своей работой, но он все равно не так быстр, как некоторые другие современные варианты, например, Flutter.
4. Слабая поддержка Native
В настоящее время Kotlin не очень поддерживает Native. Хотя продукт Kotlin/Native расширяется, ему все еще не хватает функций, необходимых разработчикам, например, платформонезависимого графического интерфейса на базе Kotlin.
Что такое Мультиплатформа Kotlin?
Что же такое Мультиплатформа Kotlin? Это набор для разработки программного обеспечения, подготовленный командой Google для кросс-платформенной мобильной разработки. Мультиплатформа Kotlin — это новая экспериментальная функция, которая позволяет создавать приложения для iOS и Android.
Приложения на базе Kotlin для Android существуют уже давно, о преимуществах которых мы расскажем в следующей части, но теперь у вас есть шанс развернуть их и на платформе iOS, не нанимая дополнительных работников, умеющих работать со Swift, Flutter или React Native.
Преимущества мультиплатформы Kotlin для кроссплатформенной разработки приложений
Открывает ли Мультиплатформа Kotlin новые двери для кроссплатформенной разработки? Какими преимуществами она обладает и облегчит ли процесс написания кода?
1. Более быстрая разработка
Мультиплатформа Kotlin способствует более быстрой разработке функций, поскольку один кодер добавляет объекты модели, сетевое взаимодействие, бизнес-логику и модульные тесты, а другой разработчик подключает функцию. Этот процесс ускоряет цикл разработки, особенно когда речь идет о добавлении новых функций.
2. Улучшенное качество кода
Объединив команду для работы над одним кроссплатформенным приложением, вы улучшаете их коммуникацию, что неизбежно приводит к более успешному выявлению ошибок и чистому коду. Без последовательной и открытой коммуникации вы рискуете не выявить ошибки на ранней стадии и перенести их в следующие этапы процесса разработки. Такое сотрудничество также обеспечит лучшую функциональную согласованность между приложениями.
3. Поддерживаемый код
Новые разработчики, которые присоединятся к вашему проекту, не будут испытывать проблем с пониманием происходящего благодаря модульности и тестируемости кода.
5 приложений, созданных с использованием Kotlin
Kotlin использовали многие крупные игроки, такие как Tinder или Trello. Но почему эти компании выбрали Kotlin, и как это повлияло на результат?
Pinterest — сервис обмена изображениями, который использовал Kotlin для создания своего приложения. Данный язык программирования для мобильных устройств помог написать четкий и точный код, который в итоге обеспечил отличную производительность.
Trello
Trello — инструмент управления проектами, который используется в качестве платформы для совместной работы в различных случаях, от деловых до личных. Kotlin помог сделать это приложение более интерактивным и быстрым.
Tinder
Tinder — платформа онлайн-знакомств с уникальным подходом к подбору людей. Компания использовала Kotlin в своей разработке благодаря лаконичной и понятной архитектуре кода.
Netflix
Netflix едва ли нуждается в представлении, поскольку это самый популярный в мире сервис потокового вещания с более чем 180 миллионами подписчиков. Когда компания решила перестроить пользовательский интерфейс плеера, то выбрала язык Kotlin для Android.
Airbnb
Airbnb — это онлайн-площадка объявлений об аренде жилья, которая использовала Kotlin для разработки Android-приложения, которое обеспечило отличный сервис для пользователей.
Flutter в сравнении с Мультиплатформой Kotlin
Не существует лучшего выбора, когда речь идет о Flutter и Kotlin — придется принимать решение на основе вашего уникального случая, команды и потенциально существующей кодовой базы. И Kotlin, и Flutter поддерживаются Google, так что вы не ошибетесь.
Если вы — стартап с небольшой командой, Flutter — прекрасный недорогой выбор, поскольку он позволяет создавать несколько приложений с одной кодовой базой, требуя немного времени и меньше разработчиков. Kotlin — отличный выбор, если вы работаете с уже существующим кодом на Java, но имейте в виду, что вам будет сложнее найти опытных разработчиков.
Flutter и Kotlin: Сравнительная таблица
Flutter |
Kotlin |
|
Язык |
Dart |
Kotlin |
Производительность |
Отлично работает благодаря функции Hot Reload |
Отлично благодаря настраиваемости кода |
Популярность |
114K звезд на GitHub |
35.3K звезд на GitHub |
Кривая обучения |
Исчерпывающая документация |
Ограниченные ресурсы для обучения |
Дизайн пользовательского интерфейса |
Широкие возможности настройки |
Отличный пользовательский интерфейс и возможность настройки |
Поскольку и Kotlin, и Flutter надежны и помогают сократить время выхода на рынок, любой из них станет отличным выбором для проекта кроссплатформенной разработки. Соперники настолько близки, что это становится скорее вопросом предпочтений, чем реальной битвой Flutter против Kotlin.
Заключение
Кто же станет победителем в гонке Flutter против Kotlin 2021? На самом деле, в обозримом будущем Flutter и Kotlin будут сравниваться все чаще и чаще. Они оба обладают большими преимуществами, но также имеют и существенные недостатки.
В настоящее время в споре Flutter против Kotlin, Flutter обычно лидирует только потому, что он более известен и имеет большую группу поддержки. Тем не менее, это лишь вопрос времени, пока Kotlin не станет очередным фаворитом. Если у вас остались вопросы и вы не уверены в том, какой выбор сделать, обратитесь к команде экспертов, которые вам помогут.
Материал подготовлен в рамках курса «Kotlin Developer. Basic».
Всех желающих приглашаем на бесплатное demo-занятие «Kotlin Crash Course». На занятии кратко рассмотрим основные структуры и фичи языка Kotlin, которые широко используются при создании различных приложений, и из-за которого его все так любят: переменные и операции, циклы, функции, лямбда-функции, классы, дата-классы, расширения и еще много другого!
>> РЕГИСТРАЦИЯ
Комментарии (9)
Shatun
14.12.2021 15:13Интересует таблица сравнения дарта, реакта и флаттера-может стоить добавить описание к ней?
Вопрос вызывают некоторые цифры-например популярность у флаттера в 3 раза выше чем у ксамарина-не совсем в этой сфере, но это отличается от того что я видел. Хотелось бы понять откуда такая разница и есть ли она.
Так же процент переиспользования кода-непонимаю вообще как он высчитавается, почему у ксамарина такая разбежка(60-95%) и как это сравнить с учетом разбежки с дартом и реактом.
IngweLand
14.12.2021 16:05почему у ксамарина такая разбежка(60-95%)
Есть Xamarin.iOS и Xamarin.Android (aka Xamarin.Native) - там UI пишут свой под каждую платформу, бизнес-логика расшарена. Xamarin.Forms - UI тоже расшарен (или большая его часть). Потому и разница.
gochaorg
14.12.2021 18:09+3Можете прояснить, как производительность связана с hotreload, о какой производительности идёт речь?
UltimateOrb
14.12.2021 22:41-1Да кому нужен этот Dart. Не думаю что стоит тратить время на этот язык программирования.
wardrone
15.12.2021 12:21Здравствуйте. Спасибо за статью, начинание действительно хорошее, сравнивать актуальные технологии кросс-платформенной разработки. Но хотелось бы уточнить пару технических моментов при сравнении Flutter и KMM для мобильной разработки.
1) В статье ничего не сказано о том, что Flutter имеет свою рендер систему на skia, в отличии от того-же KMM. Т е на flutter мы уже сейчас можем верстать один раз, в то время как на KMM мы либо используем нативный UI либо ждем, когда Compouse сделают совместимым с ios
2) Что вы имели в виду под сравнением производительности flutter/KMM ? Если вы имели ввиду производительность release сборок, то hotReload во flutter только для debug режима (т к только он собирается с VM). Если же вы сравниваете производительность человека, пишущего на той или иной технологии, то хотелось бы понять, по каким критериям.
3) пункт Дизайн пользовательского интерфейса - тоже вызвал вопросы. Могли бы вы уточнить критерии сравнения?
kochetkov-ma
16.12.2021 07:36+1Вы просто попробуйте создать что-то с 0 в котлин мультиплатформ и поймёте, что по сравнению с Flutter у него нет будущего. Практически полное отсутвие документации, отсутвие kdoc к методам, переусложненный и нелогичный код, который не следует единой концепции в разных местах, зверские гредл скрипты для сборки. Я очень люблю котлин и давно использую, но мультиплатформ это какой-то фэйл.
Дарт и флаттер я изучаю недолго и опыта практически нет, но скорость входа там просто отличная. Функциональное приложение для web, android, ios можно создать за неделю. Там идеальная документация как для флуттера так и для дарта, есть раздел по изучению языка в контексте знаний джава, идеальные комментарии и доки в коде, очень простая конфигурация сборки и везде единая концепция с виджетами, состоянием и контекстом.
Сейчас думаю, что идеальный вариант это делать клиентов на флуттер, а бэкенд на котлин со спрингом или ктором.
vvk78
Не знаю, что там у flutter с компилированием в javascript — у Котлина с этим все отлично. За счет одного этого у Котлина впереди светлое будущее.
slavap
У Dart с компиляцией в js тоже всё прекрасно. Гораздо интереснее, что у Котлина с кроссплатформенным UI, потому как Flutter именно про это и справляется отлично.
themen2
К тому же flatter умеет рисовать чисто на канвасе, без трансляции в js. Это может подойти для админок, чисто веб приложений, не требовательных к SEO.
А что с этим у котлина?