Flutter Tech-Lead Notes
319 subscribers
136 photos
9 videos
82 links
Download Telegram
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
🙏1
Почему я не ставлю Beta-версии для разработчиков? И не буду использовать все, что представила Apple до официального релиза (ну, может что-то одно выберу потом)

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

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

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

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

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

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

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

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

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

Тоже самое и с библиотеками. Всегда нужно стараться держать актуальные версии. Просто иногда люди этого боятся. Боятся, что их код не заведется или перестанет работать. А для кого тогда сводку по изменениям пишут?
👍1
Я тут потихоньку начинаю писать в канал 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 задумки, о которых вы скоро узнаете
🔥2
Forwarded from Flutter. Много
Hola, Amigos! Недавно прошла главная конференция по мобильной разработке этой весны — Mobius 2024 Spring.

Mobius — техническая конференция для специалистов, связанных с мобильной разработкой: iOS- и Android-разработчиков, архитекторов мобильных приложений, специалистов по DevOps, тестировщиков, тимлидов и руководителей проектов.

Для каждой из платформ спикеры обсуждают как нативную, так и кроссплатформенную разработку. И всё, что «вокруг»: от Swift до систем сборки.

От Amiga на Mobius выступил Павел Гершевич, наш Flutter Team Lead с докладом «Создание indoor-карты здания на Flutter».

Обсудили реализацию интересной задачи — размещение на одном или нескольких экранах внутренней карты здания. Рассказали о подходах и собственном решении с использованием Flutter.

Кроме этого, Павел выступил экспертом у Кирилла Адещенко из РСХБ-Интех на теме «Многомодульное приложение на Flutter» и доказал, что на Flutter можно создавать крупные приложения.

Пока доступны только презентации. Видеозаписями поделимся немного позже!

Пишите в чат, кто был на конференции? Чьи доклады понравились больше всего?
🔥2
Я потихоньку готовлюсь к заключительному этапу апгрейда рабочего места. Оно будет иметь теперь максимальный свой вид. Потом - только апгрейд некоторых устройств редкий будет происходить - ноутбук, монитор и может еще что-то.

Что в заключительном этапе:
- Уже появился новый коврик. Очень крутой
- Я провел апгрейд клавиатуры, пока привыкаю к ней. Расскажу потом что взял.
- Сегодня я заказал вещь, о которой думал около полутора лет. Она очень мне поможет.
- Немного прокачаю свой звук - ко мне уже едет микрофон. Пока временный вариант, на годик, чтобы понять как с этим работать, а потом уже и что-то подороже и профессиональней можно будет приобрести.

Ожидайте пост об этом примерно 10 июля.
🔥1
Я обещал, что будут сюрпризы. Вот и первый из них.

Многие из вас знают о книге “Основы Dart” за авторством Станислава Чернышева. Его постоянно просят сделать книгу по Flutter. Так вот - мы ее пишем!

У нас собралась супер-команда профессионалов:
- Станислав Чернышев - автор канала MADTeacher на YouTube и учебника "Основы Dart".
- Я, Павел Гершевич - Flutter Team Lead в Amiga и соавтор Flutter. Много. Спикер различных конференций и автор канала Flutter Tech-Lead Notes.
- Юрий Петров - Flutter Tech Lead в компании Friflex, автор YouTube и одноименного тг-канала «Мобильный разработчик», а также курсов на платформе Stepik
- Станислав Ильин - Flutter Team Lead в Поток'е. Автор YouTube и одноименного тг-канала "Стас Ильин"

Теперь важная информация про книгу:
За прошедший месяц мы утвердили структуру книги и распределили главы
Свежие материалы книги, прошедшие редактуру, будут выкладываться в курс на Stepik - Основы Flutter (в разработке)

Это позволит нам собирать быструю обратную связь по добавленному материалу и вносить правки

Хочешь принять участие? Предлагай тему сквозного проекта для книги, и если авторскому коллективу она понравится - мы добавим отдельное упоминание в графе с благодарностями.

