Сравнение Flutter и Swift. Какой стек лучше в 2021 году?
Сегодня существует приложение, кажется, для всего. Если у
Однако чтобы разработать приложение, нужно сначала решить, какой стек технологий использовать. Если речь идёт про экосистему iOS, то выбор будет стоять между Flutter/Dart или нативной разработкой на Swift. Мы провели сравнение этих технологий, чтобы помочь вам выбрать лучшую для вашего проекта.
Обзор Flutter и Swift в 2021 году
В 2014 году Apple выпустила Swift — мультипарадигмальный, компилируемый язык программирования с открытым исходным кодом, созданный специально для разработки под iOS.
У Swift множество преимуществ:
- качественная документация;
- исходный код под свободной лицензией;
- читаемый синтаксис
- высокая производительность;
- современные фичи;
- поддержка динамических библиотек.
Flutter —
- открытый исходный код и большое сообщество пользователей;
- отличная документация;
- высокая производительность;
- графический движок;
- множество инструментов для ускорения разработки;
- горячая перезагрузка;
- поддержка устаревших устройств;
- виджеты для упрощения создания графических интерфейсов.
Скорость компиляции Flutter и Swift
Скорость сборки приложения на нативном компилируемом языке почти всегда выше, так что если сравнивать Flutter с Kotlin или Swift, последние почти наверняка будут быстрее — если учитывать именно время «холодной» сборки. Однако в сравнении скорости инкрементальной компиляции, то Dart более конкурентоспособен.
Скорость разработки
Здесь явно в пользу Flutter. Очень немногие компании ограничиваются приложением только для iOS, а если ваше приложения написано на Swift, то под Android придется писать отдельную версию. Разработка двух разных версий приложения может оказаться весьма дорогим процессом.
Flutter позволяет разрабатывать
Кроме того, Flutter ускоряет сам процесс. Для него существуют несколько IDE, которые могут сделать разработку быстрее. Его поддерживает Visual Studio Code, которая предоставляет большинство функций Android Studio и IntelliJ, но требует куда меньше ресурсов. Минимальный прототип можно разработать за пару месяцев и потом добавлять в него функции, а не ждать разработки полноценного приложения полгода и более.
Дополнения и переиспользование кода
Снова Flutter выглядит более привлекательно. Мы уже говорили о впечатляющих возможностях повторного использования кода и сборке приложений для множества платформ из общего исходного кода. Это также ускоряет тестирование, поскольку не нужно тестировать несколько независимых приложений на Swift и других языках. К Flutter также существует множество дополнений, которые еще больше упрощают и ускоряют разработку.
Производительность
Если у вас хватает бюджета на разработку отдельного приложения под каждую платформу, то с точки зрения производительности Swift — отличный выбор, потому что нативные средства помогают использовать ресурсы устройств по максимуму. Но и у кроссплатформенной разработки нет проблем с производительностью
Приложения на Flutter сравнимы с нативными по производительности, поскольку они компилируются в нативный код и не требуют интерпретатора. Кроме того, пакет анимаций для Flutter позволяет легко создавать элегантные и
Популярность и сценарии использования
В опросе Stackoverflow 2020 года Flutter оказался в тройке самых популярных инструментов разработки. У Flutter 118 тысяч звезд на Github, против 55 тысяч у Swift. Но победителя тут нет — оба стека широко используются во многих известных компаниях. Вот примеры приложений на Swift и Flutter:
На Swift были созданы:
- SlideShare
- Lyft
- Firefox
- Eventbrite
Приложения, написанные на Flutter:
- Google Ads
- Alibaba
- Square
- Ebay
- Hamilton Musical
- Reflectly
- Groupon
- Cryptomaniac
- SpaceX Go
- Realtor.com
Flutter подходит для самых разных областей, включая розничную торговлю, финансы, оптовые поставки, франчайзинг и здравоохранение.
Однако при выборе между Swift и Dart нужно учитывать некоторые ограничения Flutter. К примеру, Flutter не лучший вариант, если:
Размер приложения не должен превышать 1–3 мегабайта. Приложения на Flutter обычно «тяжелее» нативных.
Вы планируете использовать горячую загрузку кода, чтобы избежать процесса модерации App Store при выпуске обновлений вашего приложения.
Вы разрабатываете большую игру вроде PUBG. Flutter проектировался для приложений, а не для игр, хотя и подходит для несложных механик.
Возможности Flutter для приложений под iOS
Кажется, что раз Swift создан Apple, то у него преимущество в доступе к возможностям устройства. Но это не так. Множество функций легко интегрируются и в приложения на Flutter:
Apple HealthKit — позволяет приложениям получать данные о здоровье и физической активности пользователя и добавлять новые данные в приложение Health.
Machine learning — позволяет использовать возможности устройств по машинному обучению для разработки инновационных функций.
HomeKit — позволяет пользователям без проблем взаимодействовать с системами «умного дома» и управлять им с помощью Siri.
Flutter Audio
Некоторые возможности для Flutter, впрочем, недоступны. Когда мы разрабатывали приложение Medcorder для нашего клиента, у нас возникла проблема: не существовало способа записи голоса с помощью API, которые предоставляет Google. Наш клиент предложил разработать дополнение к Flutter для этой цели и опубликовать его под свободной лицензией, и мы создали Flutter Audio, о котором вы можете прочитать в нашей статье.
Заключение
Итого: если у вас ограничен бюджет, а механики приложения несложные — Flutter подойдёт отлично. Если же бюджет позволяет развернуться или архитектура приложения сложная, то Swift подойдёт лучше.
Swift — отличная платформа, хотя и у Flutter есть ряд преимуществ, включая возможность разработки под множество платформ сразу. Нативная разработка безусловно хороша, но Flutter непрерывно развивается и, возможно, превзойдет Swift.
Если вы не знаете как выбрать мобильную