Юрий Петров | ai engineering
Ir al canal en Telegram
Привет! 👋 Я руководитель отдела разработки. Здесь мы изучаем LLM, автоматизацию с n8n, делаем крутые приложения на Flutter и учим их думать с помощью ИИ. Новости, лайфхаки, интересные кейсы, присоединяйся. #flutter #dart #llm #ai #ollama #n8n #agent #go
Mostrar más1 771
Suscriptores
-224 horas
-117 días
-6430 días
Archivo de publicaciones
Repost from MADTeacher | Станислав Чернышев
В репозиторий по спецификации языка программирования Dart сделали интересный пулл-реквест. А именно, предложение по такой фиче, как Shared Memory Multithreading, где одна из заявленных целей то, что разработчики Dart должны иметь возможность писать конкурентный код, не сталкиваясь с ограничениями изолированной модели. https://github.com/dart-lang/language/pull/3531/files
Repost from Product Friendly
Сейчас, чтобы установить и настроить Flutter, Аврора PSDK, таргеты, необходимо производить много различных действий в строгой последовательности. Можно ли сделать это с помощью нескольких консольных команд?
В новом видео Юрий Петров, Flutter Team Lead Friflex и автор канала @mobile_developing, рассказывает, как автоматизировать процесс благодаря пакету Aurora CLI и установить:
✔️Aurora CLI
✔️Aurora PSDK в автоматическом режиме
✔️ Flutter 3.16.2 в автоматическом режиме
👀 Смотрите туториал по ссылке:
→ Как быстро установить Flutter Аврора+PSDK
И подписывайтесь на YouTube-канал Friflex, чтобы не пропустить новые видео 💜
Repost from Android Broadcast
Google выпустила рекомендации как расширить поддержку устройств вашего приложения:
👉 Осторожно с блоком <uses-feature> в AndroidManifest. Он указывает какие фичи (аппаратные и софтовые) должны быть у устройства. Google Play будет фильтровать показ вашего приложения в выдаче
👉 Отдельные запрашиваемые разрешения через <uses-permission> также приводят к требованиям аппаратных фичей по умолчанию, например CAMERA или BLUETOOTH
👉 Помните что подлючаемые библиотеки автоматом все добавляют в AndroidManifest все и то что бы вам там не хотелось. Анализируйте финальный манифест сборки!
👉 Автоматизируйте проверку AndroidManifest на CI с использованием AAPT2 или из Gradle тасков
Про то как управлять финальным AndroidManifest вашего APK рассказал в видео
HarmonyOS Next Developer Preview coming soon...
January, 2024.
Version/版本:HarmonyOS Next Developer Preview
System/系统:OpenHarmony- 4.1.25(Canary1)
Based on OpenHarmony 4.1
First batch, Mate60 and Mate40 series.
Виджет недели подъехал: OverlayPortal
https://www.youtube.com/watch?v=S0Ylpa44OAQ
Repost from Product Friendly
Если вы когда-нибудь сталкивались с фреймворком Flutter и языком Dart, то наверняка видели маскота – птичку Dash. А знаете, как она появилась?
🟣Идея создать маскота пришла Dart-разработчице Шамс Захур ещё в 2013 году. Через четыре года на тот момент вице-президент Flutter Джоши Джозеф вспомнил эту мысль и предложил разработать персонажа-игрушку для конференции Dart 2018.
🟣Сначала птичка была талисманом только Dart, а не Flutter. Команда Dart создала изображение колибри для корпоративных презентаций. Колибри символизирует, что Dart – это быстрый язык.
🟣Имя для маскота – Dash – выбрала тоже Шамс. Оно гендерно-нейтральное и подходит колибри. К тому же кодовое название проекта Dart раньше было Dash.
Коробки с плюшевыми игрушками Dash доставили в Южную Калифорнию к самому началу конференции, и разработчикам они очень понравились. Так Dash стал маскотом Dart и Flutter.
Ещё больше информации о фреймворке Flutter читайте на нашем сайте в разделах Flutter и Блог 💜
Repost from Oh, my Flutter
Каждый хотя бы раз использовал генерацию кода, но как часто приходилось писать свою?
Порой может возникнуть такая потребность, но кажется, что это очень сложно и не понятно с чего начать.
Предлагаем вам ознакомиться с данной статьей, которая посвящена основам генерации кода с помощью build и source_gen.
📌 Статья
#article
#ohmyteam
#ohmyfedukenukem
Repost from Product Friendly
🖥 В новой статье на Хабре делимся мыслями нашего разработчика Мурата Насирова о том, как создать federated plugin для Flutter-проекта. Что это такое?
Представьте: у вас кроссплатформенное приложение и вы создаете плагин для работы c bluetooth. Скорее всего, вы работаете как с Android, так и с iOS. Поэтому создаете четыре пакета, где реализация каждого независима друг от друга:
1) flutter_bluetooth;
2) flutter_bluetooth_android;
3) flutter_bluetooth_ios;
4) flutter_bluetooth_platform_interface.
Плагины federated plugins можно создавать сразу для всех доступных платформ, а сегрегация зон ответственности не замедляет разработку. Интересно?
#flutter #howto #инструкция
Забыл в опросе указать, что не нравиться все варианта 🙈. Пишите в коментах свой вариант, а лучше ссылку на dartpad
Всем привет. Так как бываю на очень много разных проектов, и вижу разные реализации подписки блок на блок. В последнее время задаюсь вопросом, про то как лучше подписывать блок на блок. Например, необходимо отслеживать в блоке профиля состояние изменения магазина, авторизации и так далее. И реагировать при изменении определённым образом.
Для примера написал приложение, где есть блок счетчик и есть блок слушатель, который просто дублирует значение счетчика.
Есть несколько вариантов:
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
Как думаете, какой вариант самый лучший? Хотелось бы послушать ваше мнение.
Всем привет. Так как бываю на очень много разных проектов, и вижу разные реализации подписки блок на блок. В последнее время задаюсь вопросом, про то как лучше подписывать блок на блок. Например, необходимо отслеживать в блоке профиля состояние изменения магазина, авторизации и так далее. И реагировать при изменении определённым образом.
Для примера написал приложение, где есть блок счетчик и есть блок слушатель, который просто дублирует значение счетчика.
Есть несколько вариантов:
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
Как думаете, какой вариант самый лучший? Хотелось бы послушать ваше мнение.
Кому интересно глянуть на движки Flutter Аврора, можно здесь
https://gitlab.com/omprussia/flutter/flutter-engine
Flutter Engine — это портативная среда выполнения для приложений Flutter. Она реализует основные библиотеки Flutter, включая анимацию и графику, файловый и сетевой ввод-вывод, поддержку специальных возможностей, архитектуру плагинов, а также среду выполнения Dart.
Repost from Код Воробья для iOS разработчиков
Вышел 💻 Xcode 15.1:
– 🧩 @IBDesignable официально деприкейтед
– Максросы можно использовать в Playground
– Для ☁️ Xcode Cloud в условия добавили старт только вручную (см. скриншот)
RC совпадает с релизом — если скачивали, обновлять не нужно. Писать под 🥽 visionOS через бету 💻 15.2.
Repost from Vitaliy Zarubin | @keygenqt
#see Стоит посмотреть:
👉 Представление Аврора 5.0.
👉 Новый интерфейс.
👉 Будущее ОС Аврора 4.0.
👉 Новая архитектура aarch64.
👉 Новые инструменты - Flutter.
https://youtu.be/Xxt1xsMxlG8
Repost from Mobile Development by AppTractor
Опубликованы SDK, для которых Apple будет требовать подпись
Если ваше приложение использует эти сторонние библиотеки, то с весны 2024 года вы должны будете включать их в новый манифест конфиденциальности.
1. На WWDC23 компания Apple представила новые декларации конфиденциальности и подписи для SDK, чтобы помочь повысить осведомленность о том, как сторонние SDK используют данные.
2. В файлах манифеста конфиденциальности в едином стандартном формате описываются методы обеспечения конфиденциальности для стороннего кода в приложении.
3. Apple на прошлой неделе перечислила SDK, для которых надо будет делать privacy manifest и подпись. Среди самых заметных и популярных - Alamofire, Charts, Cordova, масса библиотек FB, практически весь Firebase, Flutter, OneSignal, Protobuf, RxSwift, sqflite, UnityFramework.
И что: что-то из разряда объяснения использования
UserDefaults, бессмысленное и беспощадное 😤