Мобильный разработчик | Юрий Петров | Flutter @mobile_developing Channel on Telegram

Мобильный разработчик | Юрий Петров | Flutter

@mobile_developing


Приветствую друзья, здесь вы найдете все, что касается мобильной разработки, мы хорошо знаем Flutter
#flutter #dart

Чат для обсуждения : https://t.me/dev_hut

Мобильный разработчик | Юрий Петров | Flutter (Russian)

Друзья, добро пожаловать в канал 'Мобильный разработчик'! Здесь вы найдете всю необходимую информацию о мобильной разработке, а также углубленные знания о платформе Flutter. Наш основатель и администратор канала - Юрий Петров, профессионал в области мобильной разработки. Мы уверены, что знания, которые вы получите здесь, помогут вам стать успешным мобильным разработчиком. Мы проводим обсуждения и делимся полезными советами по работе с Flutter и Dart. Присоединяйтесь к нашему чату для обсуждений и обмена опытом: https://t.me/dev_hut. Не упустите возможность улучшить свои навыки в мобильной разработке вместе с нами! #flutter #dart

Мобильный разработчик | Юрий Петров | Flutter

24 Jan, 07:17


Привет! На связи Анна, Friflex Flutter Team Lead

Совсем недавно всеми известная библиотека bloc обновилась до версии 9.0.0. Вместе с ней критические изменения в мажорном обновлении получили:
🔴flutter_bloc (v9.0.0)
🔴hydrated_bloc (v10.0.0)
🔴bloc_test (v10.0.0)

Что эти обновления нам принесли и стоит ли обновляться в ближайшее время? Разберем по пунктам!

1️⃣ Минимальная версия Dart SDK поднята до 2.14.

2️⃣ Удален класс BlocOverrides. Этот объект был внедрен в библиотеку bloc в версии 8.0.0 и успешно работал на чистых Dart программах, но в приложениях на Flutter он вызывал много критичных ошибок.

Из-за этого создатели уже в версии bloc 8.1.0 пометили его как Deprecated и рекомендовали к замене на Bloc.observer и Bloc.transformer. Сейчас в версии 9.0.0 класс был удален полностью — самое время обновиться и избавиться от проблемного API 🙂

3️⃣ Представлен EmittableStateStreamableSoure. Новый интерфейс позволяет библиотеке bloc_test отвязаться от прямого использования реализаций BlocBase. Как результат — метод тестирования блоков blocTest больше не зависит от BlocBase.

4️⃣ Добавлена поддержка WASM. Отличная новость для тех, кто использует библиотеку hydrated_bloc и кому необходимо компилировать Flutter-приложения в WASM — обновление до версии 10.0.0 позволит это сделать!

5️⃣ Изменено поведение HydratedStorage.build(). В предыдущей версии библиотеки повторный вызов метода HydratedStorage.build() возвращал кэшированный экземпляр хранилища. Теперь проблема решена — каждый новый вызов будет создавать новый объект.

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

Подробнее ознакомиться с документацией по миграции можно здесь.

Мобильный разработчик | Юрий Петров | Flutter

23 Jan, 07:29


Наткнулся на репозиторий, где собраны бесплатные приложения, никакого пиратства. ) Может кому пригодится. 😅

Забираем здесь.

Мобильный разработчик | Юрий Петров | Flutter

22 Jan, 10:12


Привет, это Катя, Flutter Dev Friflex. Недавнее обновление Android Studio вызвало проблему на целый день. Сегодня расскажу, как сделать так, чтобы ваше рабочее окружение снова заработало без ошибок.

Проблема
После обновления с AS 2023.2.1 на AS 2024.2.1 начала появляться ошибка:

ERROR: JAVA_HOME is set to an invalid directory

Причина
Эта ошибка возникает из-за того, что при установке новой версии Android Studio автоматически обновляется версия Java, что может нарушить совместимость.

Шаги решения

1. Установка OpenJDK 17 через brew. Установите нужную версию Java с помощью команды
brew install openjdk@17.
Подробнее о пакете можно узнать на странице установки OpenJDK через brew.

2. Переопределение JAVA_HOME в ~/.zshrc. Обратите внимание, что этот подход может не сработать, так как параметр JAVA_HOME устанавливается, но не применяется в системе. Добавьте следующую строку в ваш ~/.:

export JAVA_HOME=/opt/homebrew/opt/openjdk@17


3. Проверка текущих настроек Flutter. Выполните команду:

flutter config --list

Обратите внимание на параметр jdk-dir. Он указывает текущий путь до Java Development Kit (JDK).

4. Обновление пути до JDK. Замените текущий путь на установленную версию OpenJDK.

Например:

flutter config --jdk-dir /opt/homebrew/opt/openjdk@17

Если вы уже устанавливали JDK другим способом, укажите соответствующий путь.

5. Проверка конфигурации Flutter. Убедитесь, что изменения применились, выполнив:

flutter config --list

Затем попробуйте запустить проект, чтобы проверить работоспособность.

Теперь проект должен успешно запускаться 🥳

Если вы сталкивались с подобной проблемой и решили ее иным способом, поделитесь своим опытом в комментариях!

Мобильный разработчик | Юрий Петров | Flutter

22 Jan, 05:16


Всем доброе утро, первый перехват появления нового релиза Flutter. С чем @FlutterObserver_bot и поздравляю 🥳

Мобильный разработчик | Юрий Петров | Flutter

22 Jan, 05:16


🎉 A new version has been released
Flutter: 3.27.3
https://github.com/flutter/flutter/tags

Мобильный разработчик | Юрий Петров | Flutter

21 Jan, 07:50


ARB-формат во всей красе

Привет, это Роза, Flutter Dev Friflex. В последнее время я много работаю с локализацией и заметила интересную вещь: ARB-файл часто недооценен. Сейчас расскажу, что это и как работает.

Что это
ARB (Application Resource Bundle) — это, по сути, файл JSON, улучшенный для локализации, с расширением .arb. Проще говоря, там хранятся переводы текста, которые вы видите в приложении. Помимо ключей и строк, ARB поддерживает:
🔴описания контекста
🔴примеры использования
🔴типы данных
🔴форматирование

Например:
{
"@@locale": "ru",
"topicTitle": "Arb-формат во всей красе",
"@topicTitle": {
"description": "Заголовок для статьи про Arb-формат"
}
}


Здесь ключ topicTitle хранит строку, а под @topicTitle — метаданные. При помощи метадаты вы можете указывать для ключей локализации:
🔸context: пояснения для переводчиков и разработчиков
🔸type: указание типа строки или ее назначения
🔸comment: подсказки к строкам

Например:
{
"welcome": "Добро пожаловать, {name}!",
"@welcome": {
"description": "Сообщение для приветствия",
"context": "Для нового пользователя",
"type": "Information",
"comment": "Имя {name} нельзя переводить."
}
}


Где используется
Во Flutter ARB-файлы тесно интегрированы с библиотекой intl, которая отвечает за локализацию.

Как это работает
1️⃣ Создаете отдельные ARB-файлы для всех языков, которые хотите поддерживать.
2️⃣ С помощью команды flutter gen-l10n генерируете Dart-код, который автоматически подтягивает правильные переводы для языка пользователя.
3️⃣ В коде просто обращаетесь к строкам по их ключам, а перевод подставляется автоматически.

❗️В реальных приложениях часто требуется использовать динамические значения внутри строк.

Например, вместо «Привет, Роза!» в строке может быть «Привет, {name}!»

Для этого в ARB-файлах применяются плейсхолдеры. О них я расскажу в следующем посте.

Мобильный разработчик | Юрий Петров | Flutter

20 Jan, 08:52


📦 Вышел BLoC v9.0.0

Поддержка WebAssembly (wasm)

Обновление примеров и туториалов по использованию

Минимальный Dart v2.14

Новый внутренний интерфейс EmittableStateStreamableSource заменил Emittable у BlocBase

По-сути это "посредник", который помогает тестировать блоки и внедрять кастомный source, не привязываясь к конкретной реализации BlocBase

⚠️ Удален ранее помеченный как Deprecated класс BlocOverrides. Вместо него тепреь нужно использовать Bloc.observer и Bloc.transformer

⌨️ Гайд по миграции

Мобильный разработчик | Юрий Петров | Flutter

19 Jan, 13:13


Всем привет друзья. Многие спрашивают, как организовать папки внутри фичи.

Вот, мы тут запилили плагин Flutter Friflex для VSCode.
Плагин прошел проверку, и опубликован.
Исходный код плагина здесь.

1.Плагин умеет создавать папки для отдельной фичи
2. Создавать StatefulWidget и StatelessWidget по названию файла
3. Создавать класс согласно названия файла
4. Есть настройки

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

Ждем обратную связь, и если есть идеи для добавления функций, которые будут полезны разработчикам, пишите.

P.S. Сильно не пинайте, мой первый плагин))

Мобильный разработчик | Юрий Петров | Flutter

18 Jan, 11:13


Всем привет, сейчас пошла мода писать миниапы и боты для телеграма. Ну и я решил тоже написать). Но он мне был реально нужен.
Так вот, представляю Flutter Observer. Бот, который следит за репозиториями Flutter и Dart и оповещает пользователей о появлении новых релизов и изменений в ветке STABLE.
Сам бот написан на чистом Dart, а не на всяких там котлинах и go)))
База данных SQLite + Drift.
В боте есть возможность настроить наблюдателя так, как вам необходимо.
В дальнейшем есть планы добавить дашборды активности в репозиториях, отслеживания в pub dev и так далее.

@FlutterObserver_bot

Мобильный разработчик | Юрий Петров | Flutter

17 Jan, 11:55


«Он сказал мне, что жизнь, как в мечте, получу я без всяких преград»🐼

Но только если ваше приложение пройдет аудит. Виды, этапы и как подготовиться — на карточках.

📎Полезные ссылки:
Статья на Хабре
OWASP
Пример чек-листа на Стингрей

Мобильный разработчик | Юрий Петров | Flutter

15 Jan, 10:40


А вдруг вы прямо сейчас пишете сервис на Dart, задача которого — отправить миллион сообщений ровно в 12 дня? Юрий Петров, Tech Lead Friflex написал статью, как это можно сделать:

🔸Установить и запустить контейнер с RabbitMQ
🔸Настроить RabbitMQ
🔸Создать Producer (отправителя) на Flutter
🔸Создать Consumer (потребителя) на Flutter

Сохраняйте, чтобы не потерять🔖

Мобильный разработчик | Юрий Петров | Flutter

14 Jan, 16:18


Книга "Основы Flutter" уже написана наполовину 😎, а значит - цена курса на степике увеличивается на 500 рублей😅

Если вы хотели приобрести курс, но на это все никак не было "времени", по 21 января его можно будет купить по старой цене, воспользовавшись скидкой в 25% 🫣

Мобильный разработчик | Юрий Петров | Flutter

14 Jan, 13:38


У меня для вас хорошие новости по книге "Основы Flutter" 👀

Перед новогодними праздниками мне на редактуру прислали материал Юра Петров (глава про навигацию в Flutter) и Стас Ильин (первый раздел главы про локальное хранение данных).

Глава по навигации отредактирована и утверждена, а значит, на курсе "Основы Flutter" на степике большое обновление ^_^ Приступаю к редактированию материалов Стаса😎

p.s. Так же, на ютубе выложил новое видео из курса по Dart, посвященное типу данных Map🫠

#book@madteacher_channel

Мобильный разработчик | Юрий Петров | Flutter

13 Jan, 09:21


📎Пост заряженный на повышение!

Для всех, кто когда-нибудь планирует возглавить команду разработчиков, собрали плюсы и минусы этой должности вместе с Дмитрием, Flutter Team Lead Friflex.

Не отговариваем, а обращаем внимание на навыки, которые стоит подтянуть. Будет полезно и тем, кто только стал тимлидом и не знает, с чего начать. Не переживайте, все получится!💜

Мобильный разработчик | Юрий Петров | Flutter

03 Jan, 17:42


Книга "Основы Flutter" перевалила за 600 страниц (в вордовском документе)😎

Перед новогодними праздниками на редактуру прислали материал Юра Петров (глава про навигацию в Flutter) и Стас Ильин (первый раздел главы про локальное хранение данных).

