Flutter Tech-Lead Notes
305 subscribers
135 photos
9 videos
81 links
Download Telegram
Вторая часть - благодарности и пожелания. Начну я с личных.

Основатели Аспирити Гоша и Саша. Спасибо за советы, которые за 6,5 лет набрались и очень сильно помогают. Желаю удачи во всех начинаниях и чтобы ваши стартапы активно развивались!

Генеральный директор - Ратибор. Я очень многому у тебя научился, именно с тобой я стал менеджерить. Спасибо за то, что поверил в то, что мы можем сделать мобильный отдел и верил в это больше меня. Желаю тебе просто продолжать быть таким же крутым!
Теперь команда развития.

Женя - человек, который встретил меня в мой первый день с вопросом «А ты кто?». На самом деле очень много чему научился у тебя, ты всегда поддерживала меня и в каком-то моментах даже спасала. Желаю, чтобы у тебя все было максимально круто!

Серега - мы с тобой знакомы с первого моего дня в компании (хотя на время ты уходил). Где-то ты у меня советовался, где-то я у тебя. Спасибо за ответы на различные вопросы по тестированию.

Макс - ты пришел позже, но стал главным по веб-разработке. Тебе пожелаю много сил и всякого такого!

Полина - жаль нам не довелось поработать на проектах. Пожелаю, чтобы с отделом дизайна все было хорошо и у тебя тоже все было хорошо!

Леха - драйви и развивай Аспирити дальше! Хорошей тебе семейной жизни!

Маша - полгода, которые ты в компании немного сдвинули процессы на новый уровень! Желаю продолжать в том же духе!
Мои любимые проджекты!

Катя - с тобой мы больше всего работали, прошли через многое за последние пару лет. Желаю тебе быть такой же жизнерадостной и поменьше нагрузки!

Паша - с тобой мы были всего на одном проекте, но еще и сошлись по общим интересам. Продолжай в том же духе!

Рита - с тобой мы не успели поработать на проектах, поэтому у меня почти нет что сказать. Просто будь собой!

P.S. Буду в Новосибирске, напишу, встретимся!
Вчера было немного не до постов, поэтому сегодня будет их побольше. Продолжаю прощание, на очереди мобильный отдел

Марат - хорошо, что я нашел тебя из всех кандидатов, развивайся в техническую сторону, из тебя получится неплохой Senior!

Захар - развивайся, обучай других, у тебя это круто получается! И начинай выступать, у тебя точно получится!

Артем - у тебя тоже все будет круто, тем более появилось новое направление - ИИ, а у тебя хорошая обучаемость)))
А пишу я из Шереметьево, пройдя через ад. Но об этом позже.

Осталось немного, тут буду обобщать.

Дизайнеры - вы максимально крутые! Спасибо вам всем за то, что делаете крутые интерфейсы и помогаете остальным!

QA-отдел - у вас у каждого разный подход, с кем-то мы учились тестить вместе, с кем-то не успели поработать, но я хочу сказать спасибо всем!

Настя - когда нужен был контент, ты всегда приходила ко мне и наоборот. Жаль не успели сделать статьи. Спасибо тебе за помощь!

Разрабы - вы просто крутые, развивайтесь, все, что задумываете, получится!
Ну и в заключении пожелание всей компании Аспирити!!

Все будет хорошо! Все изменения ведут к росту! За 6,5 лет мы с вами это уже не раз проходили.

Не бросайте начинания, выступайте на конференциях (в каждом отделе есть как минимум один человек, кто может это делать уже сейчас)!

Ну и я не говорю прощайте, я говорю до скорой встречи!
Наконец-то ад, связанный с перелетом закончился. Расскажу немного о нем.

Акт 1. Дорога в аэропорт.
Утром, выехав с отеля, я посмотрел, что аэроэкспресс отправляется с Белорусского вокзала. Ну и оставил чемодан там. В итоге оказалось, что сейчас (несколько дней) он идет с другого вокзала. Было 2 варианта - такси до того вокзала либо такси до Шереметьево. Немного подумав, я выбрал второе и не прогадал.

Акт 2. Регистрация на рейс.
Первая очередь была уже на входе в терминал. Минут 10 заняло.
Раньше (лет 10 назад) возле регистрации были места для посидеть, думал там немного пересобраться (куртка и подушка были в чемодане + я немного закупил подарков). Черт там плавал - пришлось отойти в угол и открывать там.
Но это еще цветочки. Очередь на регистрацию - вот где настоящий ад. 40 минут (примерно) ожидания, а это очень много для очереди на 8 окон, и посадочный у меня. Аэрофлоту нужно с этим что-то делать, так как таких очереди было 2.
Потом небольшая (по сравнению с прошлыми) очередь на паспортный и досмотр. Тут вроде как и ожидал по времени.
В итоге от приезда в аэропорт до чистой зоны прошло более часа.

