Flutter Tech-Lead Notes
318 subscribers
136 photos
9 videos
82 links
Download Telegram
Наконец-то появились фото со Стачки и я могу поделиться впечатлениями.

Во-первых, место. В этот раз это был Питер, а не Ульяновск (ура, нет пересадок) и проходило все в отеле, куда я собственно и заселился. Площадка большая, показалось, что даже больше, чем в другом отеле этой сети (там проходил Mobius прошлой осенью).

Во-вторых, атмосфера все такая же + можно завести знакомства не только среди разработчиков, но и среди других IT-профессий.

В-третьих, программа. Дополнительный лайк от меня за Друзя и за кикер на афтерпати.

Поэтому советую в следующем году посетить Стачку в любом городе, в котором она будет проходить! Ну и я конечно-же сам тоже поеду, может быть и не спикером.
🔥4
Flutter Tech-Lead Notes
Второй день меня преследуют какие-то технические проблемы. Вчера за 10 минут до важного созвона у меня все-таки помер разъем на мониторе. Видимо чувствует, что скоро приедет ему замена (об этом расскажу на следующей неделе). Из-за этого сорвалась важная часть…
Я снова проапгрейдил рабочее место. В этот раз изменение одно и его можно назвать минорным - новый монитор.

В 2023 году я уже рассказывал про то, что я пользуюсь монитором от LG (27 дюймов, 4k, подключение по USB-C), если интересна модель - 27UP850W. Он появился у меня в январе 2022 года (стоил около 45к вроде бы), потом в мае 2023 я перекинул его на кронштейн (подставка самого монитора не позволяла ему поворачиваться нормально и была просто широкой).

Потом у него отказал разъем USB-C, через который я подключал ноутбук. Тут чисто моя вина, так как он был связан стяжкой с блоком питания, который очень тяжелый и висел практически в воздухе (короткий период - всего пару месяцев, но этого хватило). В итоге припаяли этот разъем на место, но это все равно было временное решение, так как в сентябре он окончательно умер.

Я уже давно хотел себе монитор побольше - на 32 дюйма. В итоге выбор пал тоже на LG - 32SQ700S. С ним я уже почти месяц, поэтому могу рассказать о его плюсах и минусах, о чем в посте через пару часов.
👍1🥰1💩1
Плюсы и минусы моего нового монитора от LG + небольшая история про кабель

Начнем, конечно же с плюсов. Сразу же скажу, что это все субъективно и я буду сравнивать его с прошлым монитором.

Размер. Он меня конечно же поразил. Он больше и удобнее, чем прошлый.

Расположение разъемов. На прошлом они были просто сзади, а теперь еще и вниз смотрят, что является плюсом для кабель-менеджмента.

Матрица. Тут более глубокий черный и нет засветов, как на прошлом, но это все из-за того, что другой тип матрицы. Об этом чуть позже, в минусах.

Звук. Не знаю, как, но LG смогли выдавить из этих динамиков хоть немного низких частот. Скорее всего, это связано с формой самого монитора.

А теперь к самому сладкому - минусы.

Зарядка. Новый монитор поддерживает максимум 65 Ватт, а старый поддерживал 96. Но это не так критично, так как ноут постоинно к нему подключен.

Комплект. Комплект скудный - подставка (точно такая же, как и у прошлого, только без регулирования высоты), блок питания, кабель HDMI (я даже не уверен, что это HDMI 2.1, максимум 2.0) и... пульт. Да, вы правильно поняли, с ним идет пульт. Об этом чуть позже, но сначала история.

Знаете, сколько стоит кабель Thunderbolt 4 от Apple? Так вот, стоит он очень много и его почти нигде нет. Сначала я посмотрел в DNS - отдавать 20к, что почти половина стоимости монитора - такое себе. Но в какой-то момент я решил заглянуть на сайт к МВидео. Там он был, по 10к, но еще и со скидкой до 8к + можно было использовать бонусы. В итоге, он теперь у меня, но блин, это все равно много для кабеля.

Управление. Как я делал со старым монитором - поставил программу для управления громкостью и яркостью через системные клавиши. Тут думаю настрою цвета и все будет работать как раньше, но нет. Не управляется ни яркость (хотя тут можно выставить, чтобы мак просто меньше выдавал), ни громкость звука. Все при помощи пульта, и включение тоже. Умный монитор же!

Матрица. Тут VA матрица, а на старом была IPS. Ее минусы - углы обзора (искажаются цвета немного) и нет возможности сделать хороший белый цвет. Но к этому достаточно быстро привыкаешь.
🤔3🤝1
Небольшой пост-негодование в сторону Аэрофлота

