Oh, my Flutter
4.95K subscribers
1.18K photos
6 videos
1.11K links
Всё о Flutter-разработке. Новости, статьи, анонсы, вакансии и многое другое. Disclaimer: все публикуемое является частным мнением, свободно распростаняемой информацией, и не содержит рекламных интеграций.

Автор канала - Михаил Зотьев (@mbixjkee).
Download Telegram
Вышла новая версия библиотеки flutter_inappwebview. По заявлениям разработчиков было проведено очень много работы, и судя по changelog-у это действительно так. Что же принесло это обновление?

👉 поддержка Null-safety;
👉 поддержка Hybrid Composition для Android, которая должна значительно улучшить производительность WebView;
👉 все адреса теперь передаются как Uri, а не как String, что позволит избежать множества проблем на стыке;
👉 с помощью URLRequest можно сделать начальный POST запрос;
👉 ограниченная поддержка Cookies для iOS младше 11.0 версии;
👉 возможность внедрить UserScript - выполнение JavaScript кода до загрузки других ресурсов;
👉 поддержка Apple Pay API для iOS старше 13.0 версии.

Подробнее ознакомиться со списком изменений, можно в статье от Lorenzo Pichilli.

#библиотека
Написание тестов - очень важная часть процесса разработки. Она позволяет сэкономить кучу денег и сил для проекта. Проверить насколько подробно ваш код покрыт тестами позволяет test coverage - стандартный механизм во flutter test. Увы, у этого механизма есть одна неприятная особенность - он не учитывает файлы для которых вообще не написаны тесты. Исправить это можно, явно указав, что эти файлы относятся к вашему приложению.

📌 О том, как сделать это максимально просто и получить актуальные результаты покрытия тестами, можно прочитать в статье от Muhammed Salih Guler.

#статья #тестирование
Ежемесячную рубрику главных тем в мире Flutter в студию! 😀

В марте произошло не так много событий, но значимость их трудно переоценить:

👉 прошел Flutter Engage;
👉 релиз Flutter 2;
👉 релиз Dart 2.12;
👉 был проведен опрос Q1 2021.

Самый популярный пост месяца:
❤️ Flutter для Ubuntu.

#главное
Для визуального отображения навигации можно использовать различные инструменты. Например, доступные из коробки Bottom Navigation Bar или Navigation Rail. Также вариант с Navigation Rail можно улучшить и сделать схлопывающуюся боковую панель. В этом может помочь пакет collapsible_sidebar. Он имеет гибкие настройки внешнего вида и поведения.

📌 Воспользоваться библиотекой можно по ссылке.

#библиотека
Если судить по Dribbble и подобным дизайнерским площадкам, неоморфизм становится весьма популярным решением. Несмотря на многие минусы, этот подход приятно выглядит, на мой взгляд. Как же реализовать интерфейс в стиле неоморфизм во Flutter?
📌 Об этом можно прочитать в статье от Tony Owen.

#статья
JUG Ru Group с 13 по 16 апреля проведет в онлайне большую конференцию по мобильной разработке Mobius.

В программе никакого маркетинга, менеджмента и пересказов документации, только технологии и только из первых рук.

🎙Спикеры:

— Ярослав Магин, ведущий мобильный разработчик в компании Inostudio;

— Артем Зайцев, руководитель Flutter-отдела в Surf;

— Александр Денисов, Lead Software Engineer, Co-Head of Flutter Competency в EPAM Systems, Google Developer Expert в областях Flutter and Dart, организатор комьюнити GDG Moscow;

— Андрей Савостьянов, Flutter-разработчик, пришедший из full-stack (Android native/Angular/Java Spring).

👉Помимо докладов, будет и практика — например, воркшоп от Андрея Савостьянова, на котором участники будут вместе с ним пилить полнофункциональное приложение-мессенджер на Flutter.

Вся программа доступна на https://bit.ly/31P6Ej4

Всё это пройдет в 4К, с возможностью ставить на паузу и менять скорость воспроизведения. У ребят даже геймифицированный режим платформы есть, который имитирует офлайн-площадку.

Заходите за подробностями и покупайте билеты: https://bit.ly/31PYA1q

❗️Решили сходить, то вот вам промокод на скидку при покупке Personal-Standard билета (который покупаете сами, не компания): SurfFlutterTeam2021JRGpc

❗️А если решите посетить все конференции сезона, то покупайте билет Full Pass по промокоду: JugRuCommunityBonus

#события
Настроить отображение поля ввода во Flutter можно очень гибко. Для этого существует Input Decorations, имеющий множество параметров:

👉 какую подсказку и как отображать;
👉 суффиксы для введенного текста;
👉 отображения иконок;
👉 настройки границы.

И разобраться со всем этим многообразием без опыта, бывает затруднительно. Если это ваш случай - вам поможет статья визуальный гайд по Input Decorations от Suragch.

#статья
Довольно часто наиболее подходящим отображением математических и статистических данных являются диаграммы и графики. Одним из пакетов, которые помогут вам легко использовать этот функционал в приложении, является fl_chart. Он позволяет:

👉 использовать различные режимы отображения: круговые и столбчатые диаграммы, диаграмму рассеяния, линейные графики;
👉 анимировать отображение и взаимодействие;

📌 Познакомиться подробнее с использованием этой библиотеки можно в статье от Naveen Srivastava.

#библиотека #статья
Ни для кого не секрет, что во Flutter большой простор для использования анимаций. Но если потребуется не просто анимация, а полноценная 3d модель, сможет ли Flutter? Ответ - да! А поможет в этом библиотека model_viewer, которая позволяет:

👉 отображать glTF и GLB модели, а так же USDZ на iOS 12+;
👉 анимировать отображаемые модели, включая автовоспроизведение;
👉 использовать модели для AR;
👉 настраивать отображение, включая повороты с задержками, фон.

📌 Почитать подробнее про использование библиотеки, можно в статье от Shaiq khan.

#библиотека #статья
Имея весомую кодовую базу на языке Dart, невольно задумаешься о том какова цена поддержки такого объема кода и как понять, что пора проводить рефакторинг. Вместе с Dart SDK нам поставляется инструмент analyzer со встроенным линтером и богатым набором правил. Это помогает нам избежать простых ошибок и поддерживать кодовую базу в стилистике, предлагаемой авторами языка. Но как быть если у вас есть потребность в аналитической информации по коду? Подобным вопросом задались авторы пакета Dart Code Metrics - инструмента статического анализа Dart кода.

👉 гибкие варианты использования - из командной строки, в виде плагина или библиотеки;
👉 возможность легкой интеграции с CI/CD;
👉 множество форматов результата: plain text, html, json, Codeclimate, Github;
👉 сбор метрик по коду;
👉 поиск антипаттернов;
👉 настраиваемы линтинг с учетом строгости проверки.

📌 Воспользоваться этим решением можно по ссылке.

#библиотека
Наверное всем знакома ситуация, когда заказчик говорит: «Хочу N как в Facebook/Twitter/Instagram». Поэтому всегда полезно иметь в запасе готовые решения, которые позволят эти хочу воплотить в жизнь быстро и дешево. Одним из таких решений является библиотека polls, позволяющая добавить функционал опросов, подобный используемому в Twitter.

📌 Познакомиться подробнее с использованием этой библиотеки можно в статье от Shaiq khan.

#библиотека #статья
Для многих приложений боковая панель - важная часть пользовательского интерфейса, помогающая разгрузить экран и дающая возможность удобной навигации. Во Flutter она доступна из коробки. Если же мы захотим каким-либо образом кастомизировать ее поведение, то придется постараться самим. Библиотека foldable_sidebar - пример такой кастомизации. С ее помощью мы легко реализуем в приложении складывающуюся боковую панель.

📌 Почитать подробнее про использование библиотеки, можно в статье от Shaiq khan.

#библиотека #статья
Одним из доступных вариантов тестирования во Flutter является Widget тестирование. Эти тесты позволяют проверить поведение самих виджетов в смоделированной среде.
Для их написания используется библиотека flutter_test.

📌 О том, какие возможности имеются в ней и как ими пользоваться, читайте в первой части серии статей глубокого погружения в Widget тестирование от Deven Joshi.

#статья
Вышла вторая часть в серии статей о глубоком погружении в Widget тестирование, о которой я писал ранее. В ней рассмотрены:

