TGViewer
Channel Public Channel
Юрий Петров | ai engineering

Юрий Петров | ai engineering

@mobile_developing

Привет! 👋
Я руководитель отдела разработки.
Здесь мы изучаем LLM, автоматизацию с n8n, делаем крутые приложения на Flutter и учим их думать с помощью ИИ.
Новости, лайфхаки, интересные кейсы, присоединяйся.
#flutter #dart #llm #ai #ollama #n8n #agent #go
Subscribers
1.57K
Photos
458
Videos
46
Links
704

Showing posts older than #522 · Back to latest

Older Posts 18 shown
Post #520 1.61K
Всем привет. Так как бываю на очень много разных проектов, и вижу разные реализации подписки блок на блок. Хотел бы узнать, про то как по вашему мнению лучше подписывать блок на блок. Например, необходимо отслеживать в блоке профиля состояние изменения магазина, авторизации и так далее. И реагировать при изменении определённым образом.
Для примера написал приложение, где есть блок счетчик и есть блок слушатель, который просто дублирует значение счетчика.

Есть несколько вариантов:

1. Подписка блок на блок при передаче блока в конструктор. Но такой подход нарушает правило мягкой связности объектов в domain слое. Получается, что есть жесткая связка между блоками. А это не хорошо. Ну и плюс нагрузка на блок, создание подписок и слушателей, хотя он не должен этого делать. Пример со простым счетчиком и можно глянуть здесь:
https://dartpad.dev/?id=d06329447bf96b62facffafb985eda04

2. Второй вариант. В данном случае подписка происходит на уровне UI в методе initState. То есть, по сути мы создаем подписку на изменения блока на том экране, где это надо. И удаляем когда уходим с экрана. В этом случае блоки не связаны, и сильно разгружены, так как нет подписок внутри блока. Но есть подписка который надо создавать и удалять.
https://dartpad.dev/?id=d4e1141475241f9f713778fbcec8df52

3. Третий вариант, инициализация подписки внутри блока listener. В этом случае блоки не связаны, и сильно разгружены, так как нет подписок внутри блока. Не надо создавать подписки, удалять и так далее.
https://dartpad.dev/?id=bc88d9a6f4320f060c695393eb088a66

4. И последний вариант, через общий репозиторий (аля шина событий). В данном случае UI не занимается подписками. Но есть лишняя сущность репозиторий, который нужно прокидывать в конструкторы блоков.
https://dartpad.dev/?id=1a96bba067b25e330f578d9f2e57b8c7

Как думаете, какой вариант самый лучший? Хотелось бы послушать ваше мнение. Если вам не понравится не один из вариантов, пожалуйста напишите свой в комментариях, а лучше приложите ссылку на DartPad
  • 👍 1
Post #517 583
Кому интересно глянуть на движки Flutter Аврора, можно здесь
https://gitlab.com/omprussia/flutter/flutter-engine

Flutter Engine — это портативная среда выполнения для приложений Flutter. Она реализует основные библиотеки Flutter, включая анимацию и графику, файловый и сетевой ввод-вывод, поддержку специальных возможностей, архитектуру плагинов, а также среду выполнения Dart.

Инструкция по сборке https://github.com/flutter/flutter/wiki/Compiling-the-engine
GitLab omprussia / Flutter / Flutter Engine · GitLab Engine Flutter для Flutter SDK с поддержкой ОС Аврора.
Post #516 441

Forwarded from Код Воробья для iOS разработчиков

Вышел 💻 Xcode 15.1:

– 🧩 @IBDesignable официально деприкейтед
– Максросы можно использовать в Playground
– Для ☁️ Xcode Cloud в условия добавили старт только вручную (см. скриншот)

RC совпадает с релизом — если скачивали, обновлять не нужно. Писать под 🥽 visionOS через бету 💻 15.2.
Post #513 452

Forwarded from Product Friendly

