Почему Flutter Desktop — это прорыв и как это может ускорить мобильную разработку
Flutter desktop (версия Flutter для Mac, PC и Linux) для реальных приложений и ускорения разработки.
По своей сути Flutter - это отдельный бинарный исполняемый файл, что делает его революционным не только на мобильных, но и на настольных компьютерах.
Написать приложение за один раз и внедрить его на Android, iOS, Windows, Mac и Linux, а также передать всю бизнес-логику в веб (с помощью Dart) - это большая, но выполнимая, задача.
Давайте разбираться подробнее!
Нативный desktop-клиент для ускорения мобильной разработки
Однако прежде чем взглянуть на реальные нативные приложения для настольных компьютеров, давайте посмотрим, что запуск Flutter сразу на десктопе может дать при разработке под iOS и Android:
1. Время запуска
Прежде чем вы сможете начать работу и сделать что-то продуктивное, произойдет запуск эмулятора Android и Gradle. Это особенно актуально когда разработчик работает на Windows.
На следующем GIF-изображении я записал процесс холодной загрузки эмулятора и запуска стандартного приложения Flutter. Это заняло у меня целых 2 минуты и 40 секунд. Только представьте, сколько продуктивных действий можно было бы сделать за это время.
Загрузка Android и запуск Gradle (ускорено в 10 раз)
Что если я скажу вам, что вы сможете запустить приложение менее чем за 10 секунд?
Запуск приложения в исходном виде избавляет вас от необходимости запускать Android в вашей системе и работать с Gradle.
Просто посмотрите на это:
Обратите внимание, что вам не нужно выходить из IntelliJ. Так как есть все необходимое для запуска Flutter в качестве нативного приложения. Работает во всех IDE Flutter.
2. Изменение размеров во время работы
Как и в случае с любым другим приложением, вы захотите протестировать свой макет для разных размеров. Что вы сделаете в таком случае?
Вы спросите всех своих друзей с разными телефонами и/или создадите кучу эмуляторов, чтобы убедиться, что ваш макет выглядит так, как задумано, на каждом устройстве.
Мне это кажется довольно сложным. Можем ли мы сделать это проще?
Конечно!
3. Работайте с Assets на компьютере
При разработке и тестировании приложений, которые должны взаимодействовать с активами (assets) на телефоне, может быть довольно утомительно сначала переносить все тестовые файлы на эмулятор или устройство.
Разве не лучше было бы просто выбрать нужный файл с помощью встроенного средства выбора файлов?
Если вы кричите "ДА", тогда у меня есть то, что вам нужно!
Самое лучшее в этом: реализация Flutter для настольных компьютеров использует тот же канал методов, что и мобильная реализация, поэтому нет никакой необходимости изменять код.
Горячая перезагрузка и отладка
Все это, безусловно, хорошо и интересно. Однако возможность горячей загрузки и отладки - это обязательное условие для каждого продуктивного разработчика.
Поэтому Flutter сделали так, чтобы это работало и на настольных компьютерах!
Оперативная память
Это очень важно для тех, кто работает на ноутбуках и/или менее мощных машинах.
Эмулятор Android съедает примерно 1 ГБ оперативной памяти. Теперь представьте, что работают два таких эмулятора (тестирование приложения для чата или нечто подобного) + Android Studio + вечно жаждущий оперативной памяти Chrome.
Это довольно тяжело.
Поскольку эмбеддер работает нативно, нет необходимости в использовании Android. Это делает его намного меньше.
Нативные приложения для настольных компьютеров
Простого запуска приложения Flutter на настольном компьютере недостаточно для полноценного, готового к производству настольного приложения. Это похоже (и по сути так и есть) на запуск мобильного приложения на настольном компьютере.
Чего не хватает? Многого!
Наведения курсора, изменения курсора, взаимодействия с колесом прокрутки и т.д.
Поэтому во Flutter реализовали и это тоже!
Во Flutter удалось реализовать эти функции без изменения кода платформы - таким образом, это отдельный пакет, который можно включить в любое приложение Flutter. Однако если использовать его вместе с встраиваемым модулем для рабочего стола, происходит волшебство!
На скриншотахниже точно такой же код, запущенный на эмуляторе Android.
Обратите внимание, что на эмуляторе оно ведет себя как обычное приложение, а на рабочем столе меняет курсор и добавляет эффект наведения.
А вот насколько просто реализованы виджеты для рабочего стола:
Написание настоящего кроссплатформенного приложения - включая настольные компьютеры
Выше мы посмотрели только на плюсы использования Flutter Desktop, связанные с мобильной разработкой. Теперь посмотрим на плюсы Flutter при разработке Desktop приложения, либо полностью кроссплатформенного с Desctop версией
Виджеты
Большинство создаваемых вами виджетов универсальны в использовании. Подумайте о кнопках, индикаторах загрузки и т.д.
Те из них, которые должны выглядеть по-разному в зависимости от платформы, можно легко инкапсулировать, используя свойство TargetPlatform.
Виджеты вроде CursorWidget можно без проблем включать и в версию для Android. Там они достаточно просто игнорируются.
Pages
Страницы довольно сильно различаются в зависимости от платформы и размера экрана. Однако в основном они отличаются только макетом, но не функциональностью.
Использование виджета PageLayoutWidget упрощает создание точных макетов для каждой платформы.
Библиотеки
Никаких изменений в коде не требуется при использовании библиотек, которые также поддерживает Flutter Desktop.
Спасибо за внимание и позитивного настроения!
Мы в Morning Stars специализируемся на Flutter разработке и помогаем компаниям создавать мобильные приложения и веб сервисы которые нравятся пользователям.