ch
Feedback
Flutter Tech-Lead Notes

Flutter Tech-Lead Notes

前往频道在 Telegram
274
订阅者
无数据24 小时
+47 天
+1830 天
帖子存档
А вот и второй сюрприз подъехал. Я обещал после Mobius, что их будет 2. Первым была книга. Теперь еще один - вчера я сходил на Flutter Dev Podcast, где мы поговорили про очень интересную тему. Но так как процесс монтажа занимает какое-то время, он выйдет не очень скоро, так что ждите)

Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Вот и третья часть перевода подъехала⚙️ В предыдущих статья
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Вот и третья часть перевода подъехала⚙️ В предыдущих статьях мы научились писать модульные тесты для статичных функций, верхнеуровневых функций и расширений. На этот раз напишем Unit-тесты для методов класса. Читайте по ссылке на Habr. Пишите комментарии и ставьте реакции, если тема вам интересна!⚙️

Только что завершил перевод 6 части "Полный гайд по тестированию на Flutter" (они будут постепенно выходить в ближайшее время). Я думал, что это последняя часть, но это оказалось не так. На самом деле, это последняя часть на английском языке, а остальные 3 есть только на вьетнамском. Пожелайте мне удачи с этими переводами

Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Продолжаем раскрывать тему тестирования в Flutter и сегодня
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Продолжаем раскрывать тему тестирования в Flutter и сегодня поговорим о модульном (Unit) тестировании. В данной статье описан простой Unit-тест и использование функций expect и Matcher. Скорее переходите на Habr, чтобы узнать подробности! ⬅️ Еще несколько выпусков будут посвящены Unit-тестам, разберем более сложные случаи с использованием продвинутых техник: Mock, Fake и Stub. Ставьте реакцию, если ждете продолжения! 🙂

Ну чтож, вторая часть. Третья будет на этой неделе.

Кстати, в эту среду в Красноярске прошел митап от Т-Банка. Тема была - секция программирования на собеседованиях. Мы с моим к
Кстати, в эту среду в Красноярске прошел митап от Т-Банка. Тема была - секция программирования на собеседованиях. Мы с моим коллегой Михаилом, который вместе со мной перешел из Аспирити в Amiga, посетили это мероприятие. Пообщались с людьми, позадавали вопросы спикерам (к слову, я с 2 из них уже был знаком, так как пересекались на конференциях и не только). Было очень круто! Уровень с прошлого раза сильно поднялся, как по качеству докладов, так и по организации в целом.

Хоть статья и вышла еще в среду, только сегодня она была опубликована на Хабре Читайте, ставьте лайки и т. д. - https://habr.com/ru/articles/829904/

Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Приготовили для вас серию статей переводов о тестировании в
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Приготовили для вас серию статей переводов о тестировании в Flutter. Сегодня первый выпуск, в котором познакомимся с Unit-тестированием, Widget-тестированием, Golden-тестами и интеграционным тестированием (оригинал). В статье приведено много примеров и часто встречаемых ошибок, с которыми сталкиваются специалисты, когда пишут тесты. Показано, как писать код, чтобы сделать тестирование проще, и как использовать AI-инструменты, такие как ChatGPT или GitHub Copilot для увеличения скорости написания тестов. Переходите по ссылке. По ходу материала вам будут встречаться мои комментарии. Приятного чтения! Будем рады вашей обратной связи в чате.

Мало кто знает, но у меня несколько профессий. Да, кроме основной специальности, я прошел переподготовку (вроде так сейчас дополнительное высшее называется, не путать со вторым высшим) на переводчика. Так вот. Сейчас у меня появились задачи, на которых я применяю знания, полученные на занятиях. Я не переводил большие тексты с написания диплома, тогда я переводил пару глав из книги Learning Node от издательства O'Reilly (спасибо издательству Питер за то, что иногда оригиналы бесплатно раздают). В связи с этим, скоро поделюсь тем, что я переводил. Скорее всего, это будет в ближайшие дни.

