Новые пакеты за неделю 📦
color_tones - Создавайте динамические и последовательные цветовые палитры с помощью простых тоновых значений. Пакет позволяет генерировать более светлые и темные вариации базового цвета. 👍 Лайки: 9, 📥 Скачиваний: 89
https://pub.dev/packages/color_tones
form_shield - Облегчите процесс валидации форм в ваших Flutter-приложениях! Эта библиотека предлагает простой и мощный способ определения и применения логики валидации к полям форм. 👉 13 лайков, 📦 112 скачиваний
https://pub.dev/packages/form_shield
scandit_label_capture - Обнаружение и сканирование этикеток стало проще! Пакет позволяет легко интегрировать функцию захвата этикеток в ваши приложения. 👍 Лайки: 1, 📥 Скачиваний: 330
https://pub.dev/packages/scandit_label_capture
ai_chat_plus - Обновление для Flutter-разработчиков! 🚀 Пакет теперь доступен для интеграции чата с ИИ от OpenAI, Google Gemini и Claude AI. 👍 Лайки: 1, 📥 Скачиваний: 365
https://pub.dev/packages/ai_chat_plus
syncable - Обновление для Flutter-разработчиков! Пакет позволяет синхронизировать данные между несколькими устройствами в режиме офлайн-первый. 👍 Лайки: 8, 📥 Скачиваний: 91
https://pub.dev/packages/syncable
dartstream - Расширьте возможности Dart! Пакет предлагает гибкость при построении приложений и помогает избежать конфликтов имен. 👍 Лайки: 1, 📥 Скачиваний: 424
https://pub.dev/packages/dartstream
#color_tones #form_shield #scandit_label_capture #ai_chat_plus #syncable #dartstream #flutter #dart #pubdev #flutterpulse
color_tones - Создавайте динамические и последовательные цветовые палитры с помощью простых тоновых значений. Пакет позволяет генерировать более светлые и темные вариации базового цвета. 👍 Лайки: 9, 📥 Скачиваний: 89
https://pub.dev/packages/color_tones
form_shield - Облегчите процесс валидации форм в ваших Flutter-приложениях! Эта библиотека предлагает простой и мощный способ определения и применения логики валидации к полям форм. 👉 13 лайков, 📦 112 скачиваний
https://pub.dev/packages/form_shield
scandit_label_capture - Обнаружение и сканирование этикеток стало проще! Пакет позволяет легко интегрировать функцию захвата этикеток в ваши приложения. 👍 Лайки: 1, 📥 Скачиваний: 330
https://pub.dev/packages/scandit_label_capture
ai_chat_plus - Обновление для Flutter-разработчиков! 🚀 Пакет теперь доступен для интеграции чата с ИИ от OpenAI, Google Gemini и Claude AI. 👍 Лайки: 1, 📥 Скачиваний: 365
https://pub.dev/packages/ai_chat_plus
syncable - Обновление для Flutter-разработчиков! Пакет позволяет синхронизировать данные между несколькими устройствами в режиме офлайн-первый. 👍 Лайки: 8, 📥 Скачиваний: 91
https://pub.dev/packages/syncable
dartstream - Расширьте возможности Dart! Пакет предлагает гибкость при построении приложений и помогает избежать конфликтов имен. 👍 Лайки: 1, 📥 Скачиваний: 424
https://pub.dev/packages/dartstream
#color_tones #form_shield #scandit_label_capture #ai_chat_plus #syncable #dartstream #flutter #dart #pubdev #flutterpulse
В ожидании Google I/O 2025 🚀💻!
В прошлом году на Google I/O 2024 было много интересного 🤩:
- AI и ее возможности 🤖
- Android и его обновления 📱
- Cloud и его сервисы ☁️
- Web и его инновации 🌐
- Material 3 и его дизайн 🎨
- Flutter и Dart, которые как всегда на высоте 🚀💻!
И, конечно, Flutter с его невероятными возможностями и Dart, который делает разработку еще проще и интереснее 🤩!
Узнайте о последних новинках и трендах в мире технологий и не пропустите Google I/O 2025!
#flutter #dart #flutterpulse #GoogleIO #AI #Android #Cloud #Web #Material3 🚀💻🤖📱☁️🌐🎨
В прошлом году на Google I/O 2024 было много интересного 🤩:
- AI и ее возможности 🤖
- Android и его обновления 📱
- Cloud и его сервисы ☁️
- Web и его инновации 🌐
- Material 3 и его дизайн 🎨
- Flutter и Dart, которые как всегда на высоте 🚀💻!
И, конечно, Flutter с его невероятными возможностями и Dart, который делает разработку еще проще и интереснее 🤩!
Узнайте о последних новинках и трендах в мире технологий и не пропустите Google I/O 2025!
#flutter #dart #flutterpulse #GoogleIO #AI #Android #Cloud #Web #Material3 🚀💻🤖📱☁️🌐🎨
Использование ИИ в вашем приложении с помощью Gemini
Привет, разработчики Flutter! 🤖💻 Сегодня мы расскажем, как добавить Gemini в ваше приложение с помощью Firebase Functions безопасным способом 🔒.
Почему не стоит использовать плагин flutter_gemini?
Из соображений безопасности я настоятельно предпочитаю не раскрывать свой ключ API Gemini в приложении 🔑.
Шаги по интеграции Gemini с Firebase:
1. Создайте новый проект Firebase с помощью команды
- Установите следующие пакеты:
- @genkit-ai/ai
- @genkit-ai/core
- @genkit-ai/dotprompt
- @genkit-ai/firebase
- @genkit-ai/flow
- @genkit-ai/googleai
- zod
2. Установите genkit глобально:
3. Инициализируйте gemini, используя
Добавьте ключ API в файл
Разверните эту функцию на Firebase с помощью команды
Вызов функции из Flutter:
Оцените нашу новую рубрику и оставьте свои отзывы! 😊👍
Все подобные новости можно найти по хэштегу #FlutterPulseTips.
#flutter #dart #flutterpulse #FlutterPulseTips #Firebase #Gemini #AI #FlutterTips #MobileDev #AppDev
Привет, разработчики Flutter! 🤖💻 Сегодня мы расскажем, как добавить Gemini в ваше приложение с помощью Firebase Functions безопасным способом 🔒.
Почему не стоит использовать плагин flutter_gemini?
Из соображений безопасности я настоятельно предпочитаю не раскрывать свой ключ API Gemini в приложении 🔑.
Шаги по интеграции Gemini с Firebase:
1. Создайте новый проект Firebase с помощью команды
firebase init genkit
или установите необходимые зависимости 📦.- Установите следующие пакеты:
- @genkit-ai/ai
- @genkit-ai/core
- @genkit-ai/dotprompt
- @genkit-ai/firebase
- @genkit-ai/flow
- @genkit-ai/googleai
- zod
2. Установите genkit глобально:
npm install -g genkit
🌐.3. Инициализируйте gemini, используя
configureGenkit
🔧.
import { initializeApp } from "firebase/app";
import { defineString } from "firebase-functions/params";
import { configureGenkit } from '@genkit-ai/core';
import { firebase } from '@genkit-ai/firebase';
defineString('GOOGLE_GENAI_API_KEY');
const firebaseApp = initializeApp();
configureGenkit({
plugins: [
firebase(),
googleAI({ apiKey: defineString('GOOGLE_GENAI_API_KEY') }),
],
// ...
enableTracingAndMetrics: true,
});
Добавьте ключ API в файл
.env
и не забудьте удалить .env
из .gitignore
, иначе Firebase не сможет его использовать 🚫.
export const suggestionFlow = onFlow({
name: "suggestionFlow",
httpsOptions: { cors: true },
region: "europe-west1",
inputSchema: z.object({ uid: z.string(), query: z.string(), language: z.string() }),
outputSchema: z.string(),
authPolicy: (auth, input) => {
// Проверка аутентификации пользователя
if (auth.uid != input.uid) {
throw new Error("You can only access your own data");
}
// Проверка поддерживаемого языка
if (input.language != "fr" && input.language != "en") {
throw new Error("Only French and English are supported for now");
}
// Разрешить доступ только аутентифицированным пользователям
return !!auth.uid;
},
}, async (input) => {
const exercicesContext = JSON.stringify(exercices);
const userLanguage = input.language;
const prompt = `You are an AI assistant that helps users with XXX. You will speak in the user's language: $userLanguage.
You will answer with the JSON format below:
{"days": [{"day": number, "steps": {...}, "description": string}]}
Here is the user query: ${input.query}`;
const llmResponse = await generate({
model: gemini15Flash,
prompt,
config: {
temperature: 1,
maxOutputTokens: 3000,
},
});
return llmResponse.text();
});
Разверните эту функцию на Firebase с помощью команды
firebase deploy --only functions
🚀.Вызов функции из Flutter:
Future<String> fetchStretchingSuggestionFlow(
String uid,
String query,
String userLanguage,
) async {
final callable = FirebaseFunctions.instance.httpsCallable('suggestionFlow');
final result = await callable.call<String>({
'uid': uid,
'query': query,
'language': userLanguage,
});
final data = (await decode(result.data)) as Map<String, dynamic>;
return AIexercice.fromJson(data);
}
Оцените нашу новую рубрику и оставьте свои отзывы! 😊👍
Все подобные новости можно найти по хэштегу #FlutterPulseTips.
#flutter #dart #flutterpulse #FlutterPulseTips #Firebase #Gemini #AI #FlutterTips #MobileDev #AppDev