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

Автор канала - Михаил Зотьев (@mbixjkee).
Download Telegram
На IO нам показали диво-дивное и чудо-чудное, фотобудку, которая всех покорила(нет). А если без шуток, то кейс все равно интересный и достойный внимания.
Само приложение написано на Flutter, ориентированно на web платформу и использует Firebase сервисы.

А о том, как же его создавали, можно прочитать в статье от команды Very Good Ventures, которые и занимались разработкой.

#статья
На Google IO был представлен интересный сервис - Flutter Flow. Он предоставляет визуальный редактор, для построения Flutter приложения. Он позволяет:

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

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

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

#сервис
Covid добавил в жизнь человечества не только бесконечные проблемы и ограничения, но и широкий простор для полета фантазий - что можно сделать удобнее в текущих реалиях. Как насчет научить программу определять в маске ли человек? Да пожалуйста - берем Flutter, teachablemachine и вуаля 😀.

Почитать подробнее о том, как это сделать, можно в статье по ссылке.

#статья
Во Flutter есть виджет GridView, который умеет располагать дочерние объекты упорядочено по сетке. Он доступен из коробки. Но вот чего в нем нет, так это возможности кастомизировать пользователю порядок элементов. Зато эта возможность есть в пакете drag_and_drop_gridview. Помимо стандартного поведения GridView, добавляется:

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

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

#библиотека
На днях вышло обновление плагина Flutter для IntelliJ IDE. В этот релиз вошло:

👉 возможность запуска интеграционных тестов из интерфейса;
👉 поддержка Embedded Browser для MacOS Big Sur (можно отключить);
👉 поддержка null-safety для Live Templates;
👉 исправление поведения step-over при дебаге асинхронного вызова.

Ознакомиться с более подробным списком можно по ссылке.

#обновление
Для VSCode также вышло обновление плагина для Flutter от Dart Code. В релизе:

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

Ознакомиться с более подробным списком можно по ссылке.

#обновление
Вышел очередной выпуск Flutter Dev Podcast. Недавно прошел Google I/O и мы решили не откладывать в долгий ящик, а собраться и обсудить что же нового он нам принес. В этот раз у микрофона: бессменный ведущий подкаста Евгений Сатуров (Surf), Александр Денисов (EPAM), Кирилл Адещенко (Россельхозбанк), Светлана Кривошеева (Effective) и я, Михаил Зотьев (Surf).

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

#подкасты
Иногда в приложении нужно дать пользователю возможность прикрепить различные ресурсы. В таком случае можно воспользоваться решением flutter_wechat_assets_picker. Этот пикер:

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

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

#библиотека
За последние год-полтора, видео коммуникация стала намного более востребованным явлением, чем раньше. В приложении, написанном на Flutter естественно тоже можно реализовать видеосвязь.

📌 Посмотреть пример того, как это можно сделать в статье по ссылке.

#статья
Flutter может во всё большее количество платформ. И разработчикам нужно успевать мочь за ним. Ну или хотя бы оставаться в курсе актуальных новостей всех этих платформ.

Одним из каналов, который поможет в случае с Android, является Android Live. В нем можно найти актуальные новости, актуальные тренды от автора канала Александра Горшкова, который является практикующим Android-разработчиком с более, чем 6-летним опытом.

📌 Подписывайся и будь в курсе, происходящего в мире Android.
У меня с последним обновлением Xcode, приложение на симуляторе стало умирать регулярно, по несколько раз в минуту. Можно даже сказать “быстрее всех на самом быстром процессоре M1”😀Немного помучавшись в попытках оживить все это добро, я вспомнил про превью Android Emulator и решил попробовать его. Сейчас уже вышла 3-я версия, и она выглядит вполне приятно. Из минусов разве что невозможность кастомизации параметров устройства и необходимость задать вручную путь к adb.

📌 Опробовать превью Android Emulator для m1 можно по ссылке.

#инструменты
Недавно я писал про проблемы с симулятором на m1. Заключаются они в постоянном зависании приложения при запуске и во время работы. После долгих поисков, вроде бы нашел решение, которое помогло мне. Нужно выставить для Xcode режим работы с Rosetta, для этого:

👉 открыть список приложений и найти Xcode;
👉 вызвать контекстное меню и открыть свойства;
👉 активировать пункт “Открыть с помощью Rosetta”.

Надеюсь поможет и вам, если столкнетесь с подобным поведением симулятора.

