Даже если вы еще совсем-совсем джун, то рано или поздно этот момент в вашей жизни наступит - вы возьмете в одну руку приложение, во вторую профайлер и будете долго с умным видом смотреть на графики на экране. А что уж говорить, если вы самостоятельная единица или даже лид - тогда процесс профилирования для вас неотъемлемая часть разработки. Но даже в таком случае, всегда есть чему поучиться, особенно если учитель сам Filip Hracek. В своей статье Filip разобрал процесс поиска точек оптимизации приложения на примере FlutterFolio, который был сделан для Flutter Engage.
📌Статья получилась весьма интересная, рекомендую 👍
#статья
📌Статья получилась весьма интересная, рекомендую 👍
#статья
Наконец то вышла новая версия Flutter 2.5, и это получился довольно значимый релиз. По утверждениям разработчиков, он на втором месте по массивности, если опираться на статистику. И принес он на самом деле довольно многое:
👉 прогрев шейдеров на Metal теперь в stable;
👉 улучшения работы GC;
👉 конечно же новую версию Dart;
👉 поддержка режима full screen Android;
👉 Material You;
👉 шорткаты редактирования текста;
👉 множество улучшений плагинов;
👉 обновление DevTools;
📌Ознакомиться подробнее можно в статье-анонсе от Chris Sells.
#обновление
👉 прогрев шейдеров на Metal теперь в stable;
👉 улучшения работы GC;
👉 конечно же новую версию Dart;
👉 поддержка режима full screen Android;
👉 Material You;
👉 шорткаты редактирования текста;
👉 множество улучшений плагинов;
👉 обновление DevTools;
📌Ознакомиться подробнее можно в статье-анонсе от Chris Sells.
#обновление
Вместе с новой версией Flutter, нам досталась еще и новая версия Dart. Что же принес нам этот релиз:
👉 поддержка Apple Silicon для Dart SDK;
👉 оптимизации форматирования кода с каскадным оператором;
👉 .pubignore файл, содержащий список того, что не должно выложиться в pub;
👉 добавлен оператор triple shift (>>>) для выполнения беззнакового сдвига;
👉 убрано ограничение, запрещающее использование дженерик типов функций в качестве аргументов этой функции.
📌С полным списком можно ознакомиться в статье-анонсе от Michael Thomsen.
#обновление
👉 поддержка Apple Silicon для Dart SDK;
👉 оптимизации форматирования кода с каскадным оператором;
👉 .pubignore файл, содержащий список того, что не должно выложиться в pub;
👉 добавлен оператор triple shift (>>>) для выполнения беззнакового сдвига;
👉 убрано ограничение, запрещающее использование дженерик типов функций в качестве аргументов этой функции.
📌С полным списком можно ознакомиться в статье-анонсе от Michael Thomsen.
#обновление
Бывает нужно дать возможность пользователю выбирать сразу несколько элементов в списке. Для этого можно воспользоваться библиотекой multi_select_item. Она предоставляет виджет MultiSelectItem, который можно использовать в купе со стандартными списками.
❗Из минусов - до сих пор отсутствует поддержка NullSafety.
📌 Воспользоваться библиотекой можно по ссылке.
#библиотека
❗Из минусов - до сих пор отсутствует поддержка NullSafety.
📌 Воспользоваться библиотекой можно по ссылке.
#библиотека
Высокая оценка в сторах позитивно влияет на репутацию вашего приложения. Но не каждый пользователь хочет переходить в магазин и ставить оценку. А это значит им нужно помочь - дать возможность сделать это не уходя из приложения. А для того, чтобы сделать это максимально просто, можно воспользоваться библиотекой in_app_review. Она позволяет как выставить оценку сразу из приложения, так и отправить пользователя на нужную страницу магазина. Под капотом поддержка Android, iOS, MacOS и даже частично Windows.
📌 Воспользоваться библиотекой можно по ссылке.
#библиотека
📌 Воспользоваться библиотекой можно по ссылке.
#библиотека
Библиотека, которую мы в комментариях под одним из постов уже позитивно охарактеризовали - flutter_blurhash. Она позволяет использовать в качестве прелоадера изображение полученное сильным размытием исходного. В основе лежит сервис blurhash и его алгоритм, который позволяет сформировать из изображения короткую строку из 20-30 символов, которую можно использовать для отображения прелоадера.
У blurhash также есть собственное API, поэтому при наличии серверной части в приложении, можно использовать такой прелоадер даже для динамически подгружаемых изображений.
📌 Воспользоваться библиотекой можно по ссылке.
#библиотека
У blurhash также есть собственное API, поэтому при наличии серверной части в приложении, можно использовать такой прелоадер даже для динамически подгружаемых изображений.
📌 Воспользоваться библиотекой можно по ссылке.
#библиотека
Во Flutter из коробки очень много виджетов для различных целей. И пока мы ими пользуемся, нам не приходится задумываться об отрисовке - разработчики уже все сделали за нас. Но несмотря на это, в случае необходимости мы легко можем можем опуститься на этот уровень и отрисовать что-то самостоятельно. CustomPaint поможет в этом, будь это хоть малая композиция, хоть очень запутанная абстракция.
📌 Разобраться подробнее с тем, как пользоваться этим виджетом, поможет статья от Deven Joshi.
#статья
📌 Разобраться подробнее с тем, как пользоваться этим виджетом, поможет статья от Deven Joshi.
#статья
Flutter развивают одновременно для множества платформ, и если для Android и iOS это развитие происходит довольно долго, то тот же Web появился относительно недавно. И там еще нужно очень многие вещи сделать намного лучше, чем они есть сейчас. И команда Flutter ведет над этим работу. На днях PM Flutter опубликовала статью, в которой рассказала по каким направлениям для Web будут проводиться ближайшие улучшения:
👉 поддержка RTL текста;
👉 улучшения поведения скролла;
👉 лучшая поддержка функциональностей для людей с ограниченными возможностями;
👉 улучшения производительности.
Это и многое другое, в статье Mariam Hasnany.
#статья
👉 поддержка RTL текста;
👉 улучшения поведения скролла;
👉 лучшая поддержка функциональностей для людей с ограниченными возможностями;
👉 улучшения производительности.
Это и многое другое, в статье Mariam Hasnany.
#статья
16 октября в Воронеже состоится DevFest 2021 — ежегодная IT-конференция, которую организует Google Developers Group Voronezh.
На ней вас ждут:
🧑🎓 три потока лекций: для начинающих специалистов и профи;
🎁 розыгрыши призов от партнеров;
😁 много общения и хорошего настроения;
🔥 ну и конечно же Flutter.
Ребята во всю стараются сделать крутой фест, в принципе как у них всегда и получалось. Я сам стараюсь всегда на него попасть, а в этот раз выступлю с небольшим докладом.
Пока программа уточняется, вы уже можете купить билеты (пока по сниженной цене!). И, конечно, не забудьте забронировать в своём календаре 16 октября 😉
Увидимся на DevFest 🤙
На ней вас ждут:
🧑🎓 три потока лекций: для начинающих специалистов и профи;
🎁 розыгрыши призов от партнеров;
😁 много общения и хорошего настроения;
🔥 ну и конечно же Flutter.
Ребята во всю стараются сделать крутой фест, в принципе как у них всегда и получалось. Я сам стараюсь всегда на него попасть, а в этот раз выступлю с небольшим докладом.
Пока программа уточняется, вы уже можете купить билеты (пока по сниженной цене!). И, конечно, не забудьте забронировать в своём календаре 16 октября 😉
Увидимся на DevFest 🤙
Вместе с обновлением Flutter 2.5 стало доступно использование DevTools 2.6.0, и вот что добавили в этой версии:
👉 просмотр свойств наведением мыши в инспекторе;
👉 поддержка просмотра объекта и вычислений в консоли инспектора;
👉 ui улучшения отображения дерева и режимов работы;
👉 улучшения удобства работы с проверкой производительности;
👉 фильтрация для CPU профайлера;
👉 показ HTTP / HTTPS тела POST запроса.
📌 С полным списком можно ознакомиться по ссылке.
#обновление
👉 просмотр свойств наведением мыши в инспекторе;
👉 поддержка просмотра объекта и вычислений в консоли инспектора;
👉 ui улучшения отображения дерева и режимов работы;
👉 улучшения удобства работы с проверкой производительности;
👉 фильтрация для CPU профайлера;
👉 показ HTTP / HTTPS тела POST запроса.
📌 С полным списком можно ознакомиться по ссылке.
#обновление
Если вы соскучились по крутым офлайновым конференциям, то у меня для вас хорошие новости. Мы в Surf как раз собираемся замутить именно такую - Flutter Fest. Только интересные и полезные доклады. А если вы обожаете хардкор, то будет отдельная секция в которой его будет много.
А так же вы еще успеваете сами стать спикером, если у вас есть классный материал с которым готовы выступить.
Ну и самое главное: Flutter Fest — это интерактивная площадка для общения и обмена знаниями. Интересно будет и новичкам, и профессионалам Flutter-разработки.
🗓 Увидимся на Flutter Fest. Москва. 13 ноября. Офлайн.
📌 Подробности и билеты по ссылке.
А так же вы еще успеваете сами стать спикером, если у вас есть классный материал с которым готовы выступить.
Ну и самое главное: Flutter Fest — это интерактивная площадка для общения и обмена знаниями. Интересно будет и новичкам, и профессионалам Flutter-разработки.
🗓 Увидимся на Flutter Fest. Москва. 13 ноября. Офлайн.
📌 Подробности и билеты по ссылке.
Эта осень просто какая-то сумасшедшая на количество различных IT событий. Только вчера я вернулся с GDG Калининград devfest 2021, на котором выступал с докладом про одно из наших решений. Кстати конференция вышла просто отличная 👍 (немного фоток с нее можно найти в моем instagram).
И вот после четырехдневного путешествия я думал, что можно будет просто расслабиться, но нет - на носу крутой митап от EPAM и JUG RU GROUP. И там тоже будет много интересного, в том числе доклад Саши Денисова, который посвящен Flutter и Firebase. Так что расслабон отменяется, погнали смотреть на Flutter с огоньком. Тем более митап онлайн и бесплатный - так что зарегистрироваться еще можно успеть.
И вот после четырехдневного путешествия я думал, что можно будет просто расслабиться, но нет - на носу крутой митап от EPAM и JUG RU GROUP. И там тоже будет много интересного, в том числе доклад Саши Денисова, который посвящен Flutter и Firebase. Так что расслабон отменяется, погнали смотреть на Flutter с огоньком. Тем более митап онлайн и бесплатный - так что зарегистрироваться еще можно успеть.
Во Flutter уже некоторое время действует политика удаления устаревшего API, поэтому следует держать руку на пульсе, чтобы не оказаться в ситуации когда невозможно мигрировать на новую версию. Ну и готовиться к этому заранее. Благо флоу удаления предельно прозрачно, и уже сейчас мы знаем, чего лишимся в следующем релизе.
📌 Проверить не затронет ли вас следующий stable релиз можно по ссылке.
📌 Проверить не затронет ли вас следующий stable релиз можно по ссылке.
Совсем недавно вышла новая версия Bloc от Felix Angelov. Основные изменения в этой версии связаны с попыткой исправить проблему, порожденную поведением yield*, которое затрагивало предсказуемость возвращаемого состояния. Собственно решили они проблему довольно радикально и выкатили новое API работы с Bloc:
👉 mapEventToState заменили на on<Event>;
👉 EventTransformer пришел на смену transformEvents;
👉 новая библиотека bloc_concurrency с набором EventTransformer-ов.
Подробнее о изменениях, а также о том как мигрировать, читайте в статье от команды разработчиков Bloc.
#обновление
👉 mapEventToState заменили на on<Event>;
👉 EventTransformer пришел на смену transformEvents;
👉 новая библиотека bloc_concurrency с набором EventTransformer-ов.
Подробнее о изменениях, а также о том как мигрировать, читайте в статье от команды разработчиков Bloc.
#обновление
Для Flutter существует интересный проект под названием Flame. А интересен он в первую очередь тем, что направление его работы связано не с привычными задачами Flutter, а разработкой игр. Это 2D движок. А с чем рано или поздно сталкивается любой геймдев разработчик? Правильно, с поиском пути (иногда из геймдева 😄, но в основном) между точками по локации. Вариантов решения этой проблемы может быть множество, одним из которых является алгоритм A*.
📌 Пример решения этой задачи для Flutter и Flame, можно найти в статье от Christian Muehle.
#статья
📌 Пример решения этой задачи для Flutter и Flame, можно найти в статье от Christian Muehle.
#статья
Как всегда в начале месяца выходят обновления туллинга. Начнем с Flutter IntelliJ Plugin. В этом релизе добавили:
👉 возможность запустить конкретный тест из теста по вариантам;
👉 unit тесты больше не обязаны находиться в папке test, можно пометить другую папку как содержащую тесты;
👉 доступна настройка для того, чтобы считать тестами файлы с определенным суффиксом (возможность хранить тесты рядом с исходниками);
👉 новый шаблон проекта доступен в мастере нового проекта;
👉 автозапуск flutter pub get после изменения Flutter SDK в настройках;
👉 возможность включить hot reload при автосохранении;
👉 настройка для отображения stack trace в свернутом состоянии изначально.
Ознакомиться с более подробным списком можно по ссылке.
#обновление
👉 возможность запустить конкретный тест из теста по вариантам;
👉 unit тесты больше не обязаны находиться в папке test, можно пометить другую папку как содержащую тесты;
👉 доступна настройка для того, чтобы считать тестами файлы с определенным суффиксом (возможность хранить тесты рядом с исходниками);
👉 новый шаблон проекта доступен в мастере нового проекта;
👉 автозапуск flutter pub get после изменения Flutter SDK в настройках;
👉 возможность включить hot reload при автосохранении;
👉 настройка для отображения stack trace в свернутом состоянии изначально.
Ознакомиться с более подробным списком можно по ссылке.
#обновление
На очереди плагин Flutter для VSCode который также получил обновленную версию. В релизе:
👉 интеграция с новым VS Code Test Runner включена по умолчанию;
👉 группировка динамических тестов в дереве результатов тестирования;
👉 для упавших тестов добавлено раскрываемое окно с информацией о выполнении;
👉 оптимизации времени выполнения множественного запуска тестов;
👉 настройка renameFilesWithClasses, которая позволит переименовывать вместе с классом файл, в котором он находится и обновлять импорты;
👉 доступен новый шаблон Flutter проекта;
📌Ознакомиться с более подробным списком можно по ссылке.
#обновление
👉 интеграция с новым VS Code Test Runner включена по умолчанию;
👉 группировка динамических тестов в дереве результатов тестирования;
👉 для упавших тестов добавлено раскрываемое окно с информацией о выполнении;
👉 оптимизации времени выполнения множественного запуска тестов;
👉 настройка renameFilesWithClasses, которая позволит переименовывать вместе с классом файл, в котором он находится и обновлять импорты;
👉 доступен новый шаблон Flutter проекта;
📌Ознакомиться с более подробным списком можно по ссылке.
#обновление
Одна из лучших инвестиций - это инвестиция в свои знания. Flutter команда судя по всему считает так же, поэтому они организовали бесплатный доступ на ближайшие 3 месяца к книге Flutter Apprentice. Помимо доступа к самой книге, все это время будет работать онлайн дискуссионный клуб, в рамках которого можно будет обсуждать изучаемые темы.
Узнать подробнее можно по ссылке.
#анонс
Узнать подробнее можно по ссылке.
#анонс
Недавно вышло обновление Flutter IntelliJ Plugin, и в реализации этой версии было допущено сразу несколько ошибок, которые приводили к NPE при навигации. Сейчас они уже исправлены выходом двух патчей. Так что, если вы наблюдаете у себя подобную проблему, стоит обновиться до версии, содержащей исправления 🙃
Увы, не самые приятные новости. Пластмассовый мир победил 😔 - сразу несколько мероприятий, к проведению которых мы готовились этой осенью, будут перенесены на весну следующего года. Это FlutterFest и DevFest. Связан перенос с введением ограничений на массовые мероприятия и рекомендациями Роспотребнадзора.
Важная информация:
📌 Все купленные билеты останутся актуальными по тем же ценам на весну, не надо ничего переоформлять или покупать снова.
📌 Для тех, кто хочет вернуть билеты — возврат можно оформить через таймпад
📌 Онлайн вариант не вдохновляет, поэтому именно перенос.
Если остались вопросы — пишите Ане в телеграм @annatvil.
Важная информация:
📌 Все купленные билеты останутся актуальными по тем же ценам на весну, не надо ничего переоформлять или покупать снова.
📌 Для тех, кто хочет вернуть билеты — возврат можно оформить через таймпад
📌 Онлайн вариант не вдохновляет, поэтому именно перенос.
Если остались вопросы — пишите Ане в телеграм @annatvil.
В DartPad расширился список пакетов, которые можно использовать. Добавлены:
👉 bloc и flutter_bloc;
👉 cloud_firestore, firebase, firebase_auth, firebase_core;
👉 collection;
👉 google_fonts;
👉 http;
👉 intl;
👉 js;
👉 meta;
👉 provider;
👉 riverpod;
👉 url_launcher.
Узнать подробнее можно по ссылке.
#обновление
👉 bloc и flutter_bloc;
👉 cloud_firestore, firebase, firebase_auth, firebase_core;
👉 collection;
👉 google_fonts;
👉 http;
👉 intl;
👉 js;
👉 meta;
👉 provider;
👉 riverpod;
👉 url_launcher.
Узнать подробнее можно по ссылке.
#обновление