Если хотите, чтобы книга получилась максимально полезной, ждем лайки и максимальную поддержку сообщества!
🔥5🆒2🐳1
Не знаю, в курсе ли вы, но у Flutter получилось сделать запуск по воздуху (без подключения кабелем к компьютеру). Главное, чтобы они были в одной сети.

Возможно, эта фишка вышла уже давно, но попробовал я ее только сейчас, и то случайно. Мне нужно было запустить приложение для одного из докладов, которые готовятся на осень (скоро пойдут анонсы уже) и я вместо эмулятора запустил у себя на iPhone.

Я очень ждал эту фишку, но думал, что она заработает сначала на Android. Теперь ждем и под Android (а может уже и есть способ?)
Спасибо моему студенту Максиму за подсказку, что на Android тоже можно запустить без проводов. Чуть сложнее, чем под iOS (где тупо кнопку нажать), но можно. Ну и на Windows и Linux будет тоже работать.

Что нужно сделать:
- подключаем телефон к той же сети, что и компьютер
- подключаем телефон по кабелю к компьютеру
- вводим в консоль команду adb tcpip 5555
- ищем IP-адрес телефона (Настройки - О телефоне). Нам нужен именно локальный IP
- выполняем команду adb connect {Наш IP}:5555
- отключаем кабель

Теперь мы можем отлаживать приложение по воздуху
👍3🔥1
Я пропустил очередной чекпоинт по целям на год. Он должен был быть неделю назад. Поэтому подводим итоги:
- Весной выступил на 3 конференциях, на осень пока прошел на одну и готовлюсь еще по трем. Возможно еще на парочку залечу. Цель в 5 выступлений закрою либо в сентябре, либо в октябре
- По пет-проектам интереснее. Я готовлю бомбу и начинаю выделять время на это
- Рост отдела и все для разработки. Так как я покинул Аспирити, то эта цель пока отменяется
- После моего ухода из Аспирити у ребят осталось 2 крутых проекта, а в Amiga я работаю над очень крутым проектом. Но увы, все под NDA. Эта цель выполнена
- Курс в СФУ завершен. Мы выпустили более 100 студентов. Они нереально крутые! Ну и те, кто закончил в этом году университет уже получили свои дипломы о профессиональной переподготовке
- Возвращаю цель о поездке заграницу. Тут все интереснее, скорее всего, это будет ближнее зарубежье

Итого - 2 цели из 5 оставшихся уже достигнуты. Посмотрим, что будет через 3 месяца
🔥2👍1
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Недавно в чате вы спрашивали, в чем разница между go_router и auto_route. Рассказываем!

Сходства

Обе этих библиотеки работают на Navigator 2.0, что дает нам больший контроль над навигацией в наших приложениях. Также часть функционала в них совпадает.

Количество кода

В auto_route мы пишем намного меньше кода, так как используется кодогенерация. Но некоторые не любят ее, поэтому используют GoRouter. Также auto_route позволяет нам напрямую передавать нужные аргументы прямо в Route, не используя дополнительный код.

Разберем на примере вот такого экрана:


class HomePage extends StatelessWidget {
final String appName;
const HomePage({required this.appName, super.key});

}


Для auto_route у нас будет:


AutoRoute(page: HomeRoute.page);

context.router.push(HomeRoute(appName: ‘My App Name’));


А для go_router:


GoRoute(
path: ‘/home’,
builder: (context, state) {
final appName = state.queryParams[‘appName’];
return HomePage(appName: appName);
}
);

GoRouter.of(context).push(‘/home?appName=”My App Name”’);


В следующей части поговорим о количестве багов, вложенной навигации и Route Guards.

А пока на этом всё, пишите в чате, было ли полезно?
👍1
Forwarded from Flutter. Много
Hola, Amigos! На связи Павел Гершевич, Flutter Team Lead в Amiga. Продолжаем рассказывать, в чем разница между go_router и auto_route.

Количество багов и костылей

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

Вложенная навигация

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


Scaffold(

body: AutoRoute(),

);


Да, go_router поддерживает такое, но настройка будет в разы сложнее.

Route Guards

