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

Автор канала - Михаил Зотьев (@mbixjkee).
Download Telegram
Channel created
Привет!

Это канал о Flutter-разработке.

Здесь публикуется всё про Flutter: новости, статьи, подборки, анонсы, подсказки, советы, вакансии и многое другое.
Welcome🤟
Хочешь пощупать Flutter, но не знаешь какую тему выбрать для приложения?

Вот подборочка интересных апи:

📌Страны
https://restcountries.eu/

📌News
https://newsapi.org/

📌Spotify
https://developer.spotify.com/documentation/web-api/

📌Translate
https://yandex.com/dev/translate/

📌Films
https://developers.themoviedb.org/4/getting-started/authorization

📌Cocktails
https://www.thecocktaildb.com/api.php

📌Starwars
https://swapi.dev/

📌LOTR
https://the-one-api.dev/

📌Pokemon
https://pokeapi.co/
Фикс проблемы с подключением девайса в Android Studio

Если Android Studio не видит девайс и постоянно висит “Loading...”, перезапустите Flutter Daemon.

💡Простое решение:

1️⃣Search Everywhere (Double shift)
2️⃣restart flutter daemon
❗️Вышла новая версия Flutter 1.22

Главное:

Поддержка iOS 14
Добавили поддержку шрифта SF Symbols, обновили набор иконок cupertino_icons, а также добавили возможность запускать Flutter-приложение в формате App Clips без установки на устройство.

Поддержка Android 11
Синхронизировали анимацию изменения инсетов с появлением/скрытием клавиатуры.

Navigator 2.0
Новый навигатор позволяет описывать навигацию переходов в декларативном стиле и иметь доступ сразу ко всему стеку экранов. Старый навигатор остаётся и не будет удалён никогда.

Новое семейство кнопок
TextButton вместо FlatButton, ElevatedButton вместо RaisedButton, а OutlinedButton вместо OutlineButton. Что самое главное, теперь внешний вид каждой кнопки настраивается через отдельную тему.

Google Maps и WebView плагины
Теперь google_maps_flutter и webview_flutter плагины официально готовы к использованию в продакшне! Разработчики решили все известные серьёзные проблемы.

Изменение локализации «на лету»
Изменения содержимого *.arb-файлов локализации теперь применяются к запущенному приложению через Hot Reload.

Упрощение работы со строками
Пакет characters, помогающий корректно работать со строками, содержащими unicode-символы и эмодзи, можно использовать в любом проекте не подключая его вручную.

Dart 2.10
Разрозненные Dart-утилиты (dartfmt, dartanalyzer) объединены в одной универсальной утилите dart.

Утилита для измерения размера сборки
Появилась возможность проанализировать размер артефакта, собранного под любую платформу, а также сгенерировать отчёт в Json-формате и посмотреть его через DevTools.

🔄 Восстановление состояния приложения на Android
Экспериментальная фича: теперь Flutter позволяет восстанавливать состояние пользовательского интерфейса даже после смерти процесса, совсем как в нативном Android-приложении.

🔄 Отображение body запросов в Network DevTools
Для того, чтобы опробовать новую и желанную фичу, придётся переключиться на dev-канал Flutter.

📌 Подробнее про эти и другие обновления в анонсе от Chris Sells
Давно ждали новую навигацию во Flutter?

Flutter 1.22 порадовал нас появлением Navigator 2.0. С ним навигацию теперь можно реализовать в декларативном стиле. Также, упрощена работа с навигаций для Flutter for Web и обработка дип-линков.

👉 Старый навигатор остаётся и вы можете по-прежнему использовать его;
👉 В Navigator.pages передаётся сразу вся последовательность переходов между страницами (Page) с уточнением условий через collection if;
👉 Navigator.onPopPage принимает реализацию коллбека, для обработки возврата со страницы (Page);
👉 Теперь можно обрабатывать вызовы от платформы, например, реагировать на изменение URL в адресной строке браузера. RouterDelegate предназначен для перехвата URL, а RouteInformationParser - для разбора URL на составляющие и выделения параметров.

📌Подробнее с работой Navigator 2.0, а также с примером его использования можно познакомиться в статье от John Ryan
Одна из новых фич Flutter 1.22 — поддержка App Clips. Этот формат позволяет получить быстрый доступ к одной определённой функции iOS-приложения без загрузки его полной версии. У одного приложения может быть несколько App Clip для разных сценариев использования.

Что важно знать перед тем, как вы приступите к разработке:

👉 Размер каждого App Clip не может превышать 10 Мб;
👉 Спустя 30 дней с момента последнего запуска App Clip автоматически удаляется с устройства;
👉 Из App Clip можно скачать полную версию приложения, а самим App Clip можно поделиться через соцсети;
👉 Вы можете добавить App Clip таргет в обычный Flutter-проект или в интегрированный в нативное приложение Flutter-модуль;
👉 Настройка поддержки App Clip возможна только через Xcode. Нужно будет добавить новый таргет, активировать схему, внести изменения в конфигурацию сборки и настроить связку с доменом;
⚠️ Не забудьте отключить Bitcode в настройках App Clip таргета!
flutter attach пока не умеет подключаться к App Clip сессии самостоятельно, но это можно сделать вручную из терминала.

📌 Подробная инструкция в статье «Adding an iOS App Clip target».
#документация
Релиз iOS 14 принёс некоторые проблемы с которыми вы можете столкнуться в процессе разработки на Flutter.

👉 На физических устройствах с iOS 14 команда flutter run не работает на версиях Flutter до 1.20.4;

👉 Чтобы избежать ложных показов Clipboard Notifications при использовании текстовых полей на iOS, придётся обновиться до Flutter 1.20.4;

👉 Проблема с отрисовкой шрифта San Francisco, который является стандартным для Cupertino виджетов, решена только в версии Flutter 1.22;

👉 Из-за изменений в политике безопасности в iOS 14, каждому приложению для дебага нужно дать разрешение на работу с локальной сетью. Иначе Hot Reload и DevTools работать не будут;

👉 На физических устройствах с iOS 14 запуск дебаг версии приложения без подключенного дебаггера теперь невозможен. Это значит, что установив дебаг версию, вы не сможете запустить это приложение тапом по иконке, переходом по уведомлению или через Deep Link. Интегрированные Flutter-модули также будут экстренно завершаться с ошибкой при запуске приложения перечисленными способами.

📌Подробнее в статье «Developing for iOS 14»
#документация
Любой труд должен быть вознаграждён. Если у вас есть небольшое полезное приложение, но о монетизации его вы ещё не задумывались, самое время это исправить. Google AdMob для Flutter поможет с помощью ненавязчивой рекламы получать небольшой доход от вашего творения.

Чтобы настроить AdMob — выполните несколько простых шагов:

👉 Зарегистрируйтесь на AdMob и создайте App ID для вашего приложения;

👉 Подключите в pubspec.yaml зависимость firebase_admob;

👉 Для Android включите в AndroidManifest.xml данные App ID, добавив
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ваш_App_ID"/>;

👉 Для iOS добавьте в Info.plist данные App ID:
<key>GADApplicationIdentifier</key>
<string>ваш_App_ID</string>

👉 Интегрируйте Firebase в приложение, следуя инструкции https://firebase.flutter.dev/docs/overview, если ещё этого не сделали;

👉 Создайте и используйте рекламные вставки в самом приложении с помощью BannerAd или InterstitialAd.

📌 Подробнее в статье от Dulanka Karunasena.
К архитектуре, построенной на Bloc, можно относиться по разному: кто-то от неё в восторге, а кому-то она не нравится. Но кто будет спорить с тем, что для Flutter комьюнити она уже стала знаковой?

На днях библиотеке Bloc от Felix Angelov исполнилось 2 года. 🎉

📌О том, каким был путь от первого коммита до Flutter Favorite с 5700 звёздочек на GitHub — почитайте в статье от автора этой библиотеки Felix Angelov.
#новости
👍1
Любите порядок во всём и хотите, чтобы даже логи в приложении ходили строем с флагами и гимнами? У меня есть решение — попробуйте библиотеку Logger от Simon Leier.

Этот простой в использовании логгер позволит выводить красивые и легкочитаемые сообщения в консоль. В этой библиотеке есть ещё один интересный режим — вызов LogConsole.open(context) откроет экран с логами прямо на устройстве. Или же, для открытия этого экрана, телефон можно просто потрясти 📳.
#библиотека
Надоело держать на компьютере множество эмуляторов, чтобы проверять как приложение выглядит на разных устройствах?

Библиотека Device Preview for Flutter от Aloïs Deniel избавит от такой необходимости. Она предоставляет виджет DevicePreview, который выглядит как реальное устройство с запущенным на нём приложением. Удобнее всего будет работать с этим виджетом на планшете или его эмуляторе.

Гибкие настройки, позволят:

👉 На лету переключать множество доступных вариантов Android и iOS устройств;
👉 Задавать кастомные настройки высоты и ширины устройства;
👉 Менять ориентацию устройства;
👉 Менять настройки языка, темную/светлую тему, скейлинг текста;
👉 Делать скриншоты экрана.
#библиотека
Этот канал посвящен Flutter, но в этом посте речь про Dart — язык без которого Flutter не был бы таким, каким мы его знаем и любим.

А у Dart сегодня, ни много ни мало 9-ый День Рождения!!! 🎉🎉🎉

Так что, с Днем Рождения, Dart! Расти большой, не стань «лапшой»! 😜