За последние 3 месяца я несколько раз слетал в Санкт-Петербург (по разу в августе, сентябре и октябре). И на 4 из 6 рейсов я летел на самолете с бортовым номером RA-73187. Это Boing 737-800. Так вот, у него много минусов:
- Раньше, когда летали на Airbus A320 (и иногда A319), в Пулково использовался теле-трап (рукав), что максимально удобно. Особенно из-за того, что я люблю заходить в самолет в самом начале, об этом чуть позже. Тут же приходится жаться в автобусе и стоять не одну, а две очереди до входа в самолет.
- Далее - расположение своей ручной клади на верхней полке. Тут меньше места, и ты не можешь зайти внурь ряда, чтобы спокойно достать все, что нужно во время полета (в моем случае это вода, планшет и иногда powerbank), нужно стоять в проходе и мешать людям, которые хотят пройти.
- Узкие места - это как будто дополнительная пытка. В них не развернешься на бок (а рейс то ночной, поспать хочется). Места между рядами тоже мало. Даже без доп. вещей мои колени упирались в кресло впереди, а у меня не самый большой рост - 180 см. Места Space+ на нем это тоже не спасение, так как там столики в подлокотниках и место, которое обычно хоть чуть-чуть позволяет ногам не быть постоянно сомкнутыми, получается недоступно.
- Еще из короткого - ремни. Я не самый маленький человек, но летают люди и побольше меня. Но блин, у меня уходило по 5-7 попыток, чтобы застегнуть ремень (выдвинутый на максимум), когда в Airbus и SuperJet я могу еще и подзатянуть его.

Это все сказывается на комфорте полета. Выбора сейчас нет, либо вот такой прямой, либо через Москву. Да, раньше был еще один прямой, я им летел в прошлом году в сентябре, но он в разы хуже, так как это лоукостер. С тем багажом, который летел сегодня со мной, меня бы даже не пустили на такой рейс. Ну и 5 часов без еды и воды - точно не мой вариант.

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

Я познакомился с Flutter в далеком 2018, когда он был еще в Alpha-версии. До него и параллельно с ним я работал с нативным Android на Java и Kotlin, попутно переместившись из мобильной разработки на Web, где занимался React.js. Тогда не было особо источников для расширения знаний о фреймворке, поэтому учился по официальной документации и YouTube-каналу Flutter. Уже позже я познакомился с тем, что начало появляться в сети, и сейчас продолжаю следить за YouTube, Medium, VC и Habr. Еще слушаю доклады на конференциях и общаюсь со спикерами на совместных ивентах — это всегда прокачивает хард-скиллы.

В свободное время я не только выступаю на крупных конференциях — DUMP, CodeFest, Mobius и других — но и веду занятия по мобильной разработке у студентов крупнейшего ВУЗа Сибири - Сибирского Федерального Университета.

Для тех, кто только начинает свой путь с Dart и Flutter, могу посоветовать:
Курс LazyLoad Dart & Flutter;
Книгу «Основы Dart»;
Конечно же, дождаться выхода книги «Основы Flutter».

Желаю вам успешного профессионального роста! Не забывайте приходить в чат, если возникают вопросы или трудности, я всегда буду рад поделиться опытом и помочь!
🔥2
Последняя поездка в году начинается
Я знаю, что некоторые подписчики на CrossConf. Через пару минут начинаем - подходите в зал
Выступления в этом году - все!

Закончили на очень крутой ноте в прошлую пятницу - выступление с завершающей частью серии докладов и потом награждение, где мы забрали 2 место в номинации "Лучшая компания-просветитель в сфере кроссплатформенных технологий"!

Отдельно хочу поделиться своими впечатлениями о CrossConf:

1️⃣ Наконец-то встретились всем авторским составом "Основы Flutter" лично. Наша уверенность, что книга будет крутой, стала запредельной!

2️⃣ Ради меня на конференцию приезжают люди. В начале этого года такое было только на митапах. Спасибо, что ходите на мои выступления и задаете вопросы!

3️⃣ Встречи. Тут отмечу не всех, с кем увиделся. Но самая непредсказуемая встреча - команда, из-за которой начался этот канал 2 года назад. Впервые встретились вживую! Надеююсь, еще когда-нибудь пересечемся!

4️⃣ Доклады. Как обычно много, придется смотреть в записи некоторые. Программа в этом году очень хорошо собрана, все спикеры сильные!

P.S. Но по конференциям это еще не все, сезон продолжается!

P.P.S. Я тут уточнил одну вещь - Flutter Dev Podcast с моим участием следующий!
🔥4
Очередной пост о том, почему же лучше всего постоянно обновлять Flutter, а не держать его на какой-то версии постоянно.

На одном из проектов стоит (вернее сказать стояла) версия 3.19.4 через FVM. Она там с самого начала проекта.

Недавно один из разработчиков обновил зависимости под iOS и приложение просто перестало собираться. В итоге мы с ним пробовали многое, а сегодня и я решил обновить, чтобы воспроизвести это поведения. В итоге, у нас получилось, что нужно обновить Flutter до 3.24.5, так и сделали.

Поэтому, если вы не гигантская команда, то вам лучше не использовать FVM, а сидеть на последних версиях
Если вы у себя на проекте используете OneSignal, то могли сталкиваться с тем, что закрытое приложение не получает Push-уведомления на Android.

Так вот. Чинится это достаточно просто. В 3 шага:

1) Добавить нативную библиотеку OneSignal в Android часть (файл android/app/build.gradle)