Сейчас редактирую главу про навигацию (сделано ~ 30%), потом настанет очередь Стаса, а там гляди и Павел подоспеет со своими материалами😊

Этот год обещает быть жарким для авторского коллектива и книги 🔥🔥🔥

p.s. по 9-е января на электронную версию книги, главы и разделы которой выкладываем на степик после редактуры и утверждения, действует скидка в 1️⃣5️⃣ 🔤 Основы Flutter

Мобильный разработчик | Юрий Петров | Flutter

30 Dec, 09:43


Мобильный разработчик | Юрий Петров | Flutter pinned «⚡️⚡️⚡️ Всех с наступающим Новым годом, друзья! 👋 Желаю, чтобы у всех получилось реализовать задуманное в Новом году! В связи с этим прекрасным событием, по 9-е января можно приобрести следующие курсы со скидкой: 🔥 3️⃣0️⃣ 🔤 Dart 3 в действии 🔥 3️⃣0️⃣ 🔤 Go…»

Мобильный разработчик | Юрий Петров | Flutter

30 Dec, 09:42


⚡️⚡️⚡️ Всех с наступающим Новым годом, друзья! 👋
Желаю, чтобы у всех получилось реализовать задуманное в Новом году!

В связи с этим прекрасным событием, по 9-е января можно приобрести следующие курсы со скидкой:

🔥 3️⃣0️⃣ 🔤 Dart 3 в действии

🔥 3️⃣0️⃣ 🔤 Go (Goland) + Gin = быстрый бэкенд для заметок.

🔥 3️⃣0️⃣ 🔤 Dart+ Flutter — быстрый gRPC бэкенд и клиент для чата на Protobuf.

🔥 3️⃣0️⃣ 🔤 Создаем RESTful бэкенд на Dart и клиент на Flutter.

🔥 1️⃣5️⃣ 🔤 Основы Flutter

#flutter #dart.

Мобильный разработчик | Юрий Петров | Flutter

30 Dec, 09:30


💬 Что не так с конкурсом?

🤯 За последние 24 часа на наши каналы подписалось больше 20к человек

😡 Как оказалось, у конкурсов на Telegram-подписки есть одна уязвимость - информацию о таких конкурсах оперативно сливают в чаты/каналы для любителей нажиться бесплатными ништяками

Мы с ребятами заметили этот аномальный рост несколько часов назад и решили, в последний момент, не принимать резких мер по очистке, чтобы не потерять настоящих подписчиков

👎 Что в итоге? В конкурсе победили люди не имеющие отношения к Flutter, а не наши подписчики, для которых это все затевалось

😐 Такой подляны от Telegram мы не ожидали. И нам очень жаль что так вышло

В следующий раз конкурс будет не на подписики!

Мобильный разработчик | Юрий Петров | Flutter

30 Dec, 08:38


Не сказать, что этот год был насыщенным в плане внедрения новых фич в Dart, но это не значит, что команда разработчиков расслабила свои батоны и ничего не делает😎 Поэтому решил подвести некоторую черту под тем функционалом этого языка программирования, который находится на стадии внедрения в Dart SDK и чья спецификация была закончена, т.е. фича готова к реализации🤓

Активно пилятся, но полноценный релиз стоит ждать скорей всего не раньше 2026, т.к. фичи зависят друг от друга 🫡:

👉 Макросы

👉Аугментация

👉
Расширенный механизм part of


Увидим в течении следующего года 👀:

👉 Wildcard variables (Dart 3.7)
- разруливает множественное использование символа нижнего подчеркивания (конфликт имен переменных), т.е. предложение позволяет использовать более одного подстановочного знака без конфликтов имен в callback-функциях и при объявлении переменных

👉 enum-shorthands (Dart 3.8/x ?) - за счет выводимого типа в левой части выражения или текущего скоупа, позволяет не использовать имя перечисления при обращении к его свойствам, а также имя класса при обращении к константным и фабричным (именованным и нет) конструкторам и статическим полям и методам
Padding(
padding: const .all(8.0), // const EdgeInsets.all(8.0) // constructor
child: ...
)

int x = .parse(input); // Static method.

const String option = .fromEnvironment("my_option"); // Constructor


👉 Null-aware elements (Dart 3.8/9/x ?) - предлагает более простой формат проверки на null, что позволит заменить
Stack(
fit: StackFit.expand,
children: [
const AbsorbPointer(),
if (widget.child != null) widget.child!,
],
)


на
Stack(
fit: StackFit.expand,
children: [
const AbsorbPointer(),
?widget.child,
],
)


Спецификация завершена и фича готова к началу внедрения в Dart SDK ‼️:

Здесь можно выделить одну фичу - Unquoted imports. Она вносит революцию в изменение в формат импортирования библиотек и пакетов:
// Before:
import 'dart:isolate';
import 'package:flutter_test/flutter_test.dart';
import 'package:path/path.dart';
import 'package:flutter/material.dart';
import 'package:analyzer/dart/ast/visitor/visitor.dart';
import 'package:widget.tla.server/server.dart';
import 'package:widget.tla.proto/client/component.dart';

// After:
import dart/isolate;
import flutter_test;
import path;
import flutter/material;
import analyzer/dart/ast/visitor/visitor;
import widget.tla.server;
import widget.tla.proto/client/component;

Мобильный разработчик | Юрий Петров | Flutter

28 Dec, 12:21


😁 желтая уточка, это шедевр…

Мобильный разработчик | Юрий Петров | Flutter

28 Dec, 12:20


🎁 Вишлисты в студию!

Чтобы близкие знали, что подарить вам, собрали несколько вариантов вишлистов: тут и для души, и для работы. Осталось только поделиться.

Мобильный разработчик | Юрий Петров | Flutter

27 Dec, 15:04


Мобильный разработчик | Юрий Петров | Flutter pinned «⚡️⚡️⚡️ Всех с наступающим Новым годом, друзья! 👋 Желаю, чтобы у всех получилось реализовать задуманное в Новом году! В связи с этим прекрасным событием, по 9-е января можно приобрести следующие курсы со скидкой: 🔥 3️⃣0️⃣ 🔤 Dart 3 в действии 🔥 3️⃣0️⃣ 🔤 Go…»

Мобильный разработчик | Юрий Петров | Flutter

27 Dec, 14:46