#фикс
Слышал много хорошего про стрим с разбором основ BLoС от PlugFox, но все никак не мог добраться до него, чтобы посмотреть. Но отпуск все таки дал мне эту возможность, поэтому я наконец-то посмотрел. И контент действительно отличный. На стриме разобрали:

👉 концепция BLoC и его устройство;
👉 Cubit, его устройство, отличия от BLoC, когда и как лучше использовать;
👉 пример, как можно готовить BLoC.

Что особенно важно, были затронуты общие архитектурные темы, подходы и вопросы, которые важны независимо от того, что вы используете в своем приложении, поэтому стрим будет полезен не только тем кто интересуется именно BLoC.

📌 Посмотреть стрим можно по ссылке.

P.S. Несколько дней скорее всего постов не будет, потому что отправляюсь на конференцию Secon 21, и времени будет маловато. Ну а с теми, кто тоже на нее собирается - увидимся ✌️
Вчера вечером я вернулся с конференции Secon 21 и не могу не поделиться своими впечатлениями. Конференция вышла действительно интересная и запоминающаяся - всегда было куда сходить и послушать интересные именно вам доклады.
А еще она была офлайн и поэтому было много нетворкинга, которого так недоставало последнее время. Да и атмосфера была очень крутой - конференция прошла в комплексе современного искусства, где классические скульптуры отлично соседствовали например со стимпанк кузнечиками из металла и панк-рок группой из Пензы. Если заинтересовало, то можете проникнуться царившей там атмосферой, посмотрев фотографии в моем инстаграме, и не только в моем - по хештегам #seconru #seconnews #seconконференция #seconweekend #secon2021.

Ну и самое главное, чуть позже организаторы собираются выложить записи докладов, так что если вы что-то хотели посмотреть - у вас будет такая возможность 👍

#события
Иногда для решения технической задачи, которая стоит перед вами, какой-то одной технологии недостаточно. Один из таких кейсов рассказали в своей статье ребята из Hattrick IT. Им пришлось подружить Flutter и Unity для игры, в которую можно будет играть как с использованием нейробиоуправления, так и с помощью пользовательского ввода.

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

#статья
При написании приложения довольно часто нужно использовать состояние загрузки для выполнения каких-либо действий. Подойти к реализации можно совершенно по-разному. Например можно использовать пакет flutter_progress_hud. Он позволяет показать состояние загрузки в виде модального виджета. Достаточно обернуть в ProgressHUD все, что вы собираетесь заблокировать состоянием загрузки, и в нужный момент вызвать показ лодера.

К плюсам пакета можно отнести:

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

📌 Попробовать библиотеку можно по ссылке.

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

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

#статья
Последнее время во всех крупных обновлениях Dart уделяют особое внимание FFI (Foreign Function Interface). Как можно понять из названия, FFI позволяет использовать вызов нативного C API из Dart кода. Осуществляется все это при помощи библиотеки ffi, основная часть которой уже встроена в Dart, а также дополнительной части с различными утилитами, которая доступна в pub.

А о том, как же всем этим пользоваться, можно почитать в статье от Maksim Lin.

#статья
Среди мобильных разработчиков весьма популярны сервисы, предоставляющие удобную инфраструктуру для приложений. Ярким примером является Firebase - облачная база, авторизация и многое другое. Но не Firebasом единым жив Flutter-разработчик. Отличной альтернативой в ближайшем времени ему может стать например сервис @ platform от The @ Company. Как заявляют сами разработчики упор сделан не только на создание инфраструктуры, но и на то, чтобы сделать ее максимально безопасной для данных пользователя. К тому же @ platform является opensource решением и абсолютно бесплатна. Более того, компания предоставляет реферальную программу по привлечению новых пользователей через приложения.

Почитать подробнее про @ platform можно в статье от Anthony Prakash.

#статья
Даже далекие от общеупотребимых решений могут быть полезны. Например анимированный фон, казалось бы ну в каком мобильном приложении такое может потребоваться? Можно использовать на сплеш-экране, или воспользоваться для необычного состояния загрузки. А может быть вам придется писать геймифицированное обучающее приложение для детей и ваш дизайнер именно так увидит основной фон.
Добавить такой фон можно с помощью библиотеки animated_background:

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

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

#статья
Хорошей прокачкой своих навыков в анимациях может быть выполнение понравившегося примера на Dribbble. Tony Owen в своей статье разбирает как раз такой пример. За основу он взял пример автора Pontus Wellgraf, посвященный Formula 1 и попытался реализовать его на Flutter.

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

#статья