Pull to refresh
0
Google Developers
Build anything with Google

«Flutter клёвенький — у меня только такое объяснение». Обзор лучших выпусков Flutter Dev Podcast

Reading time7 min
Views4.4K
Привет! На связи Flutter Dev Podcast и его создатель и ведущий — Евгений Сатуров. 

Вместе с коллегами из Flutter-комьюнити мы делаем подкаст про Flutter. Первый эпизод вышел 29 января 2019 года. С тех пор каждый месяц мы приглашаем коллег из мира Flutter и других сфер IT: обсуждаем новости, события, технические нюансы, даём советы из боевого опыта — в общем, смотрим на Flutter с разных ракурсов.

Как и зачем мы делаем подкаст, я подробно рассказал на vc.ru. В этой статье я сделал обзор самых интересных и популярных эпизодов Flutter Dev Podcast.




Во Flutter я пришел из Android: узнал о новой технологии в кулуарах конференции от Звиада Кардавы, Developer Relations из Google Russia, который потом стал первым гостем нашего подкаста. Идея создать СМИ про Flutter возникла потому, что мы одни из первых в стране начали что-то делать на этом фреймворке: ниша была свободна. 

Flutter — это технология кроссплатформенной разработки приложений под iOS, Android, веб и десктоп от Google.

Flutter Dev Podcast я запустил с коллегой Артёмом Зайцевым — мы вместе работаем в Surf. На тот момент мы практически ничего не знали про Flutter, и, можно сказать, росли вместе с подкастом. Параллельно с подкастом развивали Flutter в Surf. Теперь у нас целый Flutter-отдел — в нём работает 13 человек. Мы с ребятами ведём публичный репозиторий SurfGear на GitHub, где выкладываем всякие полезности для разработки на Flutter: набор библиотек, стандартов, инструментов.

Спасибо Google и лично Екатерине Винниченко и Звиаду Кардаве за поддержку нашего подкаста и за приглашение сделать обзор выпусков в блоге Google. 

Выпуски Flutter Dev Podcast: от свежих к ранним




«Целая платформа для заработка всевозможных людей»


#19 Яндекс.Про

Геннадий Евстратов: «Глобальная цель — сделать громадного франкенштейна, в котором процент Flutter будет нарастать, нарастать, нарастать, и можно будет просто взять маленькой лопаточкой Android-код, вышвырнуть его и оставить просто Flutter-приложение».

Команда Flutter-разработчиков из Яндекса — постоянные гости подкаста. В ранних выпусках они рассказывали о Яндекс.Таксометре — это, кстати, тоже попало в наш обзор. Теперь Яндекс.Таксометр переродился в Яндекс.Про. iOS версия написана чисто на Flutter, а Android версия — это гибрид: чисто Flutter версия ещё не догнала функциональность Android версии, поэтому выкидывать её пока нельзя.

Гости из Яндекса рассказывают, почему и в каком виде проникает Flutter в проекты компании: фреймворк уже используют для отдельных модулей в Яндекс.Лавке, Яндекс.Такси, Яндекс.Go. Говорят о том, что мешает перейти целиком на Flutter прямо сейчас, какие проблемы вскрылись при работе с Fish Redux из-за масштабирования и через что нужно будет пройти разработчику, чтобы интегрировать Flutter в нативное приложение.





«Я много чем занимаюсь во Flutter-команде, но в первую очередь забочусь, чтобы внешние разработчики получали хороший опыт»


#17 Flutter Day 2020

Chris Sells: «Вы всегда можете написать нативный код в своём приложении или даже создать собственный плагин. Если вы напишете собственный плагин, и у нас такого нет, — пожалуйста, поделитесь им с миром. Именно так растёт экосистема Flutter».

Это во многом необычный выпуск: впервые часть подкаста мы вели на английском и впервые сделали онлайн-трансляцию на Youtube.

