Flutter Pulse
432 subscribers
283 photos
579 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
Новые пакеты за неделю 📦

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 🚀💻🤖📱☁️🌐🎨
Использование ИИ в вашем приложении с помощью Gemini

Привет, разработчики 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