🤖Создаем своего клиента для Gemini без бэкенда
Помните, в версии Flutter 3.19 появился SDK для работы с генеративным ИИ? Наш Tech Lead Юрий Петров разобрался, какие горизонты этот инструмент открывает перед разработчиками.
Вместе с ним на примере простого Flutter-проекта узнаем:
◾️Как получить API-ключ
◾️Как сгенерировать текст
◾️Как настроить конфигурацию модели
◾️Как гибко отфильтровать контент
◾️Как настроить httpClient
Все подробности — уже на Хабре!
#howto
Помните, в версии Flutter 3.19 появился SDK для работы с генеративным ИИ? Наш Tech Lead Юрий Петров разобрался, какие горизонты этот инструмент открывает перед разработчиками.
Вместе с ним на примере простого Flutter-проекта узнаем:
◾️Как получить API-ключ
◾️Как сгенерировать текст
◾️Как настроить конфигурацию модели
◾️Как гибко отфильтровать контент
◾️Как настроить httpClient
Все подробности — уже на Хабре!
#howto
Хабр
Разбираем генеративный SDK от Google — google_generative_ai. Часть 1
Привет, Хабр! Меня зовут Юрий Петров, я автор ютуб-канала «Мобильный разработчик» и Flutter Tech Lead в компании Friflex . Мы разрабатываем мобильные приложения для бизнеса и специализируемся на...
❤4🔥2
💫 Коварный баг назван в честь принципа неопределенности Гейзенберга из квантовой механики. Этот принцип гласит: невозможно одновременно точно определить положение и импульс микроскопической частицы.
Дело в том, что само наблюдение за квантовой частицей меняет ее состояние. То же самое происходит с гейзенбагом. Стоит попытаться отследить его в коде, он меняет свое поведение или исчезает. Например, сбой может проявляться только через определенное время после запуска программы или в конкретной операционной системе.
Бороться с гейзенбагами сложно. Тут важно быть упорным и настойчивым:
◾️Продолжайте тестировать. Чем больше тестов вы напишете, тем скорее обнаружите гейзенбаг.
◾️Используйте инструменты отладки.
◾️Ведите журнал своих действий, чтобы заметить изменения в поведении ошибки.
◾️Попытайтесь воспроизвести условия, в которых ошибка проявляется, и изучить ее подробнее.
Помните, вы не одиноки — с гейзенбагами сталкиваются многие программисты 🫶
#наайтишном
Дело в том, что само наблюдение за квантовой частицей меняет ее состояние. То же самое происходит с гейзенбагом. Стоит попытаться отследить его в коде, он меняет свое поведение или исчезает. Например, сбой может проявляться только через определенное время после запуска программы или в конкретной операционной системе.
Бороться с гейзенбагами сложно. Тут важно быть упорным и настойчивым:
◾️Продолжайте тестировать. Чем больше тестов вы напишете, тем скорее обнаружите гейзенбаг.
◾️Используйте инструменты отладки.
◾️Ведите журнал своих действий, чтобы заметить изменения в поведении ошибки.
◾️Попытайтесь воспроизвести условия, в которых ошибка проявляется, и изучить ее подробнее.
Помните, вы не одиноки — с гейзенбагами сталкиваются многие программисты 🫶
#наайтишном
❤4👍2
Flutter появился в 2015 году как секретный проект Google под названием Sky. С тех пор вышло множество релизов и он стал настоящим взрослым фреймворком.
Команда Friflex продвигает разработку на Flutter, следит за его развитием и каждый год проводит конференцию о кроссплатформенной разработке — CrossConf @crossconf. Собрали самые важные моменты из истории фреймворка на карточках и подробнее рассказали о ней в нашем блоге. Приятного чтения🌟
Команда Friflex продвигает разработку на Flutter, следит за его развитием и каждый год проводит конференцию о кроссплатформенной разработке — CrossConf @crossconf. Собрали самые важные моменты из истории фреймворка на карточках и подробнее рассказали о ней в нашем блоге. Приятного чтения🌟
❤3
🧑🤝🧑 Если вы думаете, что копировать — это просто, вы не занимались глубоким копированием. Оно помогает создать точную копию объекта вместе со вложенными документами. Получается объект-близнец, совершенно самостоятельный и независимый.
Глубокое копирование отлично подходит:
◾️Чтобы изменения одного объекта не влияли на другой
◾️Чтобы свободно работать с объектом и не бояться испортить оригинал
◾️Чтобы клонировать многоуровневые объекты
Можно создать объект-близнец вручную или с помощью библиотек. Например, в Dart глубокое копирование помогают выполнить copyPackage, deep_copy или json_serializable.
#наайтишном
Глубокое копирование отлично подходит:
◾️Чтобы изменения одного объекта не влияли на другой
◾️Чтобы свободно работать с объектом и не бояться испортить оригинал
◾️Чтобы клонировать многоуровневые объекты
Можно создать объект-близнец вручную или с помощью библиотек. Например, в Dart глубокое копирование помогают выполнить copyPackage, deep_copy или json_serializable.
#наайтишном
👍3🔥1
⚡️Релиз плагина Flutter&Dart для VSCode 3.88.0: что нового
🟣 Во Flutter список эмуляторов больше не содержит выходных данных журнала из Android SDK
🟣 В редакторе перезапуск сервера анализа Dart больше не приводит к дублированию записей Dart DevTools в области состояния языка
🟣 В отладчике исправлена регрессия, которая приводила к повторным глобальным ошибкам («Не удается найти библиотеку»)
🟣 В DevTools устранена проблема, из-за которой боковая панель Flutter не загружалась в предварительных версиях
Наш Flutter Tech Lead Юрий Петров подготовил перевод официального релиза. О разработке на Flutter читайте также в тг-канале Юрия Мобильный разработчик.
Наш Flutter Tech Lead Юрий Петров подготовил перевод официального релиза. О разработке на Flutter читайте также в тг-канале Юрия Мобильный разработчик.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Вышла новая версия плагина Flutter & Dart для VSCode 3.88.0
Что нового во Flutter #5062 : Ссылки кода "Открыть онлайн интерактивные образцы" больше не ведут к ошибке 404 для миксинов и типов расширений. #5052 : Некоторые эмуляторы не содержали выходных данных...
🔥4
🧮 Каррирование пришло в разработку из комбинаторной логики. Понятие сформулировал американский математик Хаскарл Карри. Он показал, что функцию можно представить в виде одного аргумента, который возвращает функцию, которая принимает другой аргумент.
Как это работает в программировании? Представим, что у нас есть функция
Теперь double — это функция, которая принимает один аргумент и удваивает его. Мы можем использовать ее так:
Результат: компактный код и универсальные функции, которые можно легко комбинировать.
#наайтишном
Как это работает в программировании? Представим, что у нас есть функция
multiply, которая умножает два числа. С помощью каррирования мы можем создать из нее новую — она будет умножать свой аргумент на определенное число. Например, double.
Function(int) double = (int x) => multiply(x, 2);
Теперь double — это функция, которая принимает один аргумент и удваивает его. Мы можем использовать ее так:
print(double(5)); // Выведет: 10
Результат: компактный код и универсальные функции, которые можно легко комбинировать.
#наайтишном
👍2❤1
На GitHub можно самостоятельно после каждого пул-реквеста заносить файл CHANGELOG.MD в основную ветку. А можно автоматизировать этот процесс.
Автоматизация позволит быстро понимать, какие изменения появились в новых версиях проекта, и не погружаться в исходный код.
Как создавать автоматические коммиты, читайте в статье Flutter Tech Lead в Friflex Юрия Петрова на Хабре.
#howto #инструкция
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как автоматизировать заполнение changelog через GitHub Action
Привет, Хабр! Меня зовут Юрий Петров, я автор Youtube-канала «Мобильный разработчик» и Flutter Tech Lead в компании Friflex . Мы разрабатываем мобильные приложения для бизнеса и специализируемся на...
🔥3
📹 Для тех, кто любит смотреть и слушать
Как создавать автоматические коммиты в GitHub, рассказал в новом видео Юрий Петров, Flutter Tech Lead Friflex и автор канала Мобильный разработчик. Из ролика вы узнаете:
✔️ Что такое библиотека git-cliff
✔️ Как настроить GitHub Action
✔️ Зачем нужны соглашения о коммитах
👀 Смотрите на YouTube-канале Friflex:
→ Как быстро добавить автоматическое заполнение changelog с помощью GitHub Action
И подписывайтесь, чтобы не пропустить новые видео 💜
#howto #инструкция
Как создавать автоматические коммиты в GitHub, рассказал в новом видео Юрий Петров, Flutter Tech Lead Friflex и автор канала Мобильный разработчик. Из ролика вы узнаете:
👀 Смотрите на YouTube-канале Friflex:
→ Как быстро добавить автоматическое заполнение changelog с помощью GitHub Action
И подписывайтесь, чтобы не пропустить новые видео 💜
#howto #инструкция
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Как быстро добавить автоматическое заполнение Changelog с помощью GitHub Action
В этом видео Юрий Петров, Flutter Tech Lead в Friflex и автор канала «Мобильный разработчик», рассказывает, как файл CHANGELOG.MD может заполняться автоматически.
Соглашение о коммитах: https://www.conventionalcommits.org/en/v1.0.0/
Библиотека: https://…
Соглашение о коммитах: https://www.conventionalcommits.org/en/v1.0.0/
Библиотека: https://…
❤4
👀 Термин «монада» пришел в программирование из философии. Лейбниц так называл первичные субстанции, которые, как он полагал, лежат в основе нашего мира.
В разработке монады обрабатывают действия и их последствия как единое целое. Это упрощает работу с побочными эффектами и асинхронностью.
Например,
Монады помогают делать код понятнее и лаконичнее. Используйте их, чтобы решать задачи с последовательным выполнением действий элегантно 🕺
#наайтишном
В разработке монады обрабатывают действия и их последствия как единое целое. Это упрощает работу с побочными эффектами и асинхронностью.
Например,
Future проводит вычисления, которые завершатся в будущем, и создает цепочку операций, зависящих от этих результатов.
Future<int> multiplyAsync(int a, int b) {
return Future.delayed(Duration(seconds: 1), () => a * b);
}
void main() {
multiplyAsync(5, 10).then((result) {
print("Результат: $result"); // Результат: 50
});
}
Монады помогают делать код понятнее и лаконичнее. Используйте их, чтобы решать задачи с последовательным выполнением действий элегантно 🕺
#наайтишном
❤5
Релиз Dart 3.4 🎉
🟣 В предварительной версии появился макрос JsonCodebale
🟣 Обновление для WebAssembly
🟣 Исправлены недостатки библиотеки dart:js_interop
🟣 Решено более 50% багов анализатора автодополнения кода
🟣 Из библиотеки dart:cli удалены неполные и противоречивые инструменты
🟣 Улучшено согласование анализа типов условных выражений
Подробнее читайте в переводе официального релиза, который подготовил наш Flutter Tech Lead Юрий Петров.
Подробнее читайте в переводе официального релиза, который подготовил наш Flutter Tech Lead Юрий Петров.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Вышел Dart 3.4
Вышла новая версия языка Dart — 3.4 . Появились обновления для WebAssembly и предварительная версия макроса JsonCodebale. Исправлено более 50% ошибок анализатора. Читайте первый перевод...
🔥6
⚡️Flutter 3.22: что нового
День богат на релизы — обновление Flutter!
🔹WebAssembly доступен в стабильной версии. Он улучшает производительность, делает анимацию и переходы более плавными
🔹Vulkan для Android оптимизирует эффекты размытия. Интерфейсы стали еще красивее
🔹Коварианты в 2D-API позволяют API автоматически обрабатывать преобразования типов данных
🔹Новый инструмент проверки глубоких ссылок поддерживает проверку веб-конфигурации для приложений на Android
Подробнее об обновлении фреймворка — в первом переводе официального релиза от нашего Flutter Tech Lead Юрия Петрова.
#flutter
День богат на релизы — обновление Flutter!
🔹WebAssembly доступен в стабильной версии. Он улучшает производительность, делает анимацию и переходы более плавными
🔹Vulkan для Android оптимизирует эффекты размытия. Интерфейсы стали еще красивее
🔹Коварианты в 2D-API позволяют API автоматически обрабатывать преобразования типов данных
🔹Новый инструмент проверки глубоких ссылок поддерживает проверку веб-конфигурации для приложений на Android
Подробнее об обновлении фреймворка — в первом переводе официального релиза от нашего Flutter Tech Lead Юрия Петрова.
#flutter
Хабр
Flutter 3.22: что нового
WebAssembly, улучшения рендеринга графики и дополнительные возможности для интеграции ИИ. Я, Юра Петров, Flutter Tech Lead в Friflex , делюсь первым переводом официального релиза Flutter 3.22 от...
🔥5
🤖 Выражение «искусственный интеллект» на презентации Google I/O произнесли более 100 раз. По этому случаю предлагаем разобраться, как обучаются GPT-модели. Это правда интересно.
До обучения GPT-модель похожа на огромную пустую библиотеку. В ней есть множество полок (слоев) и мест для книг (параметров), а самих книг — нет.
Чтобы заполнить пустые места, модель пользуется механизмами внимания.
Самовнимание помогает ей взвесить каждое слово и решить, насколько оно важно именно в этот момент. Многоголовое внимание или multi-head attention позволяет каждому слою нейросети смотреть на предложение по-своему.
Попробовали систематизировать, что мы знаем об обучении GPT в нашем блоге на Хабре.
#AI
До обучения GPT-модель похожа на огромную пустую библиотеку. В ней есть множество полок (слоев) и мест для книг (параметров), а самих книг — нет.
Чтобы заполнить пустые места, модель пользуется механизмами внимания.
Самовнимание помогает ей взвесить каждое слово и решить, насколько оно важно именно в этот момент. Многоголовое внимание или multi-head attention позволяет каждому слою нейросети смотреть на предложение по-своему.
Попробовали систематизировать, что мы знаем об обучении GPT в нашем блоге на Хабре.
#AI
❤4