Акт 3. Перелет.
Хотя и был большой самолет (три топора, тут должна быть шутка про казино), но места в нем узкие и нет возможности регулировать подачу воздуха.
Почему я раньше любил Boeing 777, не знаю.

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

Вот такая вот история… а сегодня я раскрою свою новую компанию, некоторые из подписчиков уже в курсе
Первый рабочий день в новой компании подошел к концу, поэтому пришла пора рассказать, куда я перешел.

Это - Amiga, теперь я буду тут заниматься мобильными приложениями на Flutter.

А еще у компании есть свой канал, куда и я буду иногда посты писать - @flutter_amiga
5 минут до WWDC
Channel photo updated
Краткие итоги WWDC 2024:
- visionOS 🔥
- iOS 🔥
- Обновление наушников 👌
- tvOS 👌
- watchOS
- iPadOS 🔥
- macOS 🔥
- Apple Intelligence 🔥

Как по мне, это была одна из лучших презентаций за последние пару лет у Apple. Особенно стартанули из самолета хорошо!
Please open Telegram to view this post
VIEW IN TELEGRAM
Полные итоги и мое мнение.

Анонсы Apple TV+ пропустим, сервису просто исполнилось 5 лет.

visionOS 2
Да, она по прежнему мало кому доступна, но теперь мне хочется ее не только попробовать, но и поработать с ней. Это все из-за добавления огромного экрана под macOS. Система пока еще далека от идеала.

Обновление AirPods Pro
Добавили изоляцию голоса программно, это не третье поколение (информация для тех, кто мог так подумать). Раньше была только в Max, если не ошибаюсь. Хорошая функция, но она не так уж и нужна. И не понятно, обновят только второе поколение или первое тоже (у меня как раз первое)

tvOS 18
Минорное обновление. Добавили функцию определения кто на экране и что за музыка играет в фильме. Такое уже есть у некоторых сервисов, но если будет работать просто везде - это топ.

watchOS 11
Тоже достаточно минорное обновление. Умное появление виджетов - полезно, но как это будет работать, пока не понятно. Ну и добавили больше отслеживаний. Работать будет начиная с Apple Watch 6 (на этом моменте я выдохнул)
iOS 18

Самое интересное и глобальное обновление за последние несколько лет.

Главные обновления коснулись рабочего стола и всего, что с ним связано. Теперь иконки можно ставить как угодно и их красить. Очередная боль для разработчиков, если это будет делаться не в автоматическом режиме. Но к такой фиче в Android привыкли, думаю, и тут привыкнем. Еще обновили центр управления (свайп вниз слева сверху), изменили сами иконки + можно будет теперь создавать свои. Ну и на экране блокировки теперь тоже можно менять.

Обновили приложения фото, сообщения, почта. Полезно, но не так, чтобы этим пользоваться постоянно. Хотя скрытие скриншотов - топ.

Игровой режим. Теперь батарея телефона должна будет жить дольше. И не будут бесить уведомления.

Итоговая оценка - 8 из 10.

Будет работать на iPhone начиная с XS, XR, SE 2020
iPadOS 18

Умеет все тоже самое, что и iOS 18. Это как обычно.

iPad уже 14 лет и впервые туда завезли калькулятор, да еще какой. Можно писать уравнения или выражения и он сам подсчитает.Обновили заметки, теперь текст рукописный будет подправляться ИИ.

Работать будет от iPad 7 и новее

Оценка 8 из 10
macOS 15 Sequoia

Название было понятно, его зарегистрировали лет 5 назад.

Самая полезная фича - работа с iPhone. Теперь можно вывести экран телефона на macOS. Это максимально полезно для проведения демонстраций заказчику. А еще с помощью этого пуши будут объединяться. Пока не понятно, если мне в телегу прилетит сообщение, он покажет с телефона, с мака или оба?

Наконец-то нормальное позиционирование окон. Не нужно дополнительное приложение для этого. Когда объявляли, я сильно обрадовался этому факту, так как на 4К мониторе не очень удобно с 1-2 окнами.

Приложение Пароли. Пока единственная не сильно понятная для меня фича. Был же старый добрый KeyChain, который норм работал. Зачем?

Оценка - 10 из 10
И главное обновление - Apple добавляет ИИ в свои системы. Назвали все это Apple Intelligence (сокращенно AI, что прикольно)

Вроде как они тут не используют собственную LLM полноценную, не доросла значит до представления миру, а что-то сложное, связанное с текстом будет делать ChatGPT, причем бесплатно.

Чего полезного - генерация картинок в 3 стилях, основываясь на контексте. Может заглушать пуши, которые сейчас тебе не нужны. Короче говоря, обновленная Siri составит конкуренцию остальным.

Оценка 9 из 10
Почему я не ставлю Beta-версии для разработчиков? И не буду использовать все, что представила Apple до официального релиза (ну, может что-то одно выберу потом)

