Flutter Pulse
771 subscribers
467 photos
1.12K links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Обновленный корпоративный шаблон Friflex Flutter Starter! 🚀 Это значит, что ваше приложение станет еще более мощным и современным! 💻

Что нового? 🤔
Обновили Flutter до версии 3.38.1+ - последней стабильной версии! 📈
Добавили поддержку Dot Shorthands из Dart 3.10 - ваш код станет еще более чистым и читаемым! 📚
Обновили правила анализатора - теперь проверка кода еще более эффективна! 🚫
Добавили инструкции для AI-ассистентов - теперь вы можете работать с Copilot и Cursor еще более эффективно! 🤖
Упрощена инициализация репозиториев - архитектура DI стала еще более удобной! 📁
Обновили документацию - теперь у вас есть актуальная информация по всем модулям! 📖
Добавили модуль обновлений - теперь поддерживаются hard и soft обновления приложения! 📈
Обновили все зависимости до последних версий - ваше приложение станет еще более стабильным! 📈
Улучшили систему тем и UI Kit - теперь ваше приложение выглядит еще более современно! 🎨

Хотите узнать больше? 🤔 Тогда переходите по ссылке и читайте подробную информацию о Flutter Starter! 📚

И не забудьте подписаться на канал flutterpulse 📣, чтобы быть в курсе всех последних новостей и обновлений из мира Flutter и Dart! 🚀

Используйте хэштеги #flutter #dart #flutterpulse #flutterpulsenews, чтобы делиться своими мыслями и опытом с другими разработчиками! 💬

Начните свой проект прямо сейчас и ждем ваших pull requests с улучшениями и предложениями! 🚀
У меня есть супер-новость для всех, кто интересуется интеграцией языковых моделей в свои приложения 🤖!
Вы знаете, как сложно оставаться в стороне от всего этого ажиотажа вокруг AI 🤯?
Сегодня я расскажу, как подключить ваше Flutter/Dart-приложение к локальному серверу Ollama с помощью пакета ollama_dart 📈!
Ollama - это инструмент для запуска языковых моделей локально, на вашем компьютере 🖥, что дает вам приватность, полный контроль и отсутствие зависимости от облачных API ☁️.
Чтобы связать сервер Ollama с вашим приложением, используйте библиотеку ollama_dart, которая позволяет отправлять одиночные запросы, работать со стримингом ответов и использовать разные типы запросов 📊.
Подключить Ollama легко: импортируйте пакет, инициализируйте клиента и отправляйте запросы на генерацию текста 📝.
Если вам нужно получать ответы по мере генерации, используйте generateChatCompletionStream 📢.
Вы можете выбирать разные версии моделей, настраивать параметры генерации и экспериментировать с разными моделями 🔬.
Чтобы работа с LLM через Ollama была максимально продуктивной, детализируйте промт, экспериментируйте с разными моделями и используйте стриминг для больших текстов 📈.
Хотите узнать больше? Ссылка на подробную статью 📎.
Не забудьте подписаться на наш канал flutterpulse, чтобы быть в курсе всех последних новостей и обновлений из мира Flutter и Dart! 📱
#flutter #dart #flutterpulse #flutterpulsenews 🚀💻
🚀 Вышел Flutter 3.38.2 — важные стабильные фиксы
Свежий апдейт для всех Flutter-разработчиков

Команда Flutter выпустила патч-релиз 3.38.2, который закрывает ряд неприятных падений и проблем, связанных с widget preview, iOS-сборками и интеграцией через IDE. Если ты используешь превью виджетов или работаешь с iOS/Windows — обновление must-have.

🔥 Основные исправления

• Исправлен крэш widget preview при выходе
При анализе изменений в Dart-файле команда widget preview могла аварийно завершаться. Теперь — стабильно.

• Ошибка iOS-сборок “Improperly formatted define flag”
В add-to-app проектах Flutter мог падать при сборке на iOS. Исправлено.

• Widget preview не стартовал, если Flutter Web отключён
Теперь исключение не выбрасывается, превью корректно запускается.

• Крэш widget preview во время flutter pub get
Добавление или обновление плагинов могло ронять превью. Баг закрыт.

• Проблема с множественными crash-репортами
В некоторых сценариях один крэш создавал несколько отчётов. Теперь отчёт строго один.

• Visual Studio 2026 не поддерживается
Flutter теперь корректно сообщает о неподдерживаемой версии при сборке Windows-приложений.

• Widget preview не запускался без flutter pub get
Теперь поведение корректное и предсказуемое.

• Зависание при запуске на физическом iOS 26 из IDE
IDE устанавливала приложение, но запуск висел на белом экране. Баг исправлен.