#Flutter 3.27 для ОС Аврора

Обновление от сообщества развития Flutter для ОС Аврора!

Flutter SDK с поддержкой ОС Аврора получил обновление:

👉 Добавлены новые функции и фиксы из версии 3.27.
👉 Добавлены новые примеры приложений и интеграционные тесты.
👉 Добавлены новые плагины, расширен существующий список.
👉 Документация обновлена и выделена в отдельный проект. В документации добавлена возможность переключаться между каналами Flutter.
👉 Реализованы события экранной клавиатуры.
👉 Фиксы багов и оптимизация работы Flutter.

Поддержка Flutter на ОС Аврора - это совместная работа энтузиастов, специалистов по Flutter из ведущих компаний РФ. Можно поучаствовать кодом и экспертизой - #вместе сделаем инструмент лучше.

Текущая версия 3.27.1 и вы можете получить ее уже сейчас. Все необходимое вы можете найти по ссылке: https://gitlab.com/omprussia/flutter.

Мобильный разработчик | Юрий Петров | Flutter

26 Dec, 07:52


⚡️⚡️⚡️ Всех с наступающим Новым годом, друзья! 👋
Желаю, чтобы у всех получилось реализовать задуманное в Новом году!

В связи с этим прекрасным событием, по 9-е января можно приобрести следующие курсы со скидкой:

🔥 3️⃣0️⃣ 🔤 Dart 3 в действии

🔥 3️⃣0️⃣ 🔤 Go (Goland) + Gin = быстрый бэкенд для заметок.

🔥 3️⃣0️⃣ 🔤 Dart+ Flutter — быстрый gRPC бэкенд и клиент для чата на Protobuf.

🔥 3️⃣0️⃣ 🔤 Создаем RESTful бэкенд на Dart и клиент на Flutter.

🔥 1️⃣5️⃣ 🔤 Основы Flutter

#flutter #dart.

Мобильный разработчик | Юрий Петров | Flutter

24 Dec, 15:03


https://team.vk.company/openvk/projects/

ВК поделились своими разработками.
Опубликованные проекты:
1. VKUI библиотека React-компонентов, построенная на одноимённой дизайн-системе.
2. ByteWeaver - инструмент для патчинга байт-кода Android-приложений во время сборки.
3. StatsHouse - высокодоступная масштабируемая мультитенантная система
4. Tarantool - middleware для работы с данными, которое ускоряет цифровые сервисы
5. One-nio - библиотека для создания высокопроизводительных приложений на языке Java
6. DeviceHub - система удаленного управления Android- и iOS-устройствами

Лично для меня вызывает интерес: StatsHouse, Tarantool и DeviceHub

Мобильный разработчик | Юрий Петров | Flutter

24 Dec, 09:57


Юра, Tech Lead Flutter-команды Friflex, поделился новой подробной инструкцией, как установить все необходимое для написания приложения для Aurora на Flutter

Смотреть:
📎на YouTube
📎в VK

Мобильный разработчик | Юрий Петров | Flutter

24 Dec, 07:50


А вот и статья, которая должна была выйти на прошлой неделе - https://habr.com/ru/articles/869208/

Мобильный разработчик | Юрий Петров | Flutter

19 Dec, 08:46


Мобильный разработчик | Юрий Петров | Flutter pinned «»

Мобильный разработчик | Юрий Петров | Flutter

19 Dec, 08:44


С наступающим Новым годом, друзья, надеюсь, наши подарки вас обрадуют. )) 😊

Мобильный разработчик | Юрий Петров | Flutter

19 Dec, 08:43


🎄 Новогодний Розыгрыш 🎁

7 подписок Telegram premium на 3 месяца
Условия простые - подписаться на все три канала

Победители будут объявлены 30 декабря🎉

Мобильный разработчик | Юрий Петров | Flutter

18 Dec, 12:46


Мое мнение про #FlutterInProduction.

Ждуны, ждущие смерть Flutter, покайтесь 👋

https://habr.com/ru/companies/friflex/articles/867700/

Мобильный разработчик | Юрий Петров | Flutter

18 Dec, 04:54


Итак... #FlutterInProduction можно разбить на 3 части:

👉 Разговор про эры развития Flutter:

👨‍🚀эра экспериментов (2014 - 2018)
🌲эра роста ( 2018 - 2022)
👷‍♂️Эра кровавого энтерпрайза (начиная с середины 2022 года)

Разработчики наконец-то определились со зрелостью фреймворка и на протяжении этой части (да и всего мероприятия) нам показывали, что Flutter применяется в разных областях и довольно крупными компаниями ^_^

👉 Экосистема

Тут было про поддержку различных IDE, что на pub доступны более 50к пакетов. Заострили внимание на том, что вокруг Flutter выстраивается экосистема (FlutterFlow, Shorebird, Serverpod, Codemagic), в то время как он сам по гланды интегрирован в экосистему Google☝️

Отдельно следует отметить упоминание о Flutter Consultants, что говорит о реальной зрелости фреймворка😎

👉 Если обобщить все услышанное с секцией Roadmap, получится следующая выжимка над чем будет работать команда Flutter в 2025 году:

👀 Точность воспроизведения платформ. Такое обновление виджетов, чтобы у людей не складывалось ощущение, что это Flutter

🫡🔥 Impeller (Flutter GPU) не только на мобилках, но и на десктопе (web пока под большим вопросом)

🔥🎉🥳 Средства предварительного просмотра виджетов с поддержкой редактирования

🔥🎉🥳 Прямое взаимодействие с native platform

🔥🔥🔥 Ускорение написания и упрощение чтение кода (p.s. это подгорает мой пердак от увиденных декораторов 😂, первичный конструктор - норм тема😎)

Не все показанное может быть реализовано на 100% От некоторых фич могут отказаться или перенести на потом.

А что вы думаете о прошедшем мероприятии?

#flutter@madteacher_channel #dart_lang@madteacher_channel

Мобильный разработчик | Юрий Петров | Flutter

16 Dec, 08:15


🛒 В Google Play снизили обязательное количество тестировщиков для новых личных аккаунтов

Год назад ввели новое правило - все новые личные аккаунты должны будут перед релизом проводить закрытое тестирование приложения на протяжении 2 недель с не менее чем 20 пользователями, которые будут регулярно открывать приложение