Сегодня расскажу про последнюю мою покупку для рабочего места - док-станцию Я давно хотел себе на стол поставить хорошую док-
Сегодня расскажу про последнюю мою покупку для рабочего места - док-станцию Я давно хотел себе на стол поставить хорошую док-станцию с большим количеством портов. Долго искал, смотрел все варианты, но они были очень дорогими. В итоге от того, что используют в Европе и США - TS4 - я отказался, так как тратить 400 долларов, не считая доставки из Штатов, не хотелось. А когда заказывал микрофон подвернулась и станция от Ugreen. Да, это можно сказать минимальная версия - 3 USB-C (один для подключения зарядки, другой для подключения ноута, третий - для всего, что угодно), 3 USB-A, кард-ридер, Ethernet, 2 HDMI, DisplayPort и порт под наушники. Все это в наборе с 2 кабелями USB-C - USB-C и блоком питания GaN на 100 Вт. После этого я попробовал сделать подключение одним кабелем к MacBook. Все подключил, только была проблема с монитором, но и ее решил простой заменой кабеля HDMI. Вылезла еще одна - регулировать звук только через сам монитор. Специальная программа помогла. Вроде должно быть и все, но не тут то было. Сижу, работаю и в какой-то момент все гаснет. Просто MacBook сел в 0. Пришлось оставаться на 2 кабелях - один от монитора, другой от док-станции.

Про микрофон. Когда я делал серию постов про мои девайсы и не упомянул про запись звука, а это тоже важно, так как программис
Про микрофон. Когда я делал серию постов про мои девайсы и не упомянул про запись звука, а это тоже важно, так как программисты часто участвуют в созвонах и мне как спикеру надо иногда записывать прогоны докладов. Начну с того чем я пользовался. В основном это были микрофоны от наушников либо от компьютеров. Первый стационарный микрофон я купил в начале 2022 года. Он был достаточно дешевым (около 3000), но с ним в наборе шли поп-фильтр и пантограф (стойка). Прожил я с ним около полугода, потом у меня появились Airpods Max и я перешел на них. Потом я перешел на микрофон от вебкамеры. В начале этого года у меня появились беспроводные петлички. Хорошая штука, есть требуется быстро и в полевых условиях что-то записать. А потом я решился. Заказал на Али 3 вещи у Fifine - микрофон AM8, пантограф BM88 и микшер SC3. Обошлось все в 12000, но это со скидками. Сейчас за эти деньги не купить такой набор. Скажу сразу - микшер оказался не нужен. Я специально докупал для него кабель XLR, но разницы с подключением по USB-C нет. Сам микрофон динамический и очень стильный. Качество звука меня потрясло, как будто микро для подкастов от Rode или Shure (на них я посматриваю, может через годик-другой и перейду). Для моих целей он меня полностью устраивает. А вот пантограф я буду менять скорее всего. У него есть одна проблема - не регулируется нижняя часть по высоте.

Про клавиатуру. Кто долго читает мой канал помнит, что я рассказывал уже про то, что у меня их было 2 - Apple Magic Keyboard
Про клавиатуру. Кто долго читает мой канал помнит, что я рассказывал уже про то, что у меня их было 2 - Apple Magic Keyboard как основная и механическая Durgod для игр. Почему я не перешел на Durgod после того, как решил менять клавиатуру? Тут все просто и объясняется тремя причинами - отсутствие раскладки под macOS, слишком высокие клавиши, она проводная. Поэтому это первые три критерия выбора у меня были. Немного о самом выборе. Под все мои критерии подходит продукция 2 компаний - NuPhy и Keychron (не путать с Keyron). Я долго выбирал модель, в итоге после пары роликов и смотря на скорость доставки я выбрал NuPhy Air75 первого поколения на красных переключателях. Второе было ждать в несколько раз дольше. Переключатели я тоже выбирал. Между красными и коричневыми. Теперь думаю заказать на всякий случай набор коричневых, так как мне они понравились (в наборе идет по 1 штуки каждого типа). Клавиатура очень крутая, но есть несколько минусов: - Не хватает кнопки переключения языка, как на клавиатурах от Apple. Сначала я к ней привыкал, теперь привыкаю к ее отсутствию. И даже на самом MacBook я периодически пытаюсь сейчас переключать комбинацией клавиш. - Не хватает TouchID, который был на прошлой клавиатуре. Поэтому пару-тройку раз в день приходится вводить пароль.