Для этого есть несколько причин и все они связаны с личным опытом.

В 2022 году я поставил себе беты на абсолютно все устройства. Но тут возникла проблема, причем большая. Я не смог делать сборки для App Store. Почему:
- Для выкладывания нужен обычный Xcode
- Для обычного Xcode нужна релизная macOS
Поэтому пришлось все ставить и переключаться, когда надо. А места не всегда хватает. Тогда я на 512 гигах сидел.

В прошлом году вроде все нормально было, но переключать 2 Xcode тоже такое себе.

Ну и мой опыт с Android 15, который я описывал в этом году.

Поэтому, я вывел правила:
- Не ставить беты на основные устройства. У меня это iPhone, MacBook и Apple Watch
- Сначала посмотреть обзоры и узнать, какие баги есть и можно ли с ними жить, а уже потом ставить. В идеале подождать публичной беты
- Всегда делать полные бекапы, чтобы не было проблем при откате системы
- Не использовать такие устройства для разработки для экономии времени

Именно поэтому я не ставлю и вам не советую
Пока я работал в Аспирити, мы не применяли Flutter Version Manager. Но сейчас я его наконец-то попробовал.

Скажу так - удобно, мне понравилось. Но минусов все-таки больше.

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

Только вот подход "начали разрабатывать на одной версии, на ней и останемся" - точно не мой. Если будут баги фреймворка, которые уже поправили в новых версиях, то нужно будет переходить, а это может сломать приложение. Поэтому апгрейд должен быть постепенный.

Тоже самое и с библиотеками. Всегда нужно стараться держать актуальные версии. Просто иногда люди этого боятся. Боятся, что их код не заведется или перестанет работать. А для кого тогда сводку по изменениям пишут?
Я тут потихоньку начинаю писать в канал Flutter.Много
Forwarded from Flutter. Много
Многомодульность в Flutter

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

У многомодульности есть 2 основных подхода: монорепозиторий и полирепозиторий. Сегодня рассмотрим первый. Кто-то изобретает велосипед, а мы используем готовый пакет Melos.

Для начала нам нужно установить его глобально через консоль.

dart pub global activate melos

Далее создаем папку под проект. В ней обязательно должно быть 2 файла: pubspec.yaml, в котором обозначим название проекта и версию Dart, а также melos.yaml для настроек монорепозитория. Создаём нужные приложения, пакеты и плагины, в которые будем писать код. Вот примерное расположение папок для 2 приложений:

my_project
|— apps
| |— app_1
| |— app_2
|— common
| |— ui_kit
| |— models
|— features
| |— feature_1
| |— feature_2
| |— feature_3
|— melos.yaml
|— pubspec.yaml
|— README.md


pubspec.yaml
name: my_project

environment:
sdk: '>=3.0.0 <4.0.0'

dev_dependencies:
melos: ^6.0.0


melos.yaml
name: my_project

packages:
- apps/**
- common/**
- features/**


После этого мы получаем зависимости для всех созданных нами пакетов. Также это сгенерирует файлы pubspec_overrides.yaml, которые нужно не забыть добавить в .gitignore. Делается это командой:

melos bootstrap

Так у нас появляется наш многомодульный проект на Dart и Flutter.

Поделитесь в чате, в каких многомодульных Flutter-проектах вы участвовали? С какими трудностями встречались?
Закончился весенний сезон конференций.

Пришла пора подвести итоги, так как было много всего. А также поставить себе план на осенний сезон, подготовка к которому уже началась.

С февраля по июнь:
- 3 выступления на конференциях
- 2 выступления на публичных митапах
- 3 внутренних митапа еще в Аспирити
- Посещение конференции и митапа как слушатель

Но были 2 отказа - один раз мне отказали и один раз отказался я.

Что-то было в первый раз:
- Первое приглашение спикером на конференцию (на осенний сезон уже получил приглашения)
- Выступление на митапе вне Аспирити, а именно у Тинькофф (уже Т-банк) и KozhinDev
- Выступление с мобильным докладом на конференции без мобильной секции
- Первая поездка в Ульяновск
- Первая конференция без указания компании на бейджике и мерче

Что запомнилось больше всего:
- Аудитории на KozhinDev Meetup и DUMP 2024, это очень круто, что столько человек приходят на мои доклады
- Спикерская тусовка на Стачке в Ульяновске и на Mobius (ну тут стандарт) - если читаете, вы крутые!
- Перелет из Ульяновска в Москву в бизнес-классе, что было очень неожиданно и приятно
- Афтер-пати Яндекса на DUMP, Mobius и особенно на CodeFest, где я забрал Яндекс.Станцию Макс

Что ждет осенью:
- Несколько митапов, как онлайн, так и оффлайн. Скорее всего они все будут публичными
- Много конференций. Уже готовлю темы и доклады как минимум на 4, думаю еще над одной и жду объявления последней
- 2 задумки, о которых вы скоро узнаете