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

Автор канала - Михаил Зотьев (@mbixjkee).
Download Telegram
Во Flutter довольно удобно можно сделать адаптивный пользовательский интерфейс. Стандартный подход при этом - проверить размеры и исходя из них выбрать как отображать определенную область. Но для некоторых кейсов можно использовать более изящные решения. Одно из таких OverflowBar. Он располагает свои дочерние виджеты в строку до тех пор пока они умещаются, в противном случае превращается в столбец.

📌 О том, как применить данный виджет при разработке адаптивного UI, читайте в статье от David Gonzalez.

#статья
Стартовал ежегодный опрос исследование про состояние отечественного рынка мобильной разработки. Основные темы, которым посвящен опрос:

👉 Популярные источники новых знаний;
👉 Интересные конференции мобильных разработчиков;
👉 Команды мобильной разработки, какие более всех заметны и интересны.

Пройти опрос можно по ссылке, а через месяц будут опубликованы результаты.

#опрос
Помимо стандартных для мобильных приложений методов оплаты Apple Pay, Google Pay, бывает нужно добавить вариант оплаты с помощью банковской карты. Чтобы не тратить время на реализацию отображения карты, можно воспользоваться готовым пакетом, который возьмет на себя эту задачу:

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

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

#библиотека
Когда возникает задача листать некоторые объекты, сразу приходит на ум PageView. Но PageView имеет довольно линейное поведение. Если же нам нужно к примеру пролистать объекты, располагающиеся в стеке, то он уже не подойдет.
Альтернативой PageView для листания может послужить библиотека flutter_swiper. Она предоставляет для использования:

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

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

#библиотека
Flutter довольно прочно закрепился на рынке, но все еще остается новой технологией. Поэтому отдельный интерес по-прежнему представляет вопрос, какие компании используют его в разработке. Very Good Ventures подготовили свой топ компаний на начало 2021 года, среди которых такие гиганты как:

👉 Toyota;
👉 eBay Motors;
👉 Amazon.

📌 Ознакомиться с полным списком этого топа можно по ссылке.

#статья
Несколько дней назад на Forbes появилась статья, рассказывающая о видеостриминговой платформе The Hole. Она является проектом компании Medium Quality. Но для нас оно интересно не столько контентом, как тем, что мобильное приложение для этой платформы написано на Flutter. Всё большее появление подобных крупных кейсов - большой рывок вперед для Flutter, а также дополнительная мотивация бизнесу всё чаще выбирать Flutter.
📌 Почитать подробнее про The Hole можно по ссылке.

#статья
Google Summer of Code - это программа, направленная на привлечение студентов-разработчиков к разработке opensource программного обеспечения. Компания Google спонсирует студентов для работы над 10-недельным проектом в течение лета под руководством одной из организаций наставников. Команда Dart в этом году тоже будет в числе менторов и уже предложила список проектов.

📌 Подробнее можно прочитать в статье.

#анонс #статья
Лично для меня Xcode находится наверное на первом месте… среди орудий для пыток. Проблемы на пустом месте - это визитная карточка данной IDE. Недавно я в очередной раз столкнулся с не самым приятным поведением, но в этот раз нашел довольно быстрое решение.

Если вы переключите git ветку со свернутым Xcode, а затем выключите его, или обновите Xcode во время его работы, то получите немаленький шанс, что проект больше не откроется. Самым быстрым решением будет:

👉 Откройте другой проект или создайте новый;
👉 File -> Open Recent;
👉 Очистите список недавних проектов;
👉 Закройте XCode;
👉 Удалите содержимое DerivedData.

После этого вы сможете открыть свой проект как обычно. Важно выполнить очистку недавних проектов, без этого очистка DerivedData не принесет никакого эффекта - при старте Xcode данные будут восстановлены. Надеюсь теперь вы сэкономите немного времени и нервов, столкнувшись с подобной проблемой.

#fix
На днях была анонсирована официальная поддержка работы с Dart в GitHub Actions. Для этого был добавлен Setup Dart SDK Action. Он позволяет:

👉 загружать, устанавливать и конфигурировать Dart SDK;
👉 выполнять сборку Dart build;
👉 запускать тесты для Dart кода.

Почитать подробнее можно в статье-анонсе от Michael Thomsen.

#ci
Вышла новая версия библиотеки 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.

#библиотека #статья