Я тут немного заработался, поэтому с постом про изменения рабочего места запаздываю. Изменение первое - новая клавиатура. Где
Я тут немного заработался, поэтому с постом про изменения рабочего места запаздываю. Изменение первое - новая клавиатура. Где-то в апреле у меня начала залипать Apple Magic Keyboard. К маю стало еще хуже, поэтому я стал выбирать. Изначально хотелось что-нибудь из Keychron, но у них были проблемы с доступностью в Красноярске. А выбрал я в итоге NuPhy Air75 первого поколения на красных переключателях. Думаю, расскажэу о ней в отдельном посте. Изменение второе - микрофон. Так как я не профи в записи всякого, хотя и такие планы есть, плюс на работе жаловались на качество звука во время созвонов, решил купить. Заказывал на Али в официальном магазине производителя. Вместе с ним заказал еще 2 вещи. Про это все тоже в отдельном посте. Изменение третье - коврик от JugRu Group и Geekboards, который подарили как спикеру на конференции Mobius. Изменение четвертое - то, о чем я давно думал, но скупился - док-станция для Mac. Мой выбор пал на Ugreen, с которыми я очень давно знаком. Тут тоже нужно будет отдельным постом. Поэтому ждите сегодня и завтра еще 3 поста про новые девайсы)

Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Продолжаем рассказывать, в чем разница между go_router и au
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Продолжаем рассказывать, в чем разница между go_router и auto_route. Количество багов и костылей На личном опыте можем сказать, что с go_router костылей и правок, которых нужно исправлять вручную, всегда больше, чем с auto_route. Да, первые версии могли пропускать кадры при переходах, но со временем это исправили. Вложенная навигация В auto_route вложенная навигация устроена намного удобнее, чем в go_router. Так как у нас есть возможность создать дополнительный роутер внутри нашего экрана и переходить внутри него.

Scaffold(
  …
  body: AutoRoute(),
  …
);
Да, go_router поддерживает такое, но настройка будет в разы сложнее. Route Guards Настройка guards в go_router делается при настройке самого роутера, а перенаправление — при помощи функции redirect. В auto_route мы можем создавать именно отдельные Route Guards и присваивать их путям в наших настройках. Было полезно? Если у вас еще остались вопросы, то пишите в чат.

Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Недавно в чате вы спрашивали, в чем разница между go_router
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Недавно в чате вы спрашивали, в чем разница между go_router и auto_route. Рассказываем! Сходства Обе этих библиотеки работают на Navigator 2.0, что дает нам больший контроль над навигацией в наших приложениях. Также часть функционала в них совпадает. Количество кода В auto_route мы пишем намного меньше кода, так как используется кодогенерация. Но некоторые не любят ее, поэтому используют GoRouter. Также auto_route позволяет нам напрямую передавать нужные аргументы прямо в Route, не используя дополнительный код. Разберем на примере вот такого экрана:

class HomePage extends StatelessWidget {
    final String appName;
    const HomePage({required this.appName, super.key});
    … 
}
Для auto_route у нас будет:

AutoRoute(page: HomeRoute.page);

context.router.push(HomeRoute(appName: ‘My App Name’));
А для go_router:

GoRoute(
  path: ‘/home’,
  builder: (context, state) {
    final appName = state.queryParams[‘appName’];
    return HomePage(appName: appName);
  }
);

GoRouter.of(context).push(‘/home?appName=”My App Name”’);
В следующей части поговорим о количестве багов, вложенной навигации и Route Guards. А пока на этом всё, пишите в чате, было ли полезно?

Заключительный этап апгрейда проведен на выходных. Обошлось не без проблем на самом деле. Как и обещал, подробный рассказ и фото будут завтра, 10 июля

Я пропустил очередной чекпоинт по целям на год. Он должен был быть неделю назад. Поэтому подводим итоги: - Весной выступил на 3 конференциях, на осень пока прошел на одну и готовлюсь еще по трем. Возможно еще на парочку залечу. Цель в 5 выступлений закрою либо в сентябре, либо в октябре - По пет-проектам интереснее. Я готовлю бомбу и начинаю выделять время на это - Рост отдела и все для разработки. Так как я покинул Аспирити, то эта цель пока отменяется - После моего ухода из Аспирити у ребят осталось 2 крутых проекта, а в Amiga я работаю над очень крутым проектом. Но увы, все под NDA. Эта цель выполнена - Курс в СФУ завершен. Мы выпустили более 100 студентов. Они нереально крутые! Ну и те, кто закончил в этом году университет уже получили свои дипломы о профессиональной переподготовке - Возвращаю цель о поездке заграницу. Тут все интереснее, скорее всего, это будет ближнее зарубежье Итого - 2 цели из 5 оставшихся уже достигнуты. Посмотрим, что будет через 3 месяца

Спасибо моему студенту Максиму за подсказку, что на Android тоже можно запустить без проводов. Чуть сложнее, чем под iOS (где тупо кнопку нажать), но можно. Ну и на Windows и Linux будет тоже работать. Что нужно сделать: - подключаем телефон к той же сети, что и компьютер - подключаем телефон по кабелю к компьютеру - вводим в консоль команду adb tcpip 5555 - ищем IP-адрес телефона (Настройки - О телефоне). Нам нужен именно локальный IP - выполняем команду adb connect {Наш IP}:5555 - отключаем кабель Теперь мы можем отлаживать приложение по воздуху

Не знаю, в курсе ли вы, но у Flutter получилось сделать запуск по воздуху (без подключения кабелем к компьютеру). Главное, чтобы они были в одной сети. Возможно, эта фишка вышла уже давно, но попробовал я ее только сейчас, и то случайно. Мне нужно было запустить приложение для одного из докладов, которые готовятся на осень (скоро пойдут анонсы уже) и я вместо эмулятора запустил у себя на iPhone. Я очень ждал эту фишку, но думал, что она заработает сначала на Android. Теперь ждем и под Android (а может уже и есть способ?)

Я обещал, что будут сюрпризы. Вот и первый из них. Многие из вас знают о книге “Основы Dart” за авторством Станислава Чернышева. Его постоянно просят сделать книгу по Flutter. Так вот - мы ее пишем! У нас собралась супер-команда профессионалов: - Станислав Чернышев - автор канала MADTeacher на YouTube и учебника "Основы Dart". - Я, Павел Гершевич - Flutter Team Lead в Amiga и соавтор Flutter. Много. Спикер различных конференций и автор канала Flutter Tech-Lead Notes. - Юрий Петров - Flutter Tech Lead в компании Friflex, автор YouTube и одноименного тг-канала «Мобильный разработчик», а также курсов на платформе Stepik - Станислав Ильин - Flutter Team Lead в Поток'е. Автор YouTube и одноименного тг-канала "Стас Ильин" Теперь важная информация про книгу: ✅ За прошедший месяц мы утвердили структуру книги и распределили главы ✅ Свежие материалы книги, прошедшие редактуру, будут выкладываться в курс на Stepik - Основы Flutter (в разработке) Это позволит нам собирать быструю обратную связь по добавленному материалу и вносить правки Хочешь принять участие? Предлагай тему сквозного проекта для книги, и если авторскому коллективу она понравится - мы добавим отдельное упоминание в графе с благодарностями. Если хотите, чтобы книга получилась максимально полезной, ждем лайки и максимальную поддержку сообщества!