Без анонсов понизили количество тестировщиков с 20 до 12. Кажется, что новое требование слишком жёсткое и многие просто не могли выполнить его.

#googleplay

Мобильный разработчик | Юрий Петров | Flutter

01 Dec, 08:10


Недавно вышел очередной бенчмарк, где была замерена производительность различных языков, в том числе и нашего любимого Dart.
Ну и тут Слава Егоров про это написал, где разложил по полочкам, что да как.
Очень информативная статья от про то, как сравнивают производительность языков. Рекомендую всем ознакомиться.

https://mrale.ph/blog/2024/11/27/microbenchmarks-are-experiments.html.

Мобильный разработчик | Юрий Петров | Flutter

30 Nov, 10:02


Всем привет, хотелось поделиться своими наблюдениями по поводу AI-помощников. 

Последний год я активно использовал плагин Codeium https://codeium.com/, полная версия с поддержкой chatGPT 4o. Но сейчас я его выключил полностью. Вы спросите почему? 

Попробую объяснить. Когда начинаешь использовать такие помощники, то через какое-то время начинаешь понимать, что ты к ним очень сильно привыкаешь и начинаешь, прежде чем писать код, на долю секунды останавливаться и ждать, что предложит ai-помощник. И это на самом деле полная жесть. Так как иногда просто для ускорения он выдает решения, в которые ты не особо вникаешь автоматически. А это, в свою очередь, сильно притупляет творческую часть кода, переходя на некий псевдоавтоматизм. 

К чему это всё приведет в дальнейшем? К деградации уровня разработки, так как творческая часть работы программиста уйдет в небытие. Решения, принимаемые ai-помощником, будут всё более подходящие и воспринимающие как лучшее. Что в итоге приведет к деградации уровня самих разработчиков. И это очень печально.

Попробуйте отключить помощников и написать код сами? Без chatGPT или других нейросетей. Я вас уверяю, что вам станет сложновато. И это ведь только год использования. А если мы будем использовать ai-помощники десятилетиями? Что будет? К чему это нас приведет?

И да, вот прошла вторая неделя, когда я пишу код без Codeium. Первое время было необычно, было сложно. Но сейчас все вернулось, я пишу код как раньше, анализируя его на лету. Начали опять появляться идеи, как лучше можно решить ту или иную проблему, где можно что-то улучшить, и это особенный кайф.

P.S. Я ничего плохого не хочу сказать про AI-помощники, но я теперь понял, к чему нас они приведут. И я думаю, что через пару десятков лет компании будут платить миллионы разработчикам, которые могут писать код без ai, и самое главное, смогут решать проблемы и искать критические ошибки.

Мобильный разработчик | Юрий Петров | Flutter

28 Nov, 08:57


Аврора SDK теперь на Apple Silicon

Разработчики из ОМП поделились видео адаптации инструментов разработки под процессоры серии Apple M.

Почему это важно? Немного контекста

👉 Когда Аврора стала популярной многие разработчики захотели попробовать написать приложение
👉 У разработчиков с компьютерами на базе Windows и Linux (и макбуках с х86 процессорами) не возникло проблем, так как SDK адаптирована под эти ОС
👉 У большинства же мобильных разработчиков ноутбуки Apple M серии (это подтверждается опросами)

Поэтому, понимая важность успеха у разработчиков приложений, компания инвестировала в перенос своего SDK также и на Apple Silicon и мы можем видеть те самые результаты на экране

Вы просили это - и вы получили это. Это же прекрасно

P.S. И да, гайз, как только выйдет Аврора SDK 5.2 Developer Preview я сразу сделаю видео на канале как работать на новых макбуках

Мобильный разработчик | Юрий Петров | Flutter

27 Nov, 12:15


Знакомьтесь, Дмитрий!

Сегодняшний герой рубрики #friflex_team — пример того, как случайное решение может изменить жизнь. С гуманитарным образованием и огромным стремлением развиваться в разработке Дима за 2 года стал Flutter-тимлидом.

Его путь, от первых отказов до успеха, советы для тех, кто хочет войти в IT — на карточках🖱

Мобильный разработчик | Юрий Петров | Flutter

26 Nov, 07:58


Пришла аналитика по нашему докладу на CrossConf. Вижу, что людям доклад «зашел» на ура! Спасибо ребятам, кто поддержал! ☺️

Мобильный разработчик | Юрий Петров | Flutter

25 Nov, 06:17


В начале ноября, команда, стоящая за проектом "It’s All Widgets" создала форум для Flutter-сообщества. С учетом того, какие люди вошли в состав админов и модераторов (Вячеслав Егоров, Filip Hráček и т.д.) данное начинание выглядит многообещающим ^_^

Если первая мысль, которая вас посетила была из разряда: "Что за It’s All Widgets?", вот ссылочка для ознакомления ;)

Мобильный разработчик | Юрий Петров | Flutter

21 Nov, 13:18


🏆Кроссплатформа, зови меня победителем!

8 ноября на CrossConfAwards вручили награды лучшим кроссплатформенным проектам в номинациях Indusrty, Technology и Community. В списке победителей и наши проекты:

Приложение для страховой компании Энергонарант стало лучшим на российской ОС и заняло второе место в категории финансы и страхование.
Второе место в категории торговля и доставка — у проекта Дикси.
Юрий Петров, наш Tech Lead, тоже получил серебро за свои суперпознавательные видео в канале @mobile_developing.

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

Мобильный разработчик | Юрий Петров | Flutter

14 Nov, 09:29


5 СЕКРЕТНЫХ преимуществ Android эмулятора! 📱 (27 мин)

🚀 Быстрая настройка и запуск эмулятора
🏗 Функции для адаптации под любые задачи
⌛️ Фишки для экономии времени
Свежий выпуск на📹 VK Video! 🚀 📹 YouTube

Мобильный разработчик | Юрий Петров | Flutter

13 Nov, 07:58


🚀 Врываемся в утро вторника с потрясающей новостью!
Уже послезавтра, 14 ноября (четверг) разработчики двух компаний — Mad Brains и
Surf — устроят настоящий батл!

