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

Автор канала - Михаил Зотьев (@mbixjkee).
Download Telegram
Быстрая скорость работы - ключевой принцип, которого старается придерживаться Flutter. В этом направлении постоянно ведутся работы и обновления, как командой Flutter, так и энтузиастами из комьюнити.
Недавно команда Flutter подвела итоги этой работы за первую половину 2020 года:

👉dart2js tools 9x ускорение работы и 99+% оптимизация работы с памятью;
👉улучшение средней скорости рендеринга iOS до 50% при переходе с OpenGL на Metal (про остальные радости, которые принес нам Metal, не будем вспоминать 🙈);
👉оптимизация в 2-5 раз от наихудшего времени подготовки кадра, вызванного компиляцией шейдеров;
👉35–65% ускорение работы async/sync*.

📌Все эти, а также многие другие оптимизации, в статье Yuqian Li и Shams Zakhour.
#статья
Тестирование приложения - важная часть процесса разработки. Когда вы уже некоторое время пишите тесты, вряд ли вы находите в этом проблему. Но вспомните свой первый опыт написания тестов:

Что именно тестировать?
Как правильно писать тесты?
Как писать код, который можно тестировать?

📌 Чтобы не искать ответы на эти и другие вопросы о тестировании, ознакомьтесь с гайдом написания тестов от компании Very Good Ventures.

#статья #тестирование
Если пользователь может оценить приложение лишь по визуальной составляющей и удобству, то у разработчика есть как минимум еще одна мера - насколько приложение удобно поддерживать, улучшать. Чтобы не покрываться холодным потом при фразе: «У нас новая фича», приложение нужно писать с чистой и масштабируемой архитектурой. Какие же признаки у такой архитектуры:

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

📌 Как добиться подобного результата, читайте в статье от Scarlett Wardrop, при участии Felix Angelov и Jorge Coca.

#статья
С момента анонса события Flutter Engage, у всех было множество предположений, что же мы может там увидеть. Недавно на официальном сайте появилось расписание эвента. Нас ожидает:

👉 Круглый стол с командой лидов Flutter, которым вы можете задать вопросы в Twitter с помощью тега #AskFlutter;
👉 Доклад «From Mobile App to Web App» от John Ryan и Mariam Hasnany;
👉 Доклад «Migrating a Package to null safety» от Leaf Petersen;
👉 Доклад «The little things: Becoming the mythical designer-developer» от Filip Hracek;
👉 Доклад «Monetizing a Flutter app» от Andrew Brogdon и Zoey Fan;

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

#события
В течение этой недели, я попробую для себя немного необычный формат — буду вести твиттер mobileunderhood. В нём я буду делиться своими мыслями на различные темы. В планах обсудить:

👉 Естественно, Dart и Flutter;
👉 Разработку в целом;
👉 Командную работу, или как Я превращается в Мы;
👉 Шаринг знаний;
👉 И в целом просто пообщаться.

Так что приглашаю присоединиться всех желающих ✌️

#события
Если вы давно хотели начать покрывать свои приложения тестами, но не знаете как, а разбираться в этом самостоятельно нет времени, то нужно найти того, кто умеет это делать и может научить вас. Формат курсов здесь подойдет как нельзя лучше. Особенно если они бесплатные. Very Good Ventures запустили 3 недельный курс, посвященный тестированию Flutter приложений.

📌 Подробнее читайте в статье.

#тестирование #статья
Когда говорят про кросс-платформенные приложения на Flutter, обычно имеют в виду iOS и Android. Но ведь возможности фреймворка этим не ограничиваются — можно собирать десктопные приложения и делать веб-сайты.

Мой коллега по Surf, Андрей Савостьянов завтра проводит бесплатный вебинар по мультиплатформенности Flutter. Андрей возьмёт UI-кит игры Cyberpunk 2077 и на его основе соберёт небольшое приложение для веба, iOS, Android и desktop.

Wake up Samurai, будет интересно! В прямом эфире увидим всю мощь Flutter 💪 и возможность сборки единого кода под разные платформы.

📌 Зарегистрироваться можно по ссылке.

#анонс
Вышел очередной выпуск Flutter Dev Podcast. На этот раз в гостях побывали ребята из Яндекс и поделились своим опытом использования Flutter.

Что же вы услышите в этом выпуске:
👉 какое применение можно найти для Flutter, если ваши флагманские нативные приложения никто не собирается переписывать;
👉 состояние Flutter for Web и текущие риски использования;
👉 проблемы интеграции Flutter-модулей с нативными приложениями;
👉 любят ли в Яндекс.Драйве язык Dart и почему нет.

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

#подкасты
Команда Flutter, похоже, легко может написать сценарий к хорошему фильму или сериалу, ведь держать интригу и добавлять неожиданные повороты ребята умеют.
Казалось бы, совсем недавно они анонсировали программу Flutter Engage, и вот уже пост в твиттер, в котором они намекают на Flutter 2? 😯

А что вы думаете, про это:
👉 маркетинговый кликбейт или все же нас ждут ломающие изменения;
👉 может быть на Engage будет только анонс, ведь предпосылок для целой цифры 2 в репозитории все же не наблюдается;
👉 а может изменения в самой части engine, и мы увидим новые подходы, которые исправят текущие проблемы на ios?

Узнаем уже меньше чем через неделю, а пока предположения в комментариях приветствуются 👍

#анонс
Рубрику с главными новостями преследует какой-то злой рок, на этот раз она задержалась, потому что я заболел. Но 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, бывает нужно добавить вариант оплаты с помощью банковской карты. Чтобы не тратить время на реализацию отображения карты, можно воспользоваться готовым пакетом, который возьмет на себя эту задачу:

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

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

#библиотека