Смотрите на классную анимацию и вроде к ней не подкопаться, но не покидает чувство, что какая-то она «не настоящая»? Чаще всего объяснение довольно простое — ваша анимация линейная, а в нашем мире почти не существует линейных процессов. Здесь на помощь и приходят кривые плавности или Easing Curves. Это кривые, описывающие каким образом должна изменяться анимация со временем: ускориться, замедлиться или даже инвертироваться.
👉 Имеются во Flutter из коробки;
👉 Множество встроенных стандартных кривых в классе Curves;
👉 Возможность самостоятельно описать кривую;
📌Подробнее о работе с кривыми плавности во Flutter читайте в статье от Gordon Hayes.
#статья
👉 Имеются во Flutter из коробки;
👉 Множество встроенных стандартных кривых в классе Curves;
👉 Возможность самостоятельно описать кривую;
📌Подробнее о работе с кривыми плавности во Flutter читайте в статье от Gordon Hayes.
#статья
12 ноября в 18:00 Иннополис и Surf проведут Flutter meetup
🎙Спикеры и эксперты:
— Андрей Савостьянов, Flutter dev, Surf
— Илья Вирник, TeamLead команды Flutter-разработки, Яндекс.Такси
— Евгений Сатуров, Flutter-TeamLead, Surf
— Сергей Кольцов, Flutter-разработчик, Яндекс.Такси
👉На митапе:
— Dependency Injection для Dart и Flutter проектов
— как сделать его декларативным (самогенерируемым) и при этом сохранить человеко-читабельность
— как подменить компоненты при тестировании
— как изолируются моки от production-кода
📌 Подробности и регистрация на странице мероприятия
#события
🎙Спикеры и эксперты:
— Андрей Савостьянов, Flutter dev, Surf
— Илья Вирник, TeamLead команды Flutter-разработки, Яндекс.Такси
— Евгений Сатуров, Flutter-TeamLead, Surf
— Сергей Кольцов, Flutter-разработчик, Яндекс.Такси
👉На митапе:
— Dependency Injection для Dart и Flutter проектов
— как сделать его декларативным (самогенерируемым) и при этом сохранить человеко-читабельность
— как подменить компоненты при тестировании
— как изолируются моки от production-кода
📌 Подробности и регистрация на странице мероприятия
#события
Последнее обновление Flutter принесло нам очень полезную утилиту — App Size Tool, которая позволяет проанализировать размер артефакта, собранного под любую платформу. Для того, чтобы просмотреть информацию о размере необходимо предварительно сгенерировать специальный файл при помощи команды
flutter build <your target platform> --analyze-size
На выходе мы получим build/<artifact_type>-code-size-analysis_<##>.json, который и хранит необходимую информацию: размер файлов Dart-кода, файлов нативного кода, ресурсов (графика, шрифты, прочие файлы).
Раздел App Size в DevTools помогает легко найти проблемы с размером сборки.
👉 Вывод подробной информации по различным частям приложения;
👉 Просмотр информации в виде дерева или таблицы;
👉 Сравнение двух отчётов, собранных с разных сборок.
📌 Подробная работа с инструментом описана в документации Flutter.
#документация
flutter build <your target platform> --analyze-size
На выходе мы получим build/<artifact_type>-code-size-analysis_<##>.json, который и хранит необходимую информацию: размер файлов Dart-кода, файлов нативного кода, ресурсов (графика, шрифты, прочие файлы).
Раздел App Size в DevTools помогает легко найти проблемы с размером сборки.
👉 Вывод подробной информации по различным частям приложения;
👉 Просмотр информации в виде дерева или таблицы;
👉 Сравнение двух отчётов, собранных с разных сборок.
📌 Подробная работа с инструментом описана в документации Flutter.
#документация
Любой Flutter-разработчик рано или поздно сталкивается с ошибками во время построения макета: различные overflow, unbounded error и многие другие. Если ошибки в логике отлаживать привычно и понятно, то что делать с этими?
Во Flutter есть удобный инструмент — Flutter Inspector, который позволяет:
👉 Просмотреть дерево виджетов;
👉 Подробно изучить свойства каждого из виджетов;
👉 Отобразить границы виджетов;
👉 Выделять узлы и перемещаться по дереву;
👉 Воспользоваться Layout Explorer, который построит структуру выделенного макета;
📌Как работать с Flutter Inspector и с его помощью решать популярные проблемы в статье от Katie Lee.
Во Flutter есть удобный инструмент — Flutter Inspector, который позволяет:
👉 Просмотреть дерево виджетов;
👉 Подробно изучить свойства каждого из виджетов;
👉 Отобразить границы виджетов;
👉 Выделять узлы и перемещаться по дереву;
👉 Воспользоваться Layout Explorer, который построит структуру выделенного макета;
📌Как работать с Flutter Inspector и с его помощью решать популярные проблемы в статье от Katie Lee.
Качественное мобильное приложение должно быть производительным. Плавность UI — залог хорошего пользовательского опыта. Этому не должны мешать подкапотные процессы: тяжелые операции и вычисления. Flutter использует язык Dart, который по концепции является однопоточным, поэтому нам следует обратиться к другим инструментам. Здесь нас и выручают изоляты.
👉 Изолированный процесс исполнения некоторого Dart кода;
👉 Обладает собственной областью памяти;
👉 Использует собственный event loop;
👉 Может общаться с другими изолятами путем передачи сообщений.
📌 О том, как работать с изолятами во Flutter читайте в статье Utkarsh Sharma.
#статья
👉 Изолированный процесс исполнения некоторого Dart кода;
👉 Обладает собственной областью памяти;
👉 Использует собственный event loop;
👉 Может общаться с другими изолятами путем передачи сообщений.
📌 О том, как работать с изолятами во Flutter читайте в статье Utkarsh Sharma.
#статья
Связать мобильное приложение с веб-ресурсом можно через один из множества сервисов. Один из них Branch.io.
Через этот сервис можно проассоциировать URL веб-страниц вашего сервиса с приложением, чтобы открывать его при переходе по соответствующим ссылкам.
Важно: редирект в приложение произойдёт только в том случае, если оно уже установлено на устройстве.
📌 О том, как настроить использование Deep Links во Flutter приложении в статье от Jaimil Patel.
#статья
Через этот сервис можно проассоциировать URL веб-страниц вашего сервиса с приложением, чтобы открывать его при переходе по соответствующим ссылкам.
Важно: редирект в приложение произойдёт только в том случае, если оно уже установлено на устройстве.
📌 О том, как настроить использование Deep Links во Flutter приложении в статье от Jaimil Patel.
#статья
С минуты на минуту начнётся ещё одно мероприятие, на этот раз целиком посвященное Flutter. Большая и по-настоящему нордическая конференция Flutter Vikings пройдёт с 17 по 19 ноября.
Вас ждёт:
👉 🇫reyja
👉 🇱oki
👉 🇺llr
👉 🇹hor
👉 🇹uisto
👉 🇪ir
👉 🇷indr
Много Flutter🔥
Смотрите на сайте мероприятия
#события
Вас ждёт:
👉 🇫reyja
👉 🇱oki
👉 🇺llr
👉 🇹hor
👉 🇹uisto
👉 🇪ir
👉 🇷indr
Много Flutter🔥
Смотрите на сайте мероприятия
#события
Сейчас во Flutter существует сразу несколько популярных архитектур, с помощью которых строятся приложения. Одна из них — Redux. В основе лежит несколько правил:
👉 всё состояние приложения хранится только в одном месте — store;
👉 состояние (state) доступно только для чтения;
👉 для изменения состояния необходимо осуществить действие (action), которое породит новое состояние;
👉 изменения производятся с помощью чистых функций.
📌 О том, как можно приготовить Redux для Flutter в статье Paulina Szklarska.
#статья
👉 всё состояние приложения хранится только в одном месте — store;
👉 состояние (state) доступно только для чтения;
👉 для изменения состояния необходимо осуществить действие (action), которое породит новое состояние;
👉 изменения производятся с помощью чистых функций.
📌 О том, как можно приготовить Redux для Flutter в статье Paulina Szklarska.
#статья
4-5 декабря в четвёртый раз пройдёт конференция русскоязычного сообщества Dart и Flutter разработчиков DartUP 2020. В этом году — онлайн. Спикеры из Google, Wrike, Yandex, EPAM и др. Я и мой коллега Женя Сатуров тоже в программе.
👉Будет два потока докладов по Dart и Flutter: один на русском, другой на английском.
Онлайн-формат позволяет не обращать внимание на границы, часовые пояса и трудности с логистикой, поэтому организаторы приглашают самых интересных спикеров из разных уголков мира, которые поделятся практическим опытом и новостями об экосистеме Dart.
Несмотря на онлайн, организаторы обещают сохранить тёплую и неформальную атмосферу предыдущих «дартапов» и доброжелательный дух сообщества.
Вас ждёт много новых форматов, а не просто «говорящие головы» три часа подряд.
✅Регистрация бесплатная на сайте Dartup.ru.
#события
👉Будет два потока докладов по Dart и Flutter: один на русском, другой на английском.
Онлайн-формат позволяет не обращать внимание на границы, часовые пояса и трудности с логистикой, поэтому организаторы приглашают самых интересных спикеров из разных уголков мира, которые поделятся практическим опытом и новостями об экосистеме Dart.
Несмотря на онлайн, организаторы обещают сохранить тёплую и неформальную атмосферу предыдущих «дартапов» и доброжелательный дух сообщества.
Вас ждёт много новых форматов, а не просто «говорящие головы» три часа подряд.
✅Регистрация бесплатная на сайте Dartup.ru.
#события
Для показа сообщений пользователю довольно часто используется SnackBar. До текущего момента, взаимодействие с ним осуществлялось через Scaffold с использованием BuildContext. У подобного подхода есть ряд недостатков, которые могут привести к ошибкам:
👉 SnackBar привязан к конкретному Scaffold, а значит будет скрыт при уходе с экрана;
👉 при обращении к SnackBar из асинхронной операции, мы можем получить ошибки, если Scaffold более не валиден и удален.
Данные проблемы призван решить ScaffoldMessenger, который можно получить из MaterialApp. Управление SnackBar теперь можно осуществлять с его помощью. Пока только в версиях Flutter 1.23.0-13.0.pre. Ждём в stable.
📌 Это breaking change. О том как осуществить миграцию читайте в документации Flutter.
#документация #breaking_changes
👉 SnackBar привязан к конкретному Scaffold, а значит будет скрыт при уходе с экрана;
👉 при обращении к SnackBar из асинхронной операции, мы можем получить ошибки, если Scaffold более не валиден и удален.
Данные проблемы призван решить ScaffoldMessenger, который можно получить из MaterialApp. Управление SnackBar теперь можно осуществлять с его помощью. Пока только в версиях Flutter 1.23.0-13.0.pre. Ждём в stable.
📌 Это breaking change. О том как осуществить миграцию читайте в документации Flutter.
#документация #breaking_changes
Театр начинается с вешалки, а приложение с загрузочного экрана. Он необходим нам в целом ряде случаев:
👉 мы хотим сделать старт нашего приложения узнаваемым или продемонстрировать бренд;
👉 обеспечить стильный переход к контенту;
👉 замаскировать некоторые подкапотные процессы, например предзагрузку данных.
📌 О том, как реализовать Splash Screen для Flutter приложения читайте в статье Diego Velasquez.
#статья
👉 мы хотим сделать старт нашего приложения узнаваемым или продемонстрировать бренд;
👉 обеспечить стильный переход к контенту;
👉 замаскировать некоторые подкапотные процессы, например предзагрузку данных.
📌 О том, как реализовать Splash Screen для Flutter приложения читайте в статье Diego Velasquez.
#статья
Недавно анонсировали переход null safety для Dart и Flutter в Beta. Это последний шаг перед релизом фичи в начале 2021 года.
Вот что важно знать про null safety уже сейчас:
👉 Non-nullable значения переменных по-умолчанию;
👉 Обратная совместимость: вы сами решите что и когда перевести на данный режим, даже в одном проекте сможете использовать оба режима;
👉 Оптимизированный код не только более надёжный с точки зрения кода, но и улучшенный на уровне компиляции, более производительный в исполнении, бинарные файлы меньшего размера.
📌 О том, как обеспечить переход к null safety коду в статье-анонсе от Michael Thomsen.
#статья
Вот что важно знать про null safety уже сейчас:
👉 Non-nullable значения переменных по-умолчанию;
👉 Обратная совместимость: вы сами решите что и когда перевести на данный режим, даже в одном проекте сможете использовать оба режима;
👉 Оптимизированный код не только более надёжный с точки зрения кода, но и улучшенный на уровне компиляции, более производительный в исполнении, бинарные файлы меньшего размера.
📌 О том, как обеспечить переход к null safety коду в статье-анонсе от Michael Thomsen.
#статья
Судя по всему, переход на null safety пройдёт безболезненно не у всех. Поддержка null safety для Mockito принесла в библиотеку серьёзные изменения.
Mockito — популярная библиотека для мокирования объектов, использующаяся при написании модульных тестов. Изменения null safety сломали целый ряд механизмов, на которых строилась работа этой библиотеки:
👉 Сопоставление аргументов при проверке;
👉 Возвращаемые значения из моков.
Разработчики нашли несколько возможных решений этих проблем:
👉 Использование кодогенерации для создания моков;
👉 Ручное переопределение всех публичных методов, возвращающих non-nullable или использующих их в качестве параметров.
📌 Подробнее о предложенных подходах можно прочитать в специальном readme библиотеки.
#breaking_changes
Mockito — популярная библиотека для мокирования объектов, использующаяся при написании модульных тестов. Изменения null safety сломали целый ряд механизмов, на которых строилась работа этой библиотеки:
👉 Сопоставление аргументов при проверке;
👉 Возвращаемые значения из моков.
Разработчики нашли несколько возможных решений этих проблем:
👉 Использование кодогенерации для создания моков;
👉 Ручное переопределение всех публичных методов, возвращающих non-nullable или использующих их в качестве параметров.
📌 Подробнее о предложенных подходах можно прочитать в специальном readme библиотеки.
#breaking_changes
Стартовал очередной квартальный опрос от команды Flutter, который продлится до 30 ноября 2020.
С помощью данных опросов команда Fluter собирает актуальный фидбек о работе фреймворка и выбирает направления развития.
📌 Вы можете лично поучаствовать в улучшении Flutter и пройти опрос по ссылке
С помощью данных опросов команда Fluter собирает актуальный фидбек о работе фреймворка и выбирает направления развития.
📌 Вы можете лично поучаствовать в улучшении Flutter и пройти опрос по ссылке
Surf собирает идеи для развития Open Source.
Я и мои коллеги из Surf больше года назад запустили проект SurfGear. SurfGear — это open source набор библиотек, стандартов, инструментов для разработки на Flutter.
Мы с коллегами участвуем в развитии Flutter-сообщества и приглашаем вас присоединиться к этому.
👉 Давайте вместе подумаем, что мы можем сделать для мира Flutter-разработки.
Присылайте любые ваши идеи: как улучшить работу с фрейморком? чего не хватает, какие боли хотите решить? как сделать проще и лучше? и любые другие предложение.
🌐 Сбор идей для Open Source проводим в рамках DartUP 2020. Surf — партнёр мероприятия.
Пять лучших реализуем в рамках проекта SurfGear.
✅ Ждём ваши предложения и заявки на код-ревью. Подробности👇
https://dartup.surf.ru/
#события
Я и мои коллеги из Surf больше года назад запустили проект SurfGear. SurfGear — это open source набор библиотек, стандартов, инструментов для разработки на Flutter.
Мы с коллегами участвуем в развитии Flutter-сообщества и приглашаем вас присоединиться к этому.
👉 Давайте вместе подумаем, что мы можем сделать для мира Flutter-разработки.
Присылайте любые ваши идеи: как улучшить работу с фрейморком? чего не хватает, какие боли хотите решить? как сделать проще и лучше? и любые другие предложение.
🌐 Сбор идей для Open Source проводим в рамках DartUP 2020. Surf — партнёр мероприятия.
Пять лучших реализуем в рамках проекта SurfGear.
✅ Ждём ваши предложения и заявки на код-ревью. Подробности👇
https://dartup.surf.ru/
#события
Во многих современных приложениях важную роль играют пуш-уведомления. Для работы с ними во Flutter можно использовать Firebase Cloud Messaging. Плохая новость для тех, кто хочет использовать сервис в связке с Flutter Web: «Web is currently not supported. See the FlutterFire roadmap».
Но не спешите расстраиваться. До выхода официальной поддержки можно воспользоваться решением от Felix Hope для интеграции Firebase Cloud Messaging и Flutter Web.
📌 Подробнее познакомиться с этим решением в статье.
#статья
Но не спешите расстраиваться. До выхода официальной поддержки можно воспользоваться решением от Felix Hope для интеграции Firebase Cloud Messaging и Flutter Web.
📌 Подробнее познакомиться с этим решением в статье.
#статья
Ещё одна приятная новость для тех, кому уже не терпится использовать в своих Web-приложениях Flutter. На днях была добавлена поддержка Cloud Storage для Web.
Теперь для того, чтобы воспользоваться всеми удобствами облачного хранилища, необходимо всего лишь добавить строку
<noscript src="https://www.gstatic.com/firebasejs/7.20.0/firebase-storage.js"></noscript>
в index.html файл вашего приложения.
📌 Подробнее о подключении и использовании Cloud Storage в официальной документации.
#документация
Теперь для того, чтобы воспользоваться всеми удобствами облачного хранилища, необходимо всего лишь добавить строку
<noscript src="https://www.gstatic.com/firebasejs/7.20.0/firebase-storage.js"></noscript>
в index.html файл вашего приложения.
📌 Подробнее о подключении и использовании Cloud Storage в официальной документации.
#документация
Падения могут испортить любое приложение, поэтому с ними надо нещадно бороться. Для этого нам нужны различные инструменты, например, Sentry.
Это инструмент мониторинга ошибок, у которого множество плюсов:
👉 Легко интегрируется в проект;
👉 Позволяет быстро и удобно находить причины ошибок;
👉 Абсолютно бесплатный;
👉 Поддерживает множество языков и технологий, в том числе, буквально на днях, была добавлена поддержка Flutter.
📌 Познакомиться с возможностями сервиса можно на сайте.
Библиотека по ссылке
#библиотека
Это инструмент мониторинга ошибок, у которого множество плюсов:
👉 Легко интегрируется в проект;
👉 Позволяет быстро и удобно находить причины ошибок;
👉 Абсолютно бесплатный;
👉 Поддерживает множество языков и технологий, в том числе, буквально на днях, была добавлена поддержка Flutter.
📌 Познакомиться с возможностями сервиса можно на сайте.
Библиотека по ссылке
#библиотека
Продолжаем ежемесячную подборку самого важного в мире Flutter. Давайте вспомним, чем же порадовал нас ноябрь.
👉 с 11 по 14 ноября прошел Mobius 2020 с внушительным количеством докладов, посвященных Flutter;
👉 с 17 по 19 ноября прошел Flutter Vikings;
👉 команда Google провела опрос за четвертый квартал 2020 года;
👉 анонс Beta null safety Dart.
Самый популярный пост месяца:
❤️ Flutter App Size Tool
#главное
👉 с 11 по 14 ноября прошел Mobius 2020 с внушительным количеством докладов, посвященных Flutter;
👉 с 17 по 19 ноября прошел Flutter Vikings;
👉 команда Google провела опрос за четвертый квартал 2020 года;
👉 анонс Beta null safety Dart.
Самый популярный пост месяца:
❤️ Flutter App Size Tool
#главное
Сегодня и завтра DartUp 2020.
В этом году организаторы и партнёры приготовили много интересного:
📌Что будет?
— Трансляция докладов на русском
— Трансляция на английском
— Можно сразиться в бою 1 на 1 с соперником, решая алгоритмические задачки на Dart и JS:
— Принять участие в розыгрыше ссылка
— Предложить идею для Open Source и код-ревью — по ссылке
Ну и приглашаю сегодня на свой доклад:
📌13:00 — Миша Зотьев, Flutter под капотом
#события
В этом году организаторы и партнёры приготовили много интересного:
📌Что будет?
— Трансляция докладов на русском
— Трансляция на английском
— Можно сразиться в бою 1 на 1 с соперником, решая алгоритмические задачки на Dart и JS:
— Принять участие в розыгрыше ссылка
— Предложить идею для Open Source и код-ревью — по ссылке
Ну и приглашаю сегодня на свой доклад:
📌13:00 — Миша Зотьев, Flutter под капотом
#события
4 и 5 декабря прошла одна из самых важных Flutter и Dart конференций в России — DartUP. Я принимал участие в ней и хочу поделиться своими впечатлениями.
Несомненно было много интересных докладов и других активностей, ознакомиться с которыми вы сможете в записи, если вдруг пропустили. Но больше всего меня порадовало даже не это. Поскольку из-за covid-19 в этом году большинство мероприятий прошло онлайн, лично мне в них не хватало именно общения. У DartUP получилось это исправить! Формат проведения в spatial.chat дал возможность почувствовать себя на полноценной привычной офлайн конференции, при этом сохранив все плюсы онлайн формата.
🚅 Будущее где-то рядом!
А вы были на конференции? Как впечатления?
👉 Го в комменты
Несомненно было много интересных докладов и других активностей, ознакомиться с которыми вы сможете в записи, если вдруг пропустили. Но больше всего меня порадовало даже не это. Поскольку из-за covid-19 в этом году большинство мероприятий прошло онлайн, лично мне в них не хватало именно общения. У DartUP получилось это исправить! Формат проведения в spatial.chat дал возможность почувствовать себя на полноценной привычной офлайн конференции, при этом сохранив все плюсы онлайн формата.
🚅 Будущее где-то рядом!
А вы были на конференции? Как впечатления?
👉 Го в комменты