Forwarded from MADTeacher | Станислав Чернышев
Всем привет!
У меня для вас хорошие новости по книге "Основы Flutter" 👀
Глава по локализации утверждена, а значит, в курсе "Основы Flutter" на степике обновление ^_^
Напоминаю, что уже завтра в 11 часов по Мск состоится стрим с авторским коллективом, где немного приоткроем завесу тайны над написанием книги, почему выбран такой сквозной проект, как началось сотрудничество с Surf и Mad Brains по разработке лабораторного практикума к книге и многое другое🪨
У меня для вас хорошие новости по книге "Основы Flutter" 👀
Глава по локализации утверждена, а значит, в курсе "Основы Flutter" на степике обновление ^_^
Напоминаю, что уже завтра в 11 часов по Мск состоится стрим с авторским коллективом, где немного приоткроем завесу тайны над написанием книги, почему выбран такой сквозной проект, как началось сотрудничество с Surf и Mad Brains по разработке лабораторного практикума к книге и многое другое
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1
Forwarded from MADTeacher | Станислав Чернышев
Начинаем стрим авторского коллектива "Основы Flutter". Подключайтесь: https://youtube.com/live/oJkjpluOhFE?feature=share
YouTube
Мы пишем книгу по Flutter | Созвон авторов feat Стас Чернышев, Юрий Петров, Павел Гершевич
Предварительный доступ к книге: https://stepik.org/a/197817
00:00 - Подготовка
02:50 - Начинаем
03:50 - Как появилась идея создать книгу ?
09:52 - Зачем книга если джуны не нужны ?
11:22 - Есть ли будущее у Flutter ?
18:35 - Будет ли про Flutter Web и Desktop…
00:00 - Подготовка
02:50 - Начинаем
03:50 - Как появилась идея создать книгу ?
09:52 - Зачем книга если джуны не нужны ?
11:22 - Есть ли будущее у Flutter ?
18:35 - Будет ли про Flutter Web и Desktop…
👍3
Forwarded from Стас Ильин | Flutter
❤️ Спасибо большое всем кто был на трансляции
🤟 Отличный онлайн собрали для субботнего утра! И отдельное спасибо всем кто задавал вопросы, вышло интересное обсуждение
Для вашего удобства сразу добавил подробные таймкоды, ведь мы обсуждали не только книгу но и кучу других вопрсов
📺 Для тех кто не мог смотреть в онлайне запись трансляции достпуна на канале
Для вашего удобства сразу добавил подробные таймкоды, ведь мы обсуждали не только книгу но и кучу других вопрсов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Forwarded from Flutter Friendly
Привет, это Катя, Flutter Dev Friflex. Сегодня поговорим о фреймворке gRPC и его реализации.
Что это?
gRPC — это фреймворк для удаленного вызова процедур (RPC), разработанный Google. Он использует HTTP/2 для транспорта и Protocol Buffers (protobuf) в качестве языка описания интерфейсов и формата сериализации данных.
Настройка и использование gRPC
1️⃣ Добавляем в pubspec.yaml:
2️⃣ Создаем файл .proto
Сделаем на примере создания чата. Определяем сервис в файле .proto. Например, lib/protos/chat.proto:
3️⃣ Генерируем код
Запускаем команду для генерации Dart-кода:
4️⃣ Создаем клиента
5️⃣ Используем клиента в приложении
На что следует обратить внимание:
🔸 gRPC клиент:
➡️ инициализируется один раз при создании состояния
➡️ обеспечивает двустороннюю коммуникацию
➡️ управляет подпиской на поток сообщений
🔸 Потоковая передача:
➡️ receiveMessages() возвращает Stream<Message>
➡️ listen() подписывается на новые сообщения
🔸 Управление ресурсами:
➡️ gRPC соединение должно закрываться
➡️ Отмена подписок происходит автоматически при dispose()
Продолжение — в комментариях📌
Что это?
gRPC — это фреймворк для удаленного вызова процедур (RPC), разработанный Google. Он использует HTTP/2 для транспорта и Protocol Buffers (protobuf) в качестве языка описания интерфейсов и формата сериализации данных.
Настройка и использование gRPC
dependencies:
grpc: ^4.1.0
protobuf: ^3.1.0
dev_dependencies:
protoc_plugin: ^21.1.2
Сделаем на примере создания чата. Определяем сервис в файле .proto. Например, lib/protos/chat.proto:
syntax = "proto3";
package chat;
service ChatService {
rpc SendMessage (Message) returns (MessageResponse);
rpc ReceiveMessages (Empty) returns (stream Message);
}
message Message {
string text = 1;
string sender = 2;
int64 timestamp = 3;
}
message MessageResponse {
bool success = 1;
string error = 2;
}
Запускаем команду для генерации Dart-кода:
bash
protoc --dart_out=grpc:lib/generated -Ilib/protos lib/protos/chat.proto
class GrpcClient {
late ChatServiceClient client;
/// Инициализация канала соединения
GrpcClient() {
final channel = ClientChannel(
'http://localhost',
port: 50051,
options: const ChannelOptions(
credentials: ChannelCredentials.insecure(),
),
);
client = ChatServiceClient(channel);
}
/// Отправка сообщения
Future<MessageResponse> sendMessage(String text, String sender) async {
final message = Message()
..text = text
..sender = sender
..timestamp = DateTime.now().millisecondsSinceEpoch;
try {
return await client.sendMessage(message);
} catch (e) {
print('Error sending message: $e');
return MessageResponse()..success = false..error = e.toString();
}
}
/// Получение сообщений
Stream<Message> receiveMessages() {
return client.receiveMessages(Empty());
}
}На что следует обратить внимание:
Продолжение — в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
У бота Flutter Observer количество активных пользователей превысило планку в 300 человек. Неплохо, неплохо. ☺️
Напоминаю, что есть тема в группе, где можно предлагать добавить функции, которые, вы считаете, были бы полезны сообществу. Также это сделать можно написать прямо в боте командой /send.
Напоминаю, что есть тема в группе, где можно предлагать добавить функции, которые, вы считаете, были бы полезны сообществу. Также это сделать можно написать прямо в боте командой /send.
👍5❤3
В Medium были найдены новые статьи о Dart ⭐️
- Dart in Google Summer of Code 2025
Информация от FlutterObserver_bot
- Dart in Google Summer of Code 2025
Информация от FlutterObserver_bot
Medium
Dart in Google Summer of Code 2025
We’re excited to announce that the Dart project will mentor contributors (for the sixth time!) in Google Summer of Code 2025.
Forwarded from Ringov | Flutter Bro
Где в Яндексе есть Flutter?
Недавно прошедший внутренний митап ознаменовал новую веху — в Яндексе появилось Flutter-комьюнити!
На митапе отлично повеселились, а заодно провели инвентаризацию команд, использующих Flutter — записывайте😯
1. Про — iOS | Android
2. Драйв — iOS | Android
3. Практикум — iOS | Android
4. Маршрутизация — iOS | Android
5. Афиша — iOS | Android
6. Авто.ру Бизнес — iOS | Android
7. Заправки — iOS | Android
8. Смена — iOS | Android
9. Маркет ПВЗ — iOS | Android
Ещё есть несколько мест, где Flutter встроен в Яндекс Go. Ну и на десерт. В десктопном Яндекс Браузере многие части UI — на Flutter😎
Ну чисто чтобы у вас не было сомнений по поводу количества продуктовых Flutter-команд в Яндексе☕️
Недавно прошедший внутренний митап ознаменовал новую веху — в Яндексе появилось Flutter-комьюнити!
На митапе отлично повеселились, а заодно провели инвентаризацию команд, использующих Flutter — записывайте
1. Про — iOS | Android
2. Драйв — iOS | Android
3. Практикум — iOS | Android
4. Маршрутизация — iOS | Android
5. Афиша — iOS | Android
6. Авто.ру Бизнес — iOS | Android
7. Заправки — iOS | Android
8. Смена — iOS | Android
9. Маркет ПВЗ — iOS | Android
Ещё есть несколько мест, где Flutter встроен в Яндекс Go. Ну и на десерт. В десктопном Яндекс Браузере многие части UI — на Flutter
Ну чисто чтобы у вас не было сомнений по поводу количества продуктовых Flutter-команд в Яндексе
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍6❤1
Forwarded from Flutter Friendly
This media is not supported in your browser
VIEW IN TELEGRAM
Привет, с вами Роза, Flutter Dev Friflex!
Когда только начинаешь разрабатывать на Flutter, многие возможности языка остаются незамеченными. А с опытом начинаешь глубже разбираться в деталях и повышать свою экспертность. С модификаторами классов у меня было так же: изначально в моем арсенале был лишь abstract... и все, наверное. А со временем я узнала и про sealed, и про base. Делюсь этим и с вами!
Зачем нужны модификаторы?
Модификаторы в Dart помогают управлять наследованием и доступностью классов. Они задают ограничения, предотвращают нежелательное расширение или, наоборот, определяют четкие правила для будущих реализаций.
Основные модификаторы:
🔸 abstract
Если вам не нужна реализация всех методов, а вы хотите создать класс-шаблон, используйте abstract.
🔴 Запрещает создавать экземпляры этого класса напрямую (new AbstractClass() не сработает).
🔴 Часто используется как базовый класс, определяющий интерфейс и частичное поведение для наследников.
🔸 base
Разрешает наследование (extends) и реализацию (implements), но только в пределах текущего пакета.
🔴 За пределами пакета base-класс нельзя реализовать (implements).
🔴 Полезно, если нужно предотвратить реализацию, но оставить возможность наследования.
🔸 interface
Принуждает использовать класс только через implements, запрещая наследование (extends).
Полезно, если хотите создать чистый контракт, без возможности переиспользовать реализацию.
🔸 final
Запрещает любое наследование (extends) или реализацию (implements) класса за пределами текущей библиотеки.
Гарантирует, что класс — конечная точка в иерархии. Его нельзя расширить или изменить поведение через подклассы вне вашего контроля.
🔸 mixin
Позволяет переиспользовать код без наследования.
🔴 Класс с mixin можно добавлять к другим классам через with.
🔴 Миксины не могут иметь конструкторов и не могут быть инстанцированы напрямую.
🔸 sealed
Позволяет создавать закрытый набор подтипов.
🔴 Все подклассы должны быть в той же библиотеке, что и sealed-класс.
🔴 Полезно для switch, так как компилятор проверяет, что все случаи учтены (exhaustiveness).
🔴 Отлично подходит для описания состояний (Loading, Success, Error), событий и других строго определенных иерархий.
Как использовать модификаторы?
Добавьте перед классом нужное ключевое слово. Например:
🔖 Важно! Модификаторы можно комбинировать (abstract base class), создавая тонкие правила для классов. Подробнее — в таблице в комментариях.
📎 Официальная документация по модификаторам
А какие модификаторы используете чаще всего? Делитесь в комментариях! 👀
Когда только начинаешь разрабатывать на Flutter, многие возможности языка остаются незамеченными. А с опытом начинаешь глубже разбираться в деталях и повышать свою экспертность. С модификаторами классов у меня было так же: изначально в моем арсенале был лишь abstract... и все, наверное. А со временем я узнала и про sealed, и про base. Делюсь этим и с вами!
Зачем нужны модификаторы?
Модификаторы в Dart помогают управлять наследованием и доступностью классов. Они задают ограничения, предотвращают нежелательное расширение или, наоборот, определяют четкие правила для будущих реализаций.
Основные модификаторы:
Если вам не нужна реализация всех методов, а вы хотите создать класс-шаблон, используйте abstract.
Разрешает наследование (extends) и реализацию (implements), но только в пределах текущего пакета.
Принуждает использовать класс только через implements, запрещая наследование (extends).
Полезно, если хотите создать чистый контракт, без возможности переиспользовать реализацию.
Запрещает любое наследование (extends) или реализацию (implements) класса за пределами текущей библиотеки.
Гарантирует, что класс — конечная точка в иерархии. Его нельзя расширить или изменить поведение через подклассы вне вашего контроля.
Позволяет переиспользовать код без наследования.
Позволяет создавать закрытый набор подтипов.
Как использовать модификаторы?
Добавьте перед классом нужное ключевое слово. Например:
sealed class GameState {
// ...
}А какие модификаторы используете чаще всего? Делитесь в комментариях! 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Обновил ботика FlutterObserver_bot до версии 0.2.1
- Обновление Telegram API до 8.3
- Теперь changelog отображается первым для быстрого перехода
- Оптимизация сервиса для отправки сообщений пользователем
- Исправление минорных ошибок
https://telegra.ph/Flutter-Observer-02-17
- Обновление Telegram API до 8.3
- Теперь changelog отображается первым для быстрого перехода
- Оптимизация сервиса для отправки сообщений пользователем
- Исправление минорных ошибок
https://telegra.ph/Flutter-Observer-02-17
Telegram
Flutter Observer
Track changes and updates in the Flutter and Dart repositories in real-time.
👍3
Ух, зашел в репозиторий по ресурсам Flutter и увидел, что ребята из Mad Brains сделали пулреквесты на оптимизацию и добавления чата Комьюнити Flutter-разработчиков от Mad Brains.
Прошу меня простить, что сразу не увидел. В дальнейшем буду периодически заходить смотреть пулреквесты )
В итоге:
- в список чатов на русском языке добавлен чат Комьюнити Flutter-разработчиков от Mad Brains;
- в список чатов на английском языке добавлен чат Комьюнити Flutter Guys.
- в список чатов на английском языке добавлен чат Flutter developers community.
Если кто-то еще знает интересные ресурсы по Flutter, пишите мне или сделайте пулреквест.
Отслеживать обновления в репозитории можно в боте @FlutterObserver_bot
Прошу меня простить, что сразу не увидел. В дальнейшем буду периодически заходить смотреть пулреквесты )
В итоге:
- в список чатов на русском языке добавлен чат Комьюнити Flutter-разработчиков от Mad Brains;
- в список чатов на английском языке добавлен чат Комьюнити Flutter Guys.
- в список чатов на английском языке добавлен чат Flutter developers community.
Если кто-то еще знает интересные ресурсы по Flutter, пишите мне или сделайте пулреквест.
Отслеживать обновления в репозитории можно в боте @FlutterObserver_bot
❤2
Каждый день в pub dev добавляются много новых пакетов. Когда бот присылает список, проходишься по всем, пытаешся понять. Бывают и интересные экземпляры.
Но бывают и такие пакеты. )))
@FlutterObserver_bot
Но бывают и такие пакеты. )))
@FlutterObserver_bot
😁7
В Qwen появилась возможность объединять модели), очень мощная штука стала. При этом, в отличии от GPT полностью бесплатная сетка.
🔥14👍3
Forwarded from Основы Flutter
🚨Обновление курса "Основы Flutter (в разработке)" 🥳
Мы наконец-то закончили последний раздел второй главы - "Скроллируемые виджеты" и он из книги перекочевала на степик 🫠
Последняя неделя выдалась для команды очень продуктивно и о том, что же мы такого наворотили - постепенно будем постепенно делиться с вами в этом канале 😎
Мы наконец-то закончили последний раздел второй главы - "Скроллируемые виджеты" и он из книги перекочевала на степик 🫠
Последняя неделя выдалась для команды очень продуктивно и о том, что же мы такого наворотили - постепенно будем постепенно делиться с вами в этом канале 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
Stepik: online education
Основы Flutter: путь от Новичка до Профи
🔥 Хочешь стать Flutter-джедаем, но не знаешь, с чего начать?
Этот курс — твой билет в мир мобильной разработки! Здесь нет скучных лекций — только практика, тесты и реальный проект — Тетрис, который ты будешь прокачивать от версии v0 до полноценного приложения…
Этот курс — твой билет в мир мобильной разработки! Здесь нет скучных лекций — только практика, тесты и реальный проект — Тетрис, который ты будешь прокачивать от версии v0 до полноценного приложения…
👍1