В гости к Flutter Dev Podcast пришёл Chris Sells — продакт менеджер из Google: вместе с Flutter-командой он занимается развитием Flutter. Обсудили разное: возможность одновременно дебажить на большом количестве устройств и эмуляторов, откуда появился Dash — символ Flutter, какие проблемы у Flutter-команды есть в режиме удалённой работы.

Chris рассказал, как будет внедряться Null safety и что сильнее всего влияет на архитектуру приложения (и это не выбор State management). Вы узнаете, будет ли во Flutter свой Jetpack, почему из ранних версий Dart убрали Reflection API и добавят ли его обратно, сделают ли поддержку data value объектов. Eщё ведущие обсудили с Chris компиляцию Flutter-приложений на процессоры Arm в новых устройствах от Apple, что мешает выпустить альфа-версию Flutter с поддержкой сборки приложений для Windows и Linux и будет ли во Flutter динамическая загрузка кода.





«Медиа — это тот тип активности человечества, где все постоянно идёт не так, как ты хочешь»


#16 Meduza

Борис Горячев: «Я встретил сопротивление, которое я всегда встречаю у нативных разработчиков. Когда они слышат что-то про кроссплатформу, они сразу встают в позу, говорят, что это отстой полный, что всё плохо работает, всё медленно и вообще отстой. У них аргументы примерно такие:
— А что если тебе надо будет показать вот это, вот это, вот это?
— Но нам не надо будет это показать. 
— Нет, а что если надо будет?
— Очень вряд ли. 
— Ну плохой перформанс! 
— Ну вроде как нет. 
— Нет, ну плохой, на нативе будет быстрее».

Новое приложение Meduza написано на Flutter с нуля. В 16 выпуске Flutter Dev Podcast CTO Meduza Борис Горячев рассказывает, зачем Meduza это надо. Начинаем с истоков: обсуждаем, почему в 2014 провалилась концепция mobile first, говорим про непростые отношения с нативными разработчиками, удивительный мир медиа-разработки, игры со шрифтами, тяготы работы с WebView и Backend Driven UI. А ещё Борис отвечает на претензии Артемия Лебедева.

Подробный пересказ выпуска Flutter Dev Podcast с Борисом Горячевым





«Изначально я хотел сделать что-то похожее на VS Code, но лучше»


#15 Flide — IDE на Flutter

Андрей Лесницкий: «Я начал продукт для себя, чтобы повысить свою продуктивность. Если это повышает мою продуктивность, это может повысить продуктивность и всех разработчиков в экосистеме Flutter».

Андрей Лесницкий из Минска пишет среду разработки на Flutter. Он вдохновился Android Studio и VS Code, и старается взять из них всё лучшее — но хочет сделать IDE по-своему. Почему для проекта он выбрал Flutter: это челлендж или специальная задумка? Каким продукт задумывался и каким получился?

В выпуске Андрей рассказывает, как ему пришла в голову эта идея, с какими основными вызовами он столкнулся и в каком состоянии проект сегодня.





«Мне очень понравилось быть водителем такси. Если бы тарифы были повыше, я бы переквалифицировался»


#11 Яндекс.Такси

Геннадий Евстратов: «Служба безопасности сказала: „React Native — только через их труп“».

Команда Яндекс.Такси делает на Flutter «программный комплекс для службы такси» — приложение Яндекс.Таксометр. В выпуске они рассказывают, почему сначала пилили проект на React Native, но потом перешли на Flutter, зачем сотрудники Яндекса таксуют по ночам и за счёт чего приложение на Flutter делается в два с половиной раза быстрее, чем на Android. А ещё — про иероглифы в документации Fish redux, интеграцию Яндекс Map Kit и собственный виджет пак.





«CI/CD сделает всё за вас, даже если у вас нету техники от Apple»


#9 CI/CD — Jenkins, Bitrise, Codemagic

Михаил Токарев: «Когда мы разговаривали с Flutter Team по поводу CI/CD, они очень чётко сказали: „Мы хотим видеть CI, которым могла бы пользоваться даже моя бабушка“. С этой установкой мы и начали делать Codemagic».