Настройка guards в go_router делается при настройке самого роутера, а перенаправление — при помощи функции redirect.

В auto_route мы можем создавать именно отдельные Route Guards и присваивать их путям в наших настройках.

Было полезно? Если у вас еще остались вопросы, то пишите в чат.
👍3
Я тут немного заработался, поэтому с постом про изменения рабочего места запаздываю.

Изменение первое - новая клавиатура. Где-то в апреле у меня начала залипать Apple Magic Keyboard. К маю стало еще хуже, поэтому я стал выбирать. Изначально хотелось что-нибудь из Keychron, но у них были проблемы с доступностью в Красноярске. А выбрал я в итоге NuPhy Air75 первого поколения на красных переключателях. Думаю, расскажэу о ней в отдельном посте.

Изменение второе - микрофон. Так как я не профи в записи всякого, хотя и такие планы есть, плюс на работе жаловались на качество звука во время созвонов, решил купить. Заказывал на Али в официальном магазине производителя. Вместе с ним заказал еще 2 вещи. Про это все тоже в отдельном посте.

Изменение третье - коврик от JugRu Group и Geekboards, который подарили как спикеру на конференции Mobius.

Изменение четвертое - то, о чем я давно думал, но скупился - док-станция для Mac. Мой выбор пал на Ugreen, с которыми я очень давно знаком. Тут тоже нужно будет отдельным постом.

Поэтому ждите сегодня и завтра еще 3 поста про новые девайсы)
🔥5😎1
Про клавиатуру.

Кто долго читает мой канал помнит, что я рассказывал уже про то, что у меня их было 2 - Apple Magic Keyboard как основная и механическая Durgod для игр.

Почему я не перешел на Durgod после того, как решил менять клавиатуру? Тут все просто и объясняется тремя причинами - отсутствие раскладки под macOS, слишком высокие клавиши, она проводная. Поэтому это первые три критерия выбора у меня были.

Немного о самом выборе. Под все мои критерии подходит продукция 2 компаний - NuPhy и Keychron (не путать с Keyron). Я долго выбирал модель, в итоге после пары роликов и смотря на скорость доставки я выбрал NuPhy Air75 первого поколения на красных переключателях. Второе было ждать в несколько раз дольше.

Переключатели я тоже выбирал. Между красными и коричневыми. Теперь думаю заказать на всякий случай набор коричневых, так как мне они понравились (в наборе идет по 1 штуки каждого типа). Клавиатура очень крутая, но есть несколько минусов:
- Не хватает кнопки переключения языка, как на клавиатурах от Apple. Сначала я к ней привыкал, теперь привыкаю к ее отсутствию. И даже на самом MacBook я периодически пытаюсь сейчас переключать комбинацией клавиш.
- Не хватает TouchID, который был на прошлой клавиатуре. Поэтому пару-тройку раз в день приходится вводить пароль.
🔥1
Про микрофон.

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

Начну с того чем я пользовался.
В основном это были микрофоны от наушников либо от компьютеров. Первый стационарный микрофон я купил в начале 2022 года. Он был достаточно дешевым (около 3000), но с ним в наборе шли поп-фильтр и пантограф (стойка). Прожил я с ним около полугода, потом у меня появились Airpods Max и я перешел на них. Потом я перешел на микрофон от вебкамеры.
В начале этого года у меня появились беспроводные петлички. Хорошая штука, есть требуется быстро и в полевых условиях что-то записать.

А потом я решился. Заказал на Али 3 вещи у Fifine - микрофон AM8, пантограф BM88 и микшер SC3. Обошлось все в 12000, но это со скидками. Сейчас за эти деньги не купить такой набор.
Скажу сразу - микшер оказался не нужен. Я специально докупал для него кабель XLR, но разницы с подключением по USB-C нет.
Сам микрофон динамический и очень стильный. Качество звука меня потрясло, как будто микро для подкастов от Rode или Shure (на них я посматриваю, может через годик-другой и перейду). Для моих целей он меня полностью устраивает.
А вот пантограф я буду менять скорее всего. У него есть одна проблема - не регулируется нижняя часть по высоте.
🔥3