Flutter Tech-Lead Notes
318 subscribers
136 photos
9 videos
82 links
Download Telegram
По функциям Flutter, их можно разделить на 2 категории - хорошие и максимально крутые. Начнем, с хороших:
- Адаптивность. Ее наконец встраивают в сам Flutter, будет чуть удобнее, чем раньше
- Шейдеры на Web. Спорно, но на самом деле очень интересно было бы с ними поработать, так как на мобилке и для десктопа они уже есть
- Встраивание элемента в JS. Интересная функция, можно сказать прорывная, особенно с примером, который показали. Но как по мне, использоваться будет крайне редко
- Google News Toolkit - штука для крайне малого количества человек, непонятно, как там написан бэк и как это дело кастомизируется

А теперь крутые:
- Обновление Impeller. Скоро можно будет не заморачиваться с запеканием шейдеров. Для iOS сделают включенным по умолчанию
- Поддержка 3D даст дизайнерам очень большой простор для творчества. Если все будет хорошо, то можно будет делать то, что делают сейчас с некоторыми сайтами, используя three.js
- JNIgen и FFIgen. По моему мнению, это лучшее, что случалось с Flutter. А если потом добавят еще и под Swift, то будет идеально. Хотелось бы еще увидеть конечно, что это будет с библиотеками работать, но пока и с системными API операционок сойдет

Ну а общее впечатление от keynote такое - впервые за долгое время проходил оффлайн event, но особый фокус на месте его проведения для всего мира не так сильно полезен. Теперь ждем Google I/O, чтобы представили как эти функции будут работать на самом деле.
👍5
Возникла на этой неделе нестандартная задачка. Есть Mac Mini M1 (16, 512), на котором надо:
- Запустить CI/CD для мобильных приложений
- Сделать возможным удаленное подключение нескольких пользователей одновременно для тестирования web-приложений и настроек мобильного CI/CD
- Чтобы все это не мешало человеку, который за ним сидит

Раньше существовала только вторая задача и мы использовали RealVNC. Но тут есть проблема - для того, чтобы было 2 пользователя одновременно, нужно покупать дорогую лицензию + для каждого пользователя надо по своему монитору подключать.
Сейчас я использовал бесплатный Vine VNC Server, запустив по серверу на каждом пользователе, но на разных портах. Для подключения использую Remote Ripple (если кто подскажет другой хороший клиент для VNC, буду рад). В итоге имеем:
- Удаленный доступ работает в локальной сети, нужно теперь внешнее подсоединение настроить (прокинуть порты в роутере или настроить DDNS)
- Нужен один монитор на все, не надо тратиться на переходники и заглушки
- Мощности хватает на 3 одновременно работающих пользователя
👍2
Закидывал сегодня заявки на выступления на IT конференциях с новым докладом (Привет организаторам, которые проверяют соцсети!). Было прикольно пересматривать свои старые выступления и митапы. Думаю, на этой неделе поскидываю лучшее сюда
Продолжаем неделю записей моих выступлений. Сегодня самый популярный ролик с моим участием с канала Aspirity - обзор Firebase, уже немного устаревший, но не потерявший свою актуальность.
https://www.youtube.com/watch?v=og-Gv2jaM0M
🔥3👏1
Сегодня закину один из самых первых своих митапов. Да, информация в нем уже немного устарела, но все еще может быть полезной для тех, кто только решает вкатываться в кросс-платформу.
Этот митап я проводил 3 с лишним года назад и в завтрашнем посте будет его вторая часть. Стоит ли делать третью?
https://www.youtube.com/watch?v=MYdPREb2nzE
🔥2👍1
А вот и обещанная вчера вторая часть сравнения Flutter и RN
https://www.youtube.com/watch?v=oSsrQkpUGkI
Сегодня разбирался с автотестами. Попробовал наконец mocktail. Нашел сразу и плюсы и минусы, в сравнении с mockito.
Плюсы:
- Быстро описать какой мок тебе надо
- Нет кодогенерации и из-за этого легче поддерживать
Минусы:
- Вместо when(myMock.myFunc()), нужно писать when(() => myMock.myFunc()). Возможно путает на первом этапе.
- Не нашел альтернативы any, возможно я недостаточно хорошо искал
🤔1
Продолжаем неделю записей выступлений (на самом деле там их как раз 7). Сегодня видео для тех, кто хочет узнать мое мнение о различных менеджерах состояний https://www.youtube.com/watch?v=NVo5pLd0xvw
И заключительной записью будет митап, на котором я рассказывал про фреймворки на дарте, прошло уже полтора года и информация про бекенд уже не так актуальна, так как появились serverpod и data-frog. Скоро анонсирую про них митап
https://www.youtube.com/watch?v=fcpQ5kZG3r8
Flutter Tech-Lead Notes
Сегодня разбирался с автотестами. Попробовал наконец mocktail. Нашел сразу и плюсы и минусы, в сравнении с mockito. Плюсы: - Быстро описать какой мок тебе надо - Нет кодогенерации и из-за этого легче поддерживать Минусы: - Вместо when(myMock.myFunc()), нужно…
История продолжается. Теперь уже настройкой CI/CD.
Сначала стоял вопрос, что выбрать - Bitbucket Pipelines, fastlane или перенести репу на GitHub и заюзать Actions. В итоге, был выбран первый вариант, как самый простой.
Изначально казалось, что нужно просто поставить docker и все, что необходимо для runner, и заработает, но нет, docker не понадобился и пришлось настраивать сборку локально на удаленном маке. Но это полдела.
Сборки под Android было решено закидывать в Slack, так как Firebase Distribution очень криво работает с российских IP адресов. Долгие поиски что не так, показали очень тупую ошибку, но файлы теперь закидываются и тестировщики могут их забирать. И да, в Aspirity теперь есть Slack бот, которому можно кидать файлы и название канала и он зальет этот файл, очень удобно.
👍1🔥1
Сегодня залез на внутренний проект, который разрабатывается моей командой, пока они не заняты на коммерческих проектах. Было 2 задачи: запустить в iOS симуляторе, настроить CI/CD для Android.
1) Была ошибка, мол Flutter.h найти не может. Сделал за 5 минут, просто перегенерив папку iOS на проекте. Почему миддл разраб этого не смог сделать - большой вопрос.
2) Думал, что настройка CI/CD будет легкой прогулкой, но из-за того, что 2 других разработчика (сам я редко заглядываю на огонек в этот проект, им рулит миддл) забили на обновление библиотек, делалось это около часа, если не больше. Ииииии..... в итоге сломалась сборка под iOS. Придется ее сначала чинить, чтобы настроить CI/CD для iOS части приложения
🤔2
Тут отличные новости! Не терпится попробовать
Introducing Realm for Dart & Flutter: Michael Thomsen рассказывает про Realm который представили MongoDB.
https://medium.com/dartlang/introducing-realm-for-dart-flutter-e30cb05eb313
👍2
Давно не писал ничего, поэтому начинаю ежедневную серию постов - про рабочее место и технику. Расскажу, чем я пользуюсь и пользовался.
Сегодня начнем с малого - web-камера.