🔥 В режиме онлайн обсудим, как ускорить старт проекта на Flutter с помощью шаблонов, архитектуры, переиспользования. Никаких готовых сценариев, только живая дискуссия! 🔥

❤️ Встречаемся в 19:00 (мск) на одной из площадок по ссылке:
— YouTube,
— ВК Video.

#madbrains #surf #flutter

Мобильный разработчик | Юрий Петров | Flutter

08 Nov, 18:10


Второе место. Ух, не ожидал 😅

Мобильный разработчик | Юрий Петров | Flutter

08 Nov, 16:26


Ну посмотрим, какое место займу 🤔

Мобильный разработчик | Юрий Петров | Flutter

07 Nov, 07:05


Завтра идем на @crossconf — самую большую конференцию по кроссплатформенным технологиям!

Программа потока Flutter — на карточках. Если напишете, какой доклад особенно заинтересовал, можем рассказать подробнее о каждом в следующих постах👇

Мобильный разработчик | Юрий Петров | Flutter

06 Nov, 10:00


💭О дальнейших планах по развитию ОС Аврора расскажет руководитель группы разработки Открытой мобильной платформы @omp_ru Никита Красавин. Он покажет реальные кейсы и в режиме реального времени вместе с участниками разработает приложение на Flutter для ОС Аврора.

Готовы? До встречи на CrossConf!

Мобильный разработчик | Юрий Петров | Flutter

06 Nov, 05:51


Всем новичкам рекомендую)
https://habr.com/ru/companies/friflex/articles/854292/

Мобильный разработчик | Юрий Петров | Flutter

02 Nov, 11:38


Согласно ежегодному отчёту Github по трендам в разработке, Dart входит в топ-10 языков, набирающих популярность. 🔥🔥🔥
Впереди него (на полшишечки) Kotlin, а позади - Rust. Безусловным же лидером этого рейтинга является научись программировать за 21 день и войди в it Python.

Мобильный разработчик | Юрий Петров | Flutter

31 Oct, 12:41


Запилил полный гайд, как быстро начать писать Flutter-приложения на Аврору. Надеюсь, кому-нибудь поможет.
https://habr.com/p/854928/

Мобильный разработчик | Юрий Петров | Flutter

30 Oct, 19:31


Думал, писать или нет про Flock, про который уже многие популярные каналы рассказали. Статью про это можно почитать здесь. Решил написать.

Кто не знает, что такое Flock — это форк Flutter, который создал бывший член команды разработчиков Flutter, Мэтт Кэрролл, с целью ускорить развитие Flutter путём разработки своей версии.

Что я на самом деле думаю — это моё мнение, никому его не навязываю.

Сначала попробуем разобраться с основными причинами такого шага:

— банально не хватает разработчиков в Flutter-команде, сейчас их около 50 человек;
— PR рассматриваются очень долго, опять же из-за нехватки разработчиков;
— неравномерное развитие платформ: например, desktop развивается намного медленнее, чем Android или iOS.

И вот это всё Мэтт Кэрролл решил изменить. Вопрос — как?

А всё очень просто, как говорят люди: «Благими намерениями вымощена дорога в ад».

— ускорить рассмотрение PR;
— оптимизировать требования к таким запросам;
— ну и увеличить количество разработчиков за счет желающих.

Звучит просто фантастика: наконец-то Flutter полетит. Только куда?

А полетит он в:

Неизбежное разделение сообщества — будут условно «хорошие», те, кто требуют быстрее, выше, сильнее. И «плохие» — консерваторы, придерживающиеся принципа «тише едешь — дальше будешь». Чем не двухпартийная система?

Рано или поздно образуется очень большая пропасть в синхронизации Flutter с Flock. Ну тут к бабке ходить не надо — со слов того же Мэтта, они будут дополнять Flutter. Тогда вопрос: а почему нельзя просто помочь команде Flutter грамотными и правильными запросами на слияния с реализованными тестами, например?

А что с версиями Flutter и Flock? Все дружно переходим на FVM? Веселье начнётся тогда, когда появятся проекты, написанные на Flock, а кто-то продолжит использовать оригинальный Flutter. Кто и как это будет регулировать? Непонятно.

Ускорения проверки PR — интересная идея, сразу вспомнился мем «долго, но качественно, быстро... а сами додумайте».

Ну и вишенка на торте. Понятно, что Google хочет заработать на Flutter. И, видимо, у них есть некий план, но пока нет возможности его реализовать по различным причинам, которые нам неизвестны. А вот Flock может. Идея простая: мы вам даём Flock, где всё будет круче, чем в оригинале, ну конечно же, быстрые патчи, а вы нам — подписку 20$. Почему именно 20$? Не знаю, но у западных компаний это прямо магическое число.

Ну а если без иронии — сам Мэтт Кэрролл довольно-таки странный тип. Кто хочет узнать его получше, может глянуть его запросы на слияние. Как по мне, Flutter развивается довольно бодро, и влажные мечты некоторых разработчиков, что Flutter умер, разбиваются с каждым очередным обновлением. И если по факту, много ли сейчас критических багов, которые не фиксят команда Flutter и которые прям задерживают релизы?

Миллион приложений сейчас в проде, и пока полёт отличный.

Вот такие дела, коллеги. Скоро будет нам счастье. Но это не точно.

Ну и последнее, почему не Flutter++ 😢

Мобильный разработчик | Юрий Петров | Flutter

30 Oct, 07:17


В книгу "Основы Flutter" добавлен утвержденный материал, а значит, на курсе "Основы Flutter" на Stepik большое обновление 🎉

Перенесены еще 2 раздела 2-й главы, посвященной виджетам:
👉 Виджеты "коробки"
👉 Виджеты компоновки

И куда же без основной части 5-й главы "Работа с сетью", в состав которой вошли разделы:
👉 Клиент-серверная архитектура
👉 Встроенный инструмент Flutter для работы с http
👉 Пакет (библиотека) http
👉 Веб-сокеты

В следующем году 5-я глава пополнится сквозным проектом, а пока авторский коллектив перешел в режим подготовки своих выступлений на CrossConf 2024

Мобильный разработчик | Юрий Петров | Flutter

29 Oct, 13:42


Делимся эксклюзивом: показываем доклад про JsInterop в Dart 👀🐦

Мы уже рассказывали о том, как Максим, Middle Flutter Developer, мощно выступил на DevFest в Omskе. Теперь ты можешь проверить это – послушать его доклад онлайн.

📹Смотри запись 📹

Мобильный разработчик | Юрий Петров | Flutter

29 Oct, 09:08


🎧 Гости из IT: новый выпуск!

В фокусе — ОС Аврора, продукт с серьезными технологическими и стратегическими амбициями. Поговорили о перспективах Авроры, ее ограничениях, месте в корпоративной экосистеме и потенциале для разработчиков.

Обсудили:
🔴Как появилась Аврора
🔴Чем Аврора полезна бизнесу
🔴Что обновилось в Авроре 5
🔴Сколько стоит разработка ОС
🔴Чем Аврора интересна разработчикам

В гостях у Антона Комолова и Петра Чернышева:
🔸Алексей Коган, директор по продуктам и технологиям Открытой Мобильной Платформы
🔸 Роман Аляутдин, руководитель департамента разработки ОС Аврора

🎧 Слушайте подкаст на платформах:
Podcast.ru
Яндекс Музыка
Apple Podcasts

P.S. По промокоду ITGOSTI все еще можно купить билет на конференцию CrossConf со скидкой 10%

Мобильный разработчик | Юрий Петров | Flutter

28 Oct, 11:42


Если интересно как шарить локализацию между пакетам, можно почитать.
https://habr.com/ru/articles/853848/

Мобильный разработчик | Юрий Петров | Flutter

28 Oct, 07:56


Тут Виталий Зарубин выкатил GUI для упрощения работы с aurora-cli. В статье подробно рассказывает историю создания aurora-cli. Рекомендую почитать, когда время будет.
https://keygenqt.com/blog/16.

Мобильный разработчик | Юрий Петров | Flutter

26 Oct, 18:37


Закончил редактуру основной части 5-й главы "Основы Flutter" - "Работа с сетью" от Стаса Ильина😎

На следующей неделе созвон авторского коллектива и если все пучком, добавлю в курс на степике ^_^

Мобильный разработчик | Юрий Петров | Flutter

26 Oct, 12:59


На днях, на хабре, вышла статья от Дмитрия Лёвочкина, Flutter Team Lead компании Friflex, а также автора тг-блога «Дневник Flutter-разработчика». В ней он поделился своей историей от Junior до текущей позиции и как, по его мнению, быстрее развиваться по софт и хард скиллам. Статья получилась интересной, но жители хабра встретили ее в штыки...

К сожалению, на потеке Dart/Flutter, народ проявляет мало активности и многие интересные материалы получают незаслуженно низкую оценку. К некоторым в комментарии заглядывают любители потоксичить, без обоснования своей точки зрения, а просто "потому что так могу, умею и практикую!". Другие остаются без комментариев, как будто так и надо. Такое положение дел не играет на пользу всему сообществу, т.к. отгоняет новых авторов. Иногда минусами, иногда низкими оценками, но самое главное - молчанием о том, принес ли этот материал хоть крупицу пользы или нет.

Что касается статьи Дмитрия, то она попала под каток "отмены трендов". Если еще пару лет назад, статья бы нахватала плюсов и было бы много слов поддержки, то сегодня, на волне того, что многих хабравчан достали истории, которые в огромном количестве форсят различные курсы о вкатывающихся в IT, как они там преуспели и т.д.. Теперь все это списывается на "ошибку выжившего", а не впахивавшего... К тому же ситуация на IT-рынке не способствует расслаблению, вот и выливают весь негатив на авторов подобных статей, не вдаваясь в подробности, кто и с какой целью ее написал. Оправдывает ли такое стечение обстоятельств минусующих и токсиков? Нет. Всегда надо стараться оставаться человеком... Но и понять таких людей достаточно просто! Для них хабр - место, где можно выпустить пар...

P.S. Что по вашему мнению не так с хабром? Изменился он или нет? Стоит ли на нем публиковаться молодежи или лучше поберечь свою психику?)

Мобильный разработчик | Юрий Петров | Flutter

26 Oct, 09:56


Всем привет, открыл в общий доступ мой старый курс по Андроид:
Практика по шаблону MVVM. Создание приложения Заметки.

Где изучим архитектурные компоненты и многое другое:

- livedata;
- navigation;
- room;
- viewmodel.

https://vk.com/video-193881724_456239109

Надеюсь, курс будет полезен. 😊

ссылка на плейлист в ВК
ссылка на плейлист на YouTube

Мобильный разработчик | Юрий Петров | Flutter

25 Oct, 14:45


🔥 От Junior до Team Lead меньше чем за 2 года

Вышла моя статья на Habr 🥳
https://habr.com/ru/companies/friflex/articles/853512/

P.S. Ответил почти на все ваши вопросы:)
(кроме вопроса с nda)

Мобильный разработчик | Юрий Петров | Flutter

25 Oct, 14:45


История успеха нашего лида)

Мобильный разработчик | Юрий Петров | Flutter

24 Oct, 11:45


Вот так было в 2023)))

Мобильный разработчик | Юрий Петров | Flutter

24 Oct, 11:38


Dart обошел Kotlin в 2024 😊

Команда DevJobsScanner выпустила анализ по самым востребованным языкам за последние два года. Проанализировав более 12 миллион вакансий.

Подробнее можно ознакомиться по ссылке:
https://www.devjobsscanner.com/blog/top-8-most-demanded-programming-languages/

Мобильный разработчик | Юрий Петров | Flutter

23 Oct, 07:46


Мало кто знает, но Dart, как и ряд других языков программирования, поддерживает концепцию функторов. То есть дает возможность вызвать экземпляр класса как обычную функцию. Для этого в теле класса следует объявить метод call с необходимой вам сигнатурой:
class Cat{
final String name;
final int age;

Cat({required this.name, required this.age});

int call() { // можно указывать входные аргументы
return age+1;
}
}


После такой махинации вызовите экземпляр класса Cat, используя следом за его именем круглые скобки:
void main() {
Cat cat = Cat(name: 'Tom', age: 5);
print(cat()); // 6
}

p.s. Т.к. Dart не поддерживает перегрузку методов, несколько функторов объявлять нельзя!

p.s.s. Долго думал, стоит ли добавлять в книгу материал про такой способ использования классов, т.к. в моей памяти есть лютые случаи использования такого подхода молодняком >_< Все таки решил, что добавлю... я не должен страдать в одиночестве😂😎

Мобильный разработчик | Юрий Петров | Flutter

22 Oct, 16:06


🐼Джун: как попасть во Flutter-разработчики

Запускаем рубрику #friflex_карьера! Будем делиться полезной информацией для тех, кто хочет найти и построить карьеру в IT.

Расскажем все, что сами об этом знаем — как составить резюме, какие навыки помогают перейти на позицию senior и не только.

Сегодня собрали чек-лист для Flutter junior. Напоминаем: важно не только писать код, но и уметь рассказать об этом. Дальше — на карточках 🖱

🔗Хочешь стать частью нашей команды – ждем резюме на [email protected]

Мобильный разработчик | Юрий Петров | Flutter

22 Oct, 16:06


Welcome

Мобильный разработчик | Юрий Петров | Flutter

21 Oct, 12:00


🎉 Результаты розыгрыша:

Победители:
1. Qatro (@bridzzzzzzzzz12)
2. илона (@lisisian)

Проверить результаты

Мобильный разработчик | Юрий Петров | Flutter

17 Oct, 13:06


🎞 Всё про Stream в Dart, о чем вам никто не рассказывал

👍 Вы просили - и мы делаем!

Ультра важная тема для того чтобы делать качественные приложения на Flutter

✔️ Как создать Stream
✔️ Stream vs Stream.broadcast
✔️ StreamSubscription
✔️ async* yield
✔️ Почему важно закрывать подписку на стрим

📱 Смотри на YouTube

Мобильный разработчик | Юрий Петров | Flutter

17 Oct, 10:52


Рассказали в блоге на Хабре про самые важные пакеты в экосистеме Dart и Flutter, и как вообще оценивается их важность. Давайте обсудим 💬

Мобильный разработчик | Юрий Петров | Flutter

15 Oct, 14:18


Мобильный разработчик | Юрий Петров | Flutter pinned Deleted message

Мобильный разработчик | Юрий Петров | Flutter

15 Oct, 09:01


Разыгрываю 2 билета на CrossConf⚡️

Это крупнейшая конференция по кроссплатформенной разработке с целым потоком докладов о Flutter.

Она пройдет 8 ноября в Москве. Вместе с коллегой Анной Ахлестовой готовим доклад. Покажем на собственных примерах, как защищать приложения от угроз и проходить аудит по безопасности. Еще в потоке Flutter – доклады про BDUI, работу с логами, про DivKit и Flame. Будут сильные доклады, известные спикеры и большое Flutter-сообщество.

Как принять участие:
Подписаться на меня @mobile_developing и канал @flutterfriendly.
Нажать «Участвую» под этим постом.

Итоги подведу 21 октября. Всем удачи!

Мобильный разработчик | Юрий Петров | Flutter

14 Oct, 07:11


Где самые крутые доклады о Flutter-разработке? У нас на конференции! Без шуток: состав потока собрали очень мощный 🔥 Делимся, какая программа получилась.

◾️ Аудит безопасности мобильных приложений: Flutter держит оборону
Юрий Петров, Flutter Tech Lead, Friflex, и Анна Ахлестова, Flutter Team Lead, Friflex

◾️ Это все твои игры на Flame и Flutter
Станислав Ильин, Flutter Team Lead, Поток.Диджитал

◾️ Duit – как создать эффективный BDUI-фреймворк для Flutter, не привлекая внимания санитаров
Никита Синявин, Lead Flutter Developer, BetBoom

◾️ UI логгера на Flutter: Как сделать работу с логами удобнее и быстрее?
Павел Гершевич, Flutter Team Lead, Amiga

◾️ Что же Dart такого нам готовит?
Станислав Чернышев, доцент, СПбГУАП

◾️ DivKit on Flutter: Кроссплатформа^
Максим Ясаков, разработчик DivKit, Яндекс Про

◾️ 3D во Flutter: новый инструментарий
Даниил Бондарев, Flutter Developer, Surf

Приходите на CrossConf и зовите знакомых flutter-разработчиков. По традиции для поклонников Flutter делимся промокодом FLUTTER30 на скидку. До конца дня 18 октября можно купить билет со скидкой -30% на сайте CrossConf.

Мобильный разработчик | Юрий Петров | Flutter

11 Oct, 09:26


С появлением компиляции в Wasm и обновлением интеропа с js, ряд встроенных библиотек Dart был помечен, как LEGACY. Это:
⛔️ package:js
⛔️ dart:html
⛔️ dart:indexed_db
⛔️ dart:js
⛔️ dart:js_util
⛔️ dart:svg
⛔️ dart:web_audio
⛔️ dart:web_gl

Вместо них теперь следует использовать:
package:web
dart:js_interop
dart:js_interop_unsafe

Пакет package:web заменяет собой dart:html и другие web-библиотеки. Почему пакет, а не новая встроенная библиотека dart:web? Такой подход позволит быстрее выкатывать новые фичи и исправлять критические ошибки, т.к. пакет не привязан к релизному циклу Dart (4 раза в год, 1 раз в 3 месяца).

Мобильный разработчик | Юрий Петров | Flutter

10 Oct, 14:04


🎞 Все возможности Future в Dart, о которых вам никто не расскажет

😂 Думали 17 минут про async await - это все? ха-ха-ха, раздумывайте

Обычно в таких видео рассказывают про Future.then, максимум про Future.catchError

😯 Мы конечно же пойдем дальше и разберем почти все методы которые предоставляет этот класс для работы

В ролике будет про:
✔️ Future.wait
✔️ Future.whenComplete
✔️ Future.timeout

Держу пари вы не использовали эти методы в своих приложениях

📱 Смотреть на YouTube

Мобильный разработчик | Юрий Петров | Flutter

09 Oct, 09:33


🚀 Знакомьтесь, Анна. Еще недавно — студентка вуза, а сейчас — Flutter Team Lead Friflex. Вот это успех, подумали мы и решили именно с нее начать нашу рубрику #friflex_team с вдохновляющими историями наших коллег.

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

И пусть история Анны вдохновит и вас 💜