Итог
Flutter 3.38.2 — это стабильность, меньше крэшей и надёжная работа widget preview на всех платформах. Рекомендуется обновиться всем, особенно тем, кто работает с iOS и widget preview.

ChangeLog

#flutter #dart #flutterpulse #flutterupdate #flutterpulsenews #mobiledev #iosdev #androiddev
Продолжаем наше путешествие по миру Flutter и Dart 🌐, и сегодня мы погружаемся в практические аспекты работы с Viewport и ограничениями 📊.
В этой части мы рассмотрим реальные сценарии 📈, такие как двумерные виджеты на ленте прокрутки 🔄 и хитрости с ListView и CustomScrollView 🤔, чтобы вы лучше поняли, как всё это работает вместе 🤝.
В специальных карточках 📁 вы найдёте примеры и пояснения от опытного разработчика Андрея 🙋‍♂️, которые помогут вам разобраться с прокручиваемыми списками 📜 и сложными лейаутами 📐.
Хотите узнать больше? 🤔 Тогда переходите по ссылке и читайте полную статью 📄!
И не забудьте подписаться на flutterpulse 📣, чтобы быть в курсе всех последних новостей и обновлений 📊 о Flutter и Dart 🚀!
#flutter #dart #flutterpulse #flutterpulsenews 🚀💻
Привет, друзья! 👋 Сегодня у нас есть интересная новость о принципе открытости/закрытости (Open/Closed Principle) в программировании на Dart и Flutter 🤩.
Этот принцип гласит, что программные сущности должны быть открыты для расширения, но закрыты для модификации 🚫. Это означает, что вы должны иметь возможность добавлять новую функциональность без изменения существующего кода 📈.
Почему это важно? Чем больше кода мы изменяем, тем больше багов мы создаем 🐜. Каждое изменение существующего кода несет риск появления ошибок и требует повторного тестирования всех зависимых компонентов 🔄.
Следование OCP минимизирует эти риски, позволяя расширять функциональность без модификации уже работающего кода 💻.
Пример нарушения OCP и его правильного применения можно найти тут 📄.
Преимущества OCP включают:
✔️ Меньше ошибок при внесении изменений
✔️ Не требуется регрессионное тестирование существующего кода
✔️ Более простой процесс расширения функциональности
✔️ Повышение стабильности и надежности системы
Принцип открытости/закрытости — это основа стабильной и расширяемой архитектуры 🏗.
Подписывайтесь на наш канал flutterpulse, чтобы не пропустить новые статьи и новости о Flutter и Dart 📣!
#flutter #dart #flutterpulse #flutterpulsenews 🚀💻👍
👍1
Привет, друзья! 👋 Сегодня мы поговорим о двух важных понятиях в разработке на Flutter: Hot Reload и Hot Restart. 🤔 Эти механизмы используются при отладке кода и позволяют быстро применить внесенные изменения и посмотреть, как они работают. Но чем они отличаются? 🤔

⚡️ Hot Reload не перезапускает программу с нуля, а лишь «подмешивает» измененный код в уже запущенный процесс. Состояние приложения сохраняется. 🔥 Это происходит благодаря следующим шагам:
1. Вы вносите изменения в код и запускаете Hot Reload.
2. Flutter изучает, какие именно файлы вы изменили.
3. Затем перекомпилируются только важные части: библиотеки с измененным кодом, основная библиотека и все библиотеки, связанные с измененными.
4. Обновленный код преобразуется в специальный kernel-файл и поступает в Dart VM.
5. Dart VM подтягивает новые версии библиотек, при этом сохраняя текущее состояние приложения.
6. Flutter вызывает перестройку тех виджетов, которые были затронуты изменениями.

🔄 Hot Restart полностью перезапускает приложение, сбрасывая абсолютно все состояния и данные. 🔄 Это происходит следующим образом:
1. Вы вносите изменения в код и запускаете Hot Restart.
2. Dart VM очищает все сохраненные состояния, все значения переменных, пересоздает все объекты заново.
3. Заново запускается метод main().
4. Приложение запускается как будто с нуля, но не затрагивается нативный код и движок Flutter.

Итак, если вы хотите узнать больше о Hot Reload и Hot Restart, и как они работают под капотом, то переходите по ссылке и читайте полную статью! 📚

Не забудьте подписаться на наш канал flutterpulse, чтобы быть в курсе всех последних новостей и обновлений из мира Flutter! 📱 #flutter #dart #flutterpulse #flutterpulsenews 💻👍
Private Named Parameters уже доступны в экспериментальном режиме Dart 🍿!
Эта фича решает проблему с приватными именами полей, позволяя инициализировать их через именованные аргументы конструктора класса.
Ранее это было невозможно, так как Dart запрещал использовать имена параметров, начинающиеся с _ (нижнего подчеркивания) в публичных конструкторах c именованными аргументами. Но теперь все меняется! 😄
Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #madteacher_channel
Принцип подстановки Барбары Лисков: основа правильного полиморфизма в программировании 🌟
Привет, друзья! Сегодня мы поговорим о третьей букве в акрониме SOLID - L, которая означает принцип подстановки Лисков 🤔. Этот принцип гласит, что объекты подклассов должны быть взаимозаменяемы с объектами их базового класса без нарушения корректности работы программы 💻.

