Flutter Tech-Lead Notes
318 subscribers
136 photos
9 videos
82 links
Download Telegram
Подведем итоги. Хотя 2022 год был тяжелым, но все-таки в нем были и хорошие моменты.

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

А главное тут одно - каким бы ни был год, что бы не случилось, нужно стараться оставаться позитивным и развиваться несмотря ни на что. Такой вывод я сделал для себя.
🔥4
Ну и про 2023.
В беспросветной череде плохих новостей остается только надежда на лучшее. Но планы какие-то можно начать строить:
- Выступить на крупной конференции
- Найти крутой проект
- Вырастить отдел
- Съездить за границу.

По Flutter можно сказать одно - нас ждет крутой год по обновлениям, Dart 3 принесет много интересного. Надеюсь, не будет таких проблем с миграцией, как с Flutter 2 и Dart 2.12.

Всех с Новым 2023 Годом! Чтобы было мирное небо над головой и близкие рядом!
🎉4
Долго искал хорошую библиотеку для работы с биометрией и защищенным хранилищем для Flutter. Да, можно было написать самому, можно было костыльно объединить LocalAuth и SecuredStorage.
Но вот достаточно правильное решение - https://pub.dev/packages/biometric_storage
👍1
Вчера Apple представили очередное обновление линейки Mac и новые процессоры M2 Pro и M2 Max
Уже привычно, что они делают свои компьютеры все быстрее и мощнее, но при этом более энергоэффективными. НО! Удивило то, что это произошло как будто это какое-то минорное обновление - через видео и обновление сайта, а не через презентацию.
Хотя презентацию им стоило сделать, так как сегодня они выпустили еще 1 обновление - второе поколение больших HomePod.

P.S. Мысли по поводу нового железа опишу в следующем посте
👍4
Кажется, что скоро в РФ блоканут Google. Уже второй день наблюдаю, что некоторые сайты гугловские не открываются либо не грузят некоторые файлы.
Вчера DartPub (pub.dev) только HTML отдавал либо не грузился совсем. Сегодня проблемы с Google Play (причем не только с маркетом, но и с консолью разработчика)
🤯1
Safari в последней версии macOS - это какой-то кошмар.
Я выше уже писал, что у меня DartPub отдавал только HTML. Так вот, это повторяется спустя несколько дней. Но вчера появилась еще одна проблема, которая мешает работать - до конца не прогружается Bitbucket, не грузит некоторые запросы и шрифт. Причем, когда я пробую через другой браузер, то все нормально.
Стоит переходить на Google Chrome?
🤔2
В итоге, обошлось малой кровью. Почистил кеш Safari, прописал гугловские DNS сервера (8.8.8.8 и 8.8.4.4 если кому тоже надо) и отключил поддержку IPv6 (перевел в ручной режим из автоматического). Сначала думал, что не сработает, а в итоге, заработало. Но есть один минус - вышло со всех сайтов.
По блокировке Google я оказался не прав. Почему-то в macOS и iOS не работает SSL для него, на компьютерах с Windows все нормально. Скорее всего в новом обновлении заработает, на что и остается надеяться.
Вчера ночью прошел Flutter Forward и хочется поделиться своими впечатлениями от планируемых к запуску фичах Dart и Flutter.

Как я и думал, обновление Dart 3 будет очень масштабным:
- Новые фишки языка, что-то из этого синтаксический сахар, что-то будет очень полезно в работе. Например, sealed классы уменьшат использование кодогенерации в множестве проектов (сейчас для это используется freezed), или новое написание switch case (и использование case внутри if) - очень полезная вещь, чтобы не загружать свой код лишним
- Поддержка компиляции в WASM. Flutter Web станет еще более производительным, что позволит выводить в прод по-настоящему крутые проекты
- Поддержка RISC-V. Для меня, как для разработчика приложений для iOS и Android это спорная вещь, так как не известно, как будет применяться
👍3
По функциям 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