Flutter Tech-Lead Notes
318 subscribers
136 photos
9 videos
82 links
Download Telegram
Данный пост должен был выйти вчера, но тяжело подобрать слова...
Уходить с проекта, в который вложил свою душу и много сил, всегда тяжело. Поэтому хочется выразить большую благодарность всей команде (я знаю, что некоторые из вас это читают).
Началось все этой весной, когда мне предложили стартовать такой проект как TeamLead. И пошла череда собеседований, растянувшаяся аж на полтора месяца. Но я рад, что у меня получилось собрать настоящую сильную команду из еще 3 разработчиков. Летом мы стартанули. Архитектура, первые фичи... Я, как человек с практически нулевым, на тот момент, опытом управления командой, причем такой сильной, все-таки смог организовать первичные процессы.
Осенью, в команду пришел еще один разраб моего уровня. Мы учились друг у друга, мы советовались друг с другом, помогали друг другу эти 4 месяца. В какой-то момент, он стал Team-Lead, а я сохранил за собой технические вещи и стал и там Tech-Lead (если нужен пост про отличия, пинганите в ЛС).
Всем спасибо за работу! Было очень круто с вами поработать над таким большим и сложным проектом!
R.S. Я не прощаюсь, я говорю до встречи!
🤝3👍1🔥1🙏1
Подведем итоги. Хотя 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