Для чего?
Вебка мне нужна не только как камера для созвонов в Zoom и Google Meet, но и как микрофон.

Чем пользуюсь?
Сейчас использую 2 вебки - встроенную в ноут из офиса, а дома у меня стоит Anker PowerConf C200. Иногда могу использовать камеру iPad и если есть крайняя небходимость, свой iPhone в режиме Continuty Camera (вроде так оно называется).
Немного про Anker. Это отличная 2K камера, стоит около 100$ (можно и дешевле найти, например, я за примерно 50 брал), за эти деньги конкурентов у нее нет. Также радует ПО с большим количеством настроек - от разрешения камеры до настроек цвета и света.
👍1
Вчера пропустил пост, поэтому сегодня их будет 2. Оба будут посвящены устройствам ввода. Начнем мы с клавиатуры.

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

Как подобрать под себя?
- Определиться со способом подключения клавиатуры. Тут 3 варианта: по проводу, 2.4 GHz и Bluetooth. Как мне кажется, самый удобный из них это блютуз, но не все компьютеры имеют его поддержку.
- Определиться с размером клавиатуры. Тут нужно решить, пользуетесь ли вы NumPad, нужны ли функциональные клавиши отдельно.
- Определиться с раскладкой. Начнем с раскладок под ОС. Есть 2 основных варианта - под Windows и под macOS. А также с длинной клавиш shift и enter.
- Определиться с уровнем шума, высотой клавиш и, возможно, свитчами у механической клавиатуры.

Чем пользуюсь?
Раньше я пользовался только дешевыми мембранными клавиатурами, что не всегда подходило под мои цели. Но после появления у меня моего первого MacBook я просто влюбился в клавиатуру с механизмом "ножницы" и долгое время использовал только клавиатуру ноутбука. Сейчас у меня 2 клавиатуры - одна основная, вторая для игр.
Основная - Apple Magic Keyboard с TouchID. Как по мне, для человека использующего мак, нет ничего лучше, но многие со мной не согласятся. TouchID работает корректно, подключение сразу, даже если мак спит.
Дополнительная - механическая со свичами Cherry MX Red. Главный минус для меня - раскладка под Windows. Высокие клавиши тоже играют свою роль, и моя привычка печатать на клавиатуре ноутбука не дала мне перейти на нее полностью.