👉 Основные подходы в написании подобных тестов;
👉 Инструментарий: методы поиска, взаимодействия, проверки результата;
👉 Создание виджета для тестирования и особенности работы этого процесса в тестах.

📌 Подробнее про все это, читайте в статье от Deven Joshi.

#библиотека
22 апреля КРОК и Лига Ставок проводят Flutter-митап.

В программе:
👉 как сделать приложение на Flutter с речевой аналитикой;
👉 как разобраться с механизмом работы отрисовки оригинальных интерфейсов пользователя;
👉 как изменить код при переходе к null-safety.

Эксперты:
– Григорий Григорьев, ведущий инженер-разработчик, КРОК;
– Вадим Лукичёв, ведущий разработчик мобильных приложений, Лига Ставок;
– Вячеслав Рябинин, главный разработчик мобильных приложений, Лига Ставок.

Подробнее про доклады и регистрация: https://liga-stavok.timepad.ru/event/1615814/
Наконец то это случилось - дамоклов меч над Metal и Flutter убран. Прекомпиляция шейдеров работает теперь и на Metal!

📌 Узнать подробнее можно по ссылке.

#обновления
Эмодзи - важная часть современного общения. И несмотря на то, что в современных клавиатурах есть режим ввода эмоций, весьма полезной для приложения может оказаться возможность выбора эмоций без текстового ввода. Например для функционала реакций на сообщение. В этом может помочь библиотека emoji_picker. Она позволяет:

👉 отобразить панель для выбора без малого 400 эмодзи;
👉 задать ключевые слова для рекомендованного списка эмоций;
👉 выбрать режим работы и настройки кастомизации.

📌 Почитать подробнее про работу с библиотекой можно в статье от Naveen Srivastava.

#статья #библиотека
Так уж сложилось, что Flutter разработчикам нужно разбираться не только в самом Flutter, но и в нативных платформах, в которые Flutter может. Одной из этих платформ является Android.

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

На YouTube канале Android Broadcast можно найти интервью с разработчиками из крупных компаний, обзоры последних технологий и лучшие практики.
▶️ Собеседование в прямом эфире;
▶️ Новости Android разработки;
▶️ Обзор возможностей Constraint Layout.

Автор проекта - Кирилл Розов, Android GDE с опытом более 9 лет в индустрии.
Недавно я писал про Dart Code Metrics - инструмент статического анализа Dart кода. Разработчики активно развивают проект, и вот недавно вышло обновление мимо которого я просто не могу пройти. Добавлено правило avoid-returning-widgets 💪, направленное на исправление Flutter-антипаттерна, при котором сборку виджета отдают методу (метод build и тесты, естественно не в счет).

А еще ребята запустили telegram-канал, посвященный Dart Code Metrics, и если проект вам интересен, присоединяйтесь.
Одним из вариантов E2E тестирования является тестирование роботом. При нем программно воспроизводятся различные варианты взаимодействия пользователя с приложением. Для реализации необходимо написать «классы-роботы», описывающие нужные действия. Во Flutter для этого можно использовать библиотеку flutter_driver, предоставляющую API тестирования приложений на реальных устройствах и эмуляторах.

📌 О том, как можно организовать робот тестирование вашего приложения, читайте в статье от Jorge Coca и Paulina Grigonis.

#статья
На днях состоялась церемония награждения Tagline Awards 2020-2021 — высшая российская награда за интерактивные проекты.

Сразу несколько приложений моих коллег из Surf получили в нем награды, в том числе и написанные на Flutter. К одному из них я тоже приложил свои ручонки 😃, но речь пойдет не про него, а про приложение Росбанк Бизнес. Чем же оно так примечательно:

👉 первое в России и второе в мире (бразильский Nubank вышел в релиз чуть раньше) банковское приложение на Flutter;
👉 это был вызов и смелое решение для Surf и Росбанка - на момент старта разработки, банков на Flutter не было;
👉 лучшее мобильное приложений в категории «Банки, финансы и страхование» по версии Tagline Awards 2020-2021.

О том, как же проходила разработка и с какими вызовами сталкивалась команда, пока делала Росбанк Бизнес, читайте в статье от Surf.

#статья