2) Создать файл под NotificationServiceExtension (либо на Java, либо на Kotlin):


import androidx.annotation.Keep
import com.onesignal.notifications.IActionButton
import com.onesignal.notifications.IDisplayableMutableNotification
import com.onesignal.notifications.INotificationReceivedEvent
import com.onesignal.notifications.INotificationServiceExtension

@Keep
class NotificationServiceExtension : INotificationServiceExtension {
override fun onNotificationReceived(event: INotificationReceivedEvent) {
val notification: IDisplayableMutableNotification = event.notification

notification.display()
}
}


3) Добавить информацию в AndroidManifest


<meta-data
android:name="com.onesignal.NotificationServiceExtension"
android:value="com.sample.example.NotificationServiceExtension" />


Таким образом ваши уведомления начнут появляться у пользователей
👍1
Рубрика веселые баги

Если у TextField или TextFormField отключить подсказки (свойство enableSuggestions со значением false), то на кастомные клавиатуры на Android перестают нормально обрабатывать локаль (язык системы)
🤯4🗿3
С осенью закончился и сезон конференций. Пора подводить итоги.

Начну с того, что за этот сезон я побывал на 6 конференциях и на 3 из них выступил. Итого - 6 выступлений за этот год (в прошлом было 4). Буду стараться в следующем году побить этот рекорд.

Теперь немного о конференциях:

- DevFest Omsk. Тут понравилась аудитория, очень круто, что были и практикующие разработчики и студенты. Отдельный трек под Flutter был хорошо собран.

- Стачка Питер. Все также круто, как и в Ульяновске, но с немного большим масштабом.

- Mobius 2024 Autumn. Хоть я и не был спикером, но попасть в очередной раз на эту конференцию было полезно (один из спикеров даже на мой старый доклад про многомодульность сослался). И как обычно это было круто, особенно лекция про поиск инопланетной жизни и потом общение с Владимиром Сурдиным на закрытом ужине.

- CrossConf 2024. Это пока единственная конференция, которую я ни разу не пропустил. В этом году повысился уровень докладов по Flutter.

- Merge 2024 Сколково. Просто неплохо, была полезная информация, но все равно, есть куда стремиться.

- KD Conf. Конференция проходила в первый раз, но качество спикеров было хорошее, есть о чем подумать.

Теперь настает пора готовиться к новому сезону, который начнется в марте! До встречи на конференциях!
🔥2
Бенчмарки Flutter и React Native

Недавно на Medium наткнулся на начавшийся цикл статей про сравнение производительности RN и Flutter. Первая часть не такая интересная, так как не затрагивает новую архитектуру React Native.

Немного об этой новой архитектуре. Вроде бы порешали главную проблему - JS Bridge. Кстати, некоторые начали вдруг заявлять, что это обновление RN полностью убьет Flutter. У меня есть мысли на этот счет. Ставьте 🔥, если хотите, чтобы я сделал это в виде статьи, или 🚀 для поста

Но все познается в сравнении. И как раз вчера вышла вторая часть цикла статей. И что вы думаете? RN проиграл по всем показателям.
🔥26👍3😁2💩1
Прошло 11 дней. Сразу скажу, статья будет, но в конце года, либо в начале 2025, так как нужно подготовить к ней многое. Но на этой неделе вас ждет другая статья на Хабре
1
Forwarded from Flutter. Много
Hola, Amigos! На связи мобильная команда агентства продуктовой разработки Amiga. Вчера прошла презентация FlutterInProduction, где рассмотрели всю десятилетнюю историю нашего любимого фреймворка Flutter.

Да, мы ничего не перепутали, Flutter в этом году исполнилось 10 лет, хотя в самом начале он назывался по-другому и работал только на Android. Весь этот срок Google разделили на 3 фазы:

▫️2014-2018 — экспериментальная фаза

▫️2018-2022 — фаза роста

▫️2022-наст.время — фаза работы в продакшене

Наш Mobile Team Lead Павел Гершевич застал все 3 фазы, поэтому делимся его комментарием:

Так как я начал заниматься Flutter в конце экспериментальной фазы, могу сказать, что за это время он очень изменился.
Во-первых, он стал намного быстрее, этому помогают различные изменения внутри самого фреймворка, особенно новый движок Impeller.
Во-вторых, сообщество вокруг Flutter создает множество прекрасных и помогающих в работе библиотек и продуктов.
Думаю, что за следующие несколько лет Flutter превратится в одно из основных средств разработки под любые устройства и станет еще лучше


Кроме истории самого фреймворка и историй разработчиков, которые его используют, Google поделились некоторыми планами на наступающий 2025 год:

- Выпуск Impeller для десктопа;
- Появление Preview для виджетов, чтобы видеть верстку до запуска приложения;
- Прямой запуск нативных функций операционных систем без надобности писать Platform Channel;
- Упрощение написания виджетов при помощи добавления декораторов;
- Полный переход на Swift Package Manager для iOS.

Делитесь в чате, когда вы пришли в Flutter и как, по-вашему, он изменился с тех пор.
Ну чтож, оно вышло!
🎉3