Что могу посоветовать?
Однозначно Apple Magic Keyboard 2ого или 3его поколения в любой комплектации.
Из низких Logitech MX Keys в любой комплектации. Хорошая клавиатура, сочитающая несколько раскладок и работающая с несколькими компьютерами одновременно.
Из механики - продукцию KeyChron. Хотя это все вкусовщина
🔥1
Продолжим. В данном посте я решил объединить 2 устройства ввода - мышь и трекпад.

Как подобрать под себя?
- Понять, что больше подходит. Есть люди, которые полностью отвергают трекпады, особенно пользователи Windows (некоторые производители только только научились встраивать жесты). Поэтому брать трекпад стоит, если он действительно нужен.
- Определиться со способом подключения. Тоже самое, как и с клавиатурами (см. выше)
- Подобрать под себя форм-фактор. Тут следует учесть привычки. У меня лежит кисть прямо на мыши, у кого-то могут только подушечки пальцев касаться кнопок. Сюда относим размеры и вес манипулятора.

Чем пользуюсь?
- Трекпад MacBook. Очень удобно, если кроме ноутбука ничего под рукой нет. Лучшее скольжение, много жестов для управления системой. По моему личному мнению - Apple делают лучшие трекпады.
- Apple Magic Trackpad. Standalone версия того трекпада, что описан выше, но немного большего размера. Что-то дополнительно писать нет смысла.
- Apple Magic Mouse. Мышь и трекпад в одном. Есть свои минусы, например, отличие колесика для прокрутки, которое заменено на жесты. Пользовался раньше первым поколением, там была проблема с заменой батареек, садились раз в месяц. Сейчас второе и его проблема с зарядкой (кто не в курсе, у него порт находится на дне), но у меня проблема решена при помощи трекпада (обычно он вспомогательный, а в случае зарядки мыши, используется как основной).
- Дешевая мышь от Dexp. Куплена лет 5 назад на замену умершей игровой мыши из Китая. Использую только для игр, так как есть и колесико, и отдельные клавиши)

Что могу посоветовать?
Для пользователей macOS обязательно иметь что-то поддерживающее жесты, без этого никак - Magic Mouse или Magic Trackpad.
Далее дело вкуса, но я бы смотрел в сторону Logitech.
👍2
Сегодня не менее холиварная тема про устройства на рабочем месте - монитор.

Как подобрать под себя?
Определиться с размером. Сейчас меньше 24 дюймов лучше не брать, лучше всего, если монитор будет около 27 дюймов. Но если хочется широкий, то не менее эквивалента 27 дюймов с соотношением 16:9
Определиться с разрешением. Сейчас разброс идет от HD (1280x720) до 8K. Разрешение не просто влияет на восприятие картинки, но и на здоровье человека, поэтому для программирования я бы не стал рассматривать все, что ниже 2160x1440 (для широких аналогично).
Определиться с герцовкой (частотой экрана). Тут все зависит только от того, будете ли вы играть и нужна ли вам отрисовка более, чем 60 кадров в секунду.
Определиться с технологией изготовления матрицы. По моему личному мнению, лучше выбрать IPS, VA или OLED монитор.

Что использую?
Сейчас моим спутником в работе является LG Ultrafine 27UP850-W. Это уже третье поколение этих мониторов, радует наличие не только колонок (хотя звук из них не очень), но и порта USB-C, он же Thunderbolt 3 (или 4, кто его знает). То, что этот порт есть, означает, что я могу по одному кабелю передавать картинку на монитор, звук на колонки, заряжать ноутбук (до 96W) и дополнительно использовать USB-хаб на задней панели (главный минус - оба порта USB-A 2.0).
А теперь к минусам, хоть картинка и 4k, и IPS матрица, macOS делает все слишком мелким, что мне пришлось понизить разрешение до 3k (3008 на 1692) при использовании MacBook Pro на M1, после смены ноутбука можно было выставить уже 3360 на 1890. Это происходит из-за того, что на 2 модели ставится одна и та же прошивка, поэтому монитор определяется системой, как 32 дюйма. Еще один минус, что после обновления на macOS Ventura стало невозможно включить HDR, хотя с Monterey все прекрасно работало).

Что использовал?
В первый раз за этот цикл появляется обзор на технику, которая была раньше. Экраны ноутбуков и моноблока сюда не попадут, о них расскажу, когда перейдем к компьютерам.
Перед покупкой монитора от LG, я пользовался изогнутым Samsung на 24 дюйма с FullHD разрешением. Он и был причиной замены. Когда я работал на старых компах, все было нормально, но с M1 он законфликтовал и даже при выставленном максимуме, он выдавал расплывчивую картинку, из-за чего через пару-тройку часов начинали болеть глаза.
👍4