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

Автор канала - Михаил Зотьев (@mbixjkee).
Download Telegram
Рубрику с главными новостями преследует какой-то злой рок, на этот раз она задержалась, потому что я заболел. Но show must go on, так что это нас не остановит! 💪

В феврале произошло сразу несколько важных событий:

👉 Опубликованы результаты Q4 2020;
👉 Опубликованы итоги оптимизации за первую половину 2020;
👉 Вышел интересный подкаст с разбором Null Safety.

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

#главное
Чуть меньше часа осталось до начала самого долгожданного и загадочного события в мире Flutter, за последний год точно. С декабря команда Flutter держала интригу и постоянно подкидывала нам подсказки. И уже скоро мы узнаем, что же они все таки готовили все это время.
Уверен, завтра будет что обсудить 👍
Вчера на Flutter Engage был красиво и мощно анонсирован Flutter 2. Количество добавленного поражает. В какой-то момент мне показалось, что команда Flutter собрала в одну кучу все, что у нее давно просили, чтобы выпустить major версию. Означает ли это, что сегодня мы проснулись в новом счастливом мире Flutter? На мой взгляд нет - сколь много изменений, столь много и проблем они могут принести.

Итак, чем же нас порадует Flutter 2:

👉 поддержка Web и Desktop в stable;
👉 Sound Null Safety и оптимизации при компиляции;
👉 добавлен Google Mobile Ads SDK для Flutter;
👉 новые Autocomplete and ScaffoldMessenger, а также виджеты для Cupertino;
👉 оптимизации использования памяти для встроенных приложений;
👉 улучшения туллинга: автомиграция на Null Safety, Flutter Fix, новые возможности Flutter DevTools, обновления плагинов для различных IDE.

Все это и многое другое, мы теперь сможем использовать в работе. Подробнее ознакомиться со списком изменений можно в статье-анонсе от Chris Sells.

#обновления
Такое изобилие нового во Flutter 2 обусловлено в том числе и новой версией Dart, которая была анонсирована на днях.

Что нового нам принесло это обновление:

👉 Sound Null Safety в stable и по умолчанию активен;
👉 Утилита для миграции кода на Null Safety;
👉 Dart FFI для интеграции Dart и C библиотек.

📌 Более подробно о нововведениях, а также следующих фичах, читайте в статье-анонсе от Michael Thomsen.

#обновления
После Flutter Engage в официальном твиттере Ubuntu вышел пост, в котором сказано, что Flutter для будущих приложений Ubuntu - выбор по умолчанию. Это не может не радовать, ведь одно дело просто заявить поддержку платформы, а другое добиться подобного статуса. Надеюсь это даст хороший буст в развитии Flutter.

#обновления
На днях команда Flutter анонсировала старт первого ежеквартального опроса. С помощью этих опросов команда Fluter собирает актуальный фидбек о работе фреймворка и выбирает направления развития.

📌 Вы можете лично поучаствовать в улучшении Flutter, пройдя опрос по ссылке.
Хорошим вариантом тренировки и развития навыков владения инструментом является попытка повторить успешный проект или его часть. У такой тренировки множество плюсов:

👉 вы повторяете реально работающий пример;
👉 осваиваете интересные и правильные решения;
👉 вам не нужен дизайн для тренировки - у вас есть готовый рабочий прототип;
👉 вы учитесь делать строго то, что ожидается на выходе.

На чем же можно потренироваться? Это может быть что угодно - экраны из App Store, Google Play, популярных мессенджеров.

📌 А пример клона iMessage на Flutter можно посмотреть в статье от Sacha Arbonel.

#статья
Мы уже не раз затрагивали тему прокачки IDE с помощью плагинов. Но все предыдущие разы речь шла про VSCode. Сам же я предпочитаю использовать Android Studio. Как говорил Борис Бритва: «Тяжесть — это хорошо. Тяжесть — это надёжно. Даже если не выстрелит, таким всегда можно врезать».
Но не смотря на всю громоздкость, в Android Studio можно многое добавить для удобства. Один из моих любимых плагинов - CodeGlance. Он добавляет мини-карту просматриваемого файла, тем самым делая навигацию намного удобнее.

📌 Установить расширение можно по ссылке.

#IDE
Flutter Engage принес настолько много нового, что опробовать все это быстро практически невозможно. Комьюнити до сих пор активно обсуждает что добавлено, выходят статьи, обзоры, люди делятся опытом в том, что уже использовали.

Flutter Dev Podcast не стал исключением. Я поучаствовал в выпуске, в котором мы обсудили:
👉 текущее состояние Flutter for Web;
👉 впервые всерьез десктоп;
👉 поддержка складных устройств;
👉 LSP и новые инструменты для дебага и туллинга;
👉 реальный опыт миграции проекта на Null safety.

🎧Послушать подкаст можно в Apple Podcasts, Яндекс.Музыка, Google Podcasts, Spotify.

#подкасты
Во 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.

#главное