Вместе с CTO Codemagic разбирались, зачем нужен CI/CD, в какой момент становится понятно, что без него не обойтись, и чем чреваты локальные сборки. Сравнивали Jenkins, Bitrise и Codemagic по всем параметрам, до которых смогли дотянуться: возможности, ограничения, стабильность, кастомизация, цены. Выясняли, откуда появился Codemagic и почему он позиционируется именно как CI/CD для Flutter, а не для всего подряд, в чем его отличие от остальных инструментов и какая компенсация положена пользователю, если сборка упала по вине инструмента.





«Работает на всём, на чём есть экран»


#7 Всё про кроссплатформу

Максим Сальников: «Сторы из нашего процесса просто выпадают, они нам просто не нужны. Это обычное веб-приложение, которое можно при желании взять и установить на устройство».

Максим Биянов: «Xamarin подошёл к максимальной матюрности. К состоянию, когда все основные проблемы решены и началось экстенсивное развитие. Есть фишки, которые малозаметны. Сейчас внимание уделяется нативному iOS».

Александр Фёдоров: «React Native это промежуточное решение между нативным и вебом. Нативное получается быстрее, веб медленнее. Что-то посередине — это React Native. Наверно, самый большой плюс — что он пишется на JS. JS-разработчиков много, вход в разработку быстрый. React тоже не очень сложный».

Артём Зайцев: «Ключевое отличие Flutter от того же React или Xamarin — то, что он имеет собственный движок под капотом. И не использует нативные элементы, а просто рисует такие же».

Роман Яцына: «Кotlin Native в целом — тот же самый Kotlin, просто зарестрикченный. Сейчас очень сложно найти человека, который согласился бы писать на Java. Многие прям уходят из своих компаний, потому что там нет Kotlin».

Александр Ефременков: «Давайте начнём с того, что это С++. С++ не стоит изучать, если ты не хочешь копаться с тем, как аллоцируется память, как она работает, и пытаться вникнуть в близкую работу с железом».

React Native, Xamarin, PWA, QT, C++, Kotlin Native, Flutter… Кроссплатформа — достаточно общее слово, за которым кроется много разных технологий.

Для чего стоит брать технологию, область применения, порог вхождения, плюсы и проблемы — в этом выпуске мы обсудили критерии при выборе технологий для своего стека.





«Мобильные разработчики пришли во Flutter, посмотрели на async/await и ужаснулись»


#6 Асинхронность

Евгений Кот:  «Чтобы понимать стримы, нужно понимать, как сантехника работает». 

Есть async/await, Future API, Stream API, есть метод Compute, есть даже RXDart. Как из этого многообразия понять, что из этого надо использовать, а что нет. Что делать со всей этой асинхронщиной, если вы пришли из мира iOS или Android. Почему изолят — как пирожок с полки, и как Flutter обрабатывает асинхронные операции — если Dart однопоточен. 





«Все виртуальные машины действительно на одно лицо»


Слушать выпуск #5 Dart VM

Вячеслав Егоров: «Начать можно с того, Dart VM название — оно немножко неправильное. Правильно его называть Dart Runtime, потому что он не всегда из себя представляет виртуальную машину. Люди, которые представляют себе виртуальную машину, они представляют себе, что внутри какой-то байт-код исполняется. А более правильно, наверно, это все-таки называть Dart Runtime».

Вячеслав Егоров, разработчик Dart VM, рассказывает, почему Flutter написан на Dart, какую чёрную магию применяет Hot reload, в чем особенности Garbage collector. Про компиляцию из 90-х, прогретые функции и Flutter-веб. Как соотносятся изоляты в Dart и многопоточность, во что компилируется Flutter-приложение в релизной сборке и что у Flutter с реверс-инжинирингом.

Все выпуски Flutter Dev Podcast на Soundcloud
Tags:
Hubs:
Total votes 14: ↑12 and ↓2+10
Comments8

Articles

Information

Website
developers.google.com
Registered
Founded
Employees
over 10,000 employees
Location
США