Почему это важно? 🤔 Нарушение LSP приводит к непредсказуемому поведению программы, код начинает проверять типы объектов с помощью if/else или is, что противоречит принципу открытости/закрытости и делает систему хрупкой 🌪. Соблюдение LSP гарантирует, что полиморфизм работает правильно и подклассы действительно являются специализацией базового класса 🔩.

Давайте рассмотрим пример нарушения LSP 🚫:

class Bird {
void fly() {
print("Flying");
}
}

class Penguin extends Bird {
@override
void fly() {
throw Exception("Cannot fly"); // Нарушение LSP
}
}

Здесь функция, принимающая Bird, ожидает, что любой потомок сможет летать. Но при подстановке пингвина код валится с ошибкой, значит, иерархия нарушает принцип Лисков 🚫.

А теперь пример правильного использования LSP 🌟:

abstract class Bird {
void move();
}

class Sparrow extends Bird {
@override
void move() {
print("Flying");
}
}

class Penguin extends Bird {
@override
void move() {
print("Swimming");
}
}

Ключевые правила LSP 📝:
✔️ Предусловия не могут быть усилены в подклассе — подкласс не должен требовать больше, чем базовый класс
✔️ Постусловия не могут быть ослаблены в подклассе — подкласс должен гарантировать как минимум то, что гарантирует базовый класс
✔️ Инварианты должны сохраняться — свойства, которые истинны для базового класса, должны оставаться истинными для подклассов
✔️ Исключения — подкласс не должен выбрасывать новые типы исключений, которые не ожидаются от базового класса

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #flutterfriendly
🔥2
Обновил Flutter… и сломалось пол-проекта 😐. Кто из вас сталкивался с проблемами после обновления версии Flutter? 🧑‍💻 Я решился обновить версию с 3.27 до 3.35 и, как всегда, это привело к целой серии проблем 🥲. Нужно обновить половину библиотек из pubspec.yaml, а некоторые из них уже не поддерживаются или не обновляются уже несколько лет 😭.

Причина проблем часто кроется в том, что опенсорсеры dart и Flutter библиотек забивают болт на свои проекты 🍆. Например, хранилище hive/isar, которым пользовалось большинство проектов, не обновляется уже третий год 🩷. Решение может заключаться в том, чтобы не использовать всякую срань в своем pubspec, но что делать, когда это специфичный функционал, на разработку которого уйдет много времени? 📱

Мы столкнулись с проблемой, когда библиотека social_share, которая создает историю в инсте по наждатию на одну кнопку, потеряла актуальность и нам приходится искать замену или самим форкать и дописывать библиотеку 📌. Чтобы избежать таких проблем, можно следовать нескольким пунктам:

меньше пакетов → больше контроля
критические плагины → форк + минимум нативного кода
следить за репами заранее
избегать магических «универсальных» решений

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #frezycode
😁2
Революция во векторизации данных: представляем пакет ollama_embedder! 🚀
На выходных один из разработчиков столкнулся с проблемой подготовки данных для векторизации и поиска в векторной базе данных Qdrant. После тщательного поиска решений в интернете, он решил создать свой собственный пакет на Dart - ollama_embedder! 🎉
Этот CLI-инструмент позволяет создавать векторные представления текста с помощью локального Ollama-сервера. Вот что он умеет:
🔹 Генерирует эмбеддинги для файлов и целых директорий (рекурсивно).
🔹 Работает с локальным Ollama — проверяет установку, доступность сервера и наличие модели.
🔹 Два режима предобработки: technical и textual.
🔹 Умная очистка — удаляет HTML-шум, cookie-баннеры, навигацию, футеры, эмодзи.
🔹 Умное разбиение на чанки с автоматическим определением оптимального размера и созданием перекрытий между чанками.
🔹 Надежные запросы — автоматические повторы при ошибках Ollama.
🔹 Гибкая настройка — URL сервера, модель, таймауты, размер файлов, пути ввода/вывода.
🔹 Структурированный итоговый JSON — готов для векторных БД и RAG-систем.
🔹 Покрытие тестами — 78% покрытия кода.

Полную новость читайте здесь.

FlutterPulse — канал о мире Flutter!

#flutter #dart #FlutterPulse #FlutterPulseNews #mobile_developing
12🤝1