При попытке установки вашего приложения на систему Аврора может возникать неизвестная ошибка, несмотря на успешную сборку и проверку в менеджере RPM. Почему так происходит и как решить эту проблему?

В новом видео Юрий Петров, Flutter Team Lead Friflex и автор канала @mobile_developing, поэтапно разбирает процесс валидации Flutter-пакетов:

✔️проверка RPM-пакета перед установкой
✔️анализ результатов валидации
✔️исправление ошибок

👀 Смотрите туториал по ссылке:
→ Валидатор написанных на Flutter пакетов на ОС Аврора

И подписывайтесь на YouTube-канал Friflex, чтобы не пропустить новые видео 💜
  • 👍 9
  • 🔥 3
Post #512 579
Post #511 668
Post #509 590
Сегодня Google анонсировала Gemini свою GPT нейросеть.
  • 👍 1
Post #508 694
Ожидаемо, Flutter победил без компромиссов 💪
  • 🔥 15
  • 👎 4
Post #507 617
Post #506 611

Forwarded from Vitaliy Zarubin | @keygenqt

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

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

👉 Flutter SDK обновлен до 3.16.2.
👉 Перевели сборку с make на ninja.
👉 Полный журнал сборки.
👉 Добавлена поддержка текстур.
👉 Блокировка ориентации.
👉 Камера: видоискатель, фото, QR.
👉 Обновлен плагин сенсоров.

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

Текущая версия 3.16.2 и вы можете получить ее уже сейчас. Все необходимое вы можете найти по ссылке: https://gitlab.com/omprussia/flutter.
  • 🔥 7
Post #505 695
Ищем сильного Джуна, пишите HR 😁
  • ❤ 2
Post #504 670
Post #503 510

Forwarded from Product Friendly

Wonderous – приложение для Flutter SDK о самых известных памятниках и местах в мире с большим количеством анимаций, эффектов и переходов, которое хорошо отражает возможности визуальной точности Flutter. Как портировать это приложение на ОС Аврора? С какими проблемами можно столкнуться в процессе и как их решить?

В новом видео Юрий Петров, Flutter Team Lead Friflex и автор канала @mobile_developing, делится опытом портирования приложения Wonderous на ОС Аврора:

✔️клонирование проекта на компьютер
✔️добавление поддержки Авроры
✔️запуск Flutter-пакетов на Авроре
✔️настройка доступа к интернету
✔️установка сборки на смартфон

👀 Смотрите туториал по ссылке:
→ Пример портирования Wonderous на Аврора

И подписывайтесь на YouTube-канал Friflex, чтобы не пропустить новые видео 💜
  • 👍 7
  • ❤ 6
  • 🔥 2
Post #502 526
Post #501 572
А вы знали, что в языке Go есть свои заклинания?
https://go-proverbs.github.io/

0. Избегайте коммуникаций через общую, разделённую память. Наоборот, делитесь данными в памяти через сообщения.
1. Конкурентность и параллелизм — это не одно и то же.
2. Каналы для взаимодействия, мьютексы для разобщения.
3. Чем сложнее интерфейс, тем ненадёжней абстракция.
4. Нулевые значения полезны не меньше других.
5. Пустой интерфейс interface{} не о многом скажет.
6. У всех есть свой годный стиль форматирования кода, стандартное форматирование gofmt — годное для всех.
7. Копирование лучше зависимостей.
8. Защищай системные вызовы в коде тегами сборки.
9. Защищай кросс-вызовы cgo к коду C тегами сборки.
10. Cgo — это не Go.
11. Применяя пакет unsafe, не рассчитывай на какие-либо гарантии.
12. Лучше ясно, чем красиво.
13. Интроспекция ясной не бывает.
14. Значения ошибок — это тоже значения.
15. Недостаточно отлавливать ошибки, нужно их обрабатывать.
16. Полируй архитектуру, внятно называй компоненты, документируй детали.
17. Документация — для пользователей.
18. Не паникуй.

Я думаю, эти заклинания подходят для многих языков программирования. 😊
  • 🔥 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →