Flutter Tech-Lead Notes
317 subscribers
136 photos
9 videos
82 links
Download Telegram
Спасибо моему студенту Максиму за подсказку, что на Android тоже можно запустить без проводов. Чуть сложнее, чем под iOS (где тупо кнопку нажать), но можно. Ну и на Windows и Linux будет тоже работать.

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

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

Итого - 2 цели из 5 оставшихся уже достигнуты. Посмотрим, что будет через 3 месяца
🔥2👍1
Forwarded from Flutter. Много
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.

А пока на этом всё, пишите в чате, было ли полезно?
👍1
Forwarded from Flutter. Много
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 и присваивать их путям в наших настройках.

Было полезно? Если у вас еще остались вопросы, то пишите в чат.
👍3
Я тут немного заработался, поэтому с постом про изменения рабочего места запаздываю.

Изменение первое - новая клавиатура. Где-то в апреле у меня начала залипать Apple Magic Keyboard. К маю стало еще хуже, поэтому я стал выбирать. Изначально хотелось что-нибудь из Keychron, но у них были проблемы с доступностью в Красноярске. А выбрал я в итоге NuPhy Air75 первого поколения на красных переключателях. Думаю, расскажэу о ней в отдельном посте.

Изменение второе - микрофон. Так как я не профи в записи всякого, хотя и такие планы есть, плюс на работе жаловались на качество звука во время созвонов, решил купить. Заказывал на Али в официальном магазине производителя. Вместе с ним заказал еще 2 вещи. Про это все тоже в отдельном посте.

Изменение третье - коврик от JugRu Group и Geekboards, который подарили как спикеру на конференции Mobius.

Изменение четвертое - то, о чем я давно думал, но скупился - док-станция для Mac. Мой выбор пал на Ugreen, с которыми я очень давно знаком. Тут тоже нужно будет отдельным постом.

Поэтому ждите сегодня и завтра еще 3 поста про новые девайсы)
🔥5😎1
Про клавиатуру.

Кто долго читает мой канал помнит, что я рассказывал уже про то, что у меня их было 2 - Apple Magic Keyboard как основная и механическая Durgod для игр.

Почему я не перешел на Durgod после того, как решил менять клавиатуру? Тут все просто и объясняется тремя причинами - отсутствие раскладки под macOS, слишком высокие клавиши, она проводная. Поэтому это первые три критерия выбора у меня были.

Немного о самом выборе. Под все мои критерии подходит продукция 2 компаний - NuPhy и Keychron (не путать с Keyron). Я долго выбирал модель, в итоге после пары роликов и смотря на скорость доставки я выбрал NuPhy Air75 первого поколения на красных переключателях. Второе было ждать в несколько раз дольше.

Переключатели я тоже выбирал. Между красными и коричневыми. Теперь думаю заказать на всякий случай набор коричневых, так как мне они понравились (в наборе идет по 1 штуки каждого типа). Клавиатура очень крутая, но есть несколько минусов:
- Не хватает кнопки переключения языка, как на клавиатурах от Apple. Сначала я к ней привыкал, теперь привыкаю к ее отсутствию. И даже на самом MacBook я периодически пытаюсь сейчас переключать комбинацией клавиш.
- Не хватает TouchID, который был на прошлой клавиатуре. Поэтому пару-тройку раз в день приходится вводить пароль.
🔥1
Про микрофон.

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

Начну с того чем я пользовался.
В основном это были микрофоны от наушников либо от компьютеров. Первый стационарный микрофон я купил в начале 2022 года. Он был достаточно дешевым (около 3000), но с ним в наборе шли поп-фильтр и пантограф (стойка). Прожил я с ним около полугода, потом у меня появились Airpods Max и я перешел на них. Потом я перешел на микрофон от вебкамеры.
В начале этого года у меня появились беспроводные петлички. Хорошая штука, есть требуется быстро и в полевых условиях что-то записать.

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

Я давно хотел себе на стол поставить хорошую док-станцию с большим количеством портов. Долго искал, смотрел все варианты, но они были очень дорогими. В итоге от того, что используют в Европе и США - 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 кабелях - один от монитора, другой от док-станции.
🔥2🆒1
Мало кто знает, но у меня несколько профессий. Да, кроме основной специальности, я прошел переподготовку (вроде так сейчас дополнительное высшее называется, не путать со вторым высшим) на переводчика.

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

В связи с этим, скоро поделюсь тем, что я переводил. Скорее всего, это будет в ближайшие дни.
👍32
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Приготовили для вас серию статей переводов о тестировании в Flutter.

Сегодня первый выпуск, в котором познакомимся с Unit-тестированием, Widget-тестированием, Golden-тестами и интеграционным тестированием (оригинал).

В статье приведено много примеров и часто встречаемых ошибок, с которыми сталкиваются специалисты, когда пишут тесты. Показано, как писать код, чтобы сделать тестирование проще, и как использовать AI-инструменты, такие как ChatGPT или GitHub Copilot для увеличения скорости написания тестов.

Переходите по ссылке. По ходу материала вам будут встречаться мои комментарии.

Приятного чтения! Будем рады вашей обратной связи в чате.
👍2
Кстати, в эту среду в Красноярске прошел митап от Т-Банка. Тема была - секция программирования на собеседованиях.

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

Было очень круто! Уровень с прошлого раза сильно поднялся, как по качеству докладов, так и по организации в целом.
👍4
Ну чтож, вторая часть. Третья будет на этой неделе.
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Продолжаем раскрывать тему тестирования в Flutter и сегодня поговорим о модульном (Unit) тестировании.

В данной статье описан простой Unit-тест и использование функций expect и Matcher. Скорее переходите на Habr, чтобы узнать подробности! ⬅️

Еще несколько выпусков будут посвящены Unit-тестам, разберем более сложные случаи с использованием продвинутых техник: Mock, Fake и Stub.

Ставьте реакцию, если ждете продолжения! 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
Только что завершил перевод 6 части "Полный гайд по тестированию на Flutter" (они будут постепенно выходить в ближайшее время).

Я думал, что это последняя часть, но это оказалось не так. На самом деле, это последняя часть на английском языке, а остальные 3 есть только на вьетнамском. Пожелайте мне удачи с этими переводами
😁5👍2😱2
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Вот и третья часть перевода подъехала⚙️

В предыдущих статьях мы научились писать модульные тесты для статичных функций, верхнеуровневых функций и расширений. На этот раз напишем Unit-тесты для методов класса.

Читайте по ссылке на Habr. Пишите комментарии и ставьте реакции, если тема вам интересна!⚙️
Please open Telegram to view this post
VIEW IN TELEGRAM
А вот и второй сюрприз подъехал.

Я обещал после Mobius, что их будет 2. Первым была книга.

Теперь еще один - вчера я сходил на Flutter Dev Podcast, где мы поговорили про очень интересную тему. Но так как процесс монтажа занимает какое-то время, он выйдет не очень скоро, так что ждите)
🔥4
Итак. Поступают плохие новости. YouTube все-таки замедляют. У меня это началось где-то неделю назад, может чуть больше. Немного хронологии:
- Начали подтупливать видео раз в несколько минут. "Ну и пофиг"
- Грузит только 720p. "Ок, не страшно"
- Ростелеком заявили о серверах (что оказалось ложью) "Явно врут, не может 1-2 сервера из примерно 1000 влиять на всех в стране"
- Грузит только 480p. "Ну, вспомним 2010"
- Еле грузит 320p. и почти сразу выходит заявление о замедлении "Я же говорил, но что делать то?"

В итоге чисто для просмотра роликов перехожу на Google Chrome, так как там есть метод обхода, надеюсь постоянный. Это экспериментальный протокол QUIC. И это действительно работает.

Чтобы включить у себя в Chrome или любом другом браузере на базе Chromium (Edge, Яндекс.Браузер и т. д.) - перейдите на chrome://flags/#enable-quic и первым в списке будет он. Нужно, чтобы он был Enabled.
👍6
Экосистема Apple спасает в самом необычном случае.

Сейчас телега работает еле-еле, но мне нужно было отправить файл. 10 минут ожидания на 0% означают, что нужно искать обходные пути. И им для меня стал AirDrop, так как с телефона в телегу хоть медленно, но заливается.

А как у вас обстоят дела с доступом в телегу?
🤯3