#27 AvaliniaUI - Как создать приложение для флэш-карт с использованием C# и Gemini API ( MVVM )
00:07 Введение • Создание кроссплатформенного генератора флэш-карт с использованием ИИ. • Использование пользовательского интерфейса Avalonia и API Gemini. • Генерация структурированного JSON-кода для учебных карточек. 00:48 Структура проекта • Применение шаблона MVVM для разделения проблем. • Представление, модель, модель представления и сервисы. • API Gemini как внешний источник данных. 01:28 Создание проекта • Выбор шаблона Avalonia .NET MVVM в Visual Studio. • Настройка названия проекта и фреймворка .NET 8. • Установка инструментария MVVM Community Toolkit. 02:09 Организация кода • Создание папок для сервисов и конвертеров. • Добавление класса Flashcard для модели данных. 03:11 Модель данных • Определение класса Flashcard с лицевой и оборотной сторонами. • Атрибут JSON Property Names для сопоставления имён ключей JSON с именами свойств на C#. • Обработка структуры верхнего уровня для синтаксического анализа JSON. 04:49 Сервис Gemini • Создание класса GeminiService для взаимодействия с API Gemini. • Настройка запросов, определение схемы JSON и обработка ответа. • Использование ключа API и базового URL. 06:16 Взаимодействие с API • Определение асинхронного метода для генерации карточек. • Создание полезной нагрузки с пользовательской темой. • Сериализация объекта полезной нагрузки в JSON и отправка запроса. 08:33 Обработка ответа • Асинхронное считывание тела JSON-ответа. • Извлечение сгенерированного текста из ответа. • Десериализация JSON в объект списка флэш-карт. 09:25 Возврат результата • Проверка массива карточек на null или пустоту. • Возврат пустого списка или списка карточек. 10:20 Создание ViewModel • Переименование и создание новой ViewModel. • Вставка кода для ViewModel. 10:52 Устранение ошибок в XAML • Удаление окна и контекста данных для устранения ошибок. • Переименование элемента для исправления ошибки. 11:51 Роль главной ViewModel • Главная ViewModel управляет состоянием приложения и взаимодействием с пользователем. • Использует базу модели представления и команду ретрансляции для обновления интерфейса. • Команда ретрансляции подключает кнопку Generate к методу C. 12:51 Логика управления состоянием приложения • Управление включением и выключением кнопки Generate. • Привязка ввода темы к кнопке Create. • Логический флаг isGenerating для отображения индикатора загрузки. 13:51 Создание флэш-карты • Метод создания флэш-карты блокирует интерфейс, очищает старые карты и вызывает сервисную службу. • Обработка ошибок и добавление новой карты в список. • Возвращение значения isGenerating в false и повторное включение кнопки. 15:16 Настройка пользовательского интерфейса • Добавление свойств окна: значок, заголовок, ширина, высота, прозрачность. • Настройка контекста данных и ресурсов Windows. • Создание стилей для элементов управления. 17:38 Добавление элементов интерфейса • Создание рамки с фоном и радиусом угла. • Добавление сетки с заголовками и строкой ввода. • Привязка текстового поля в двусторонний режим. 19:23 Исправление ошибок конвертера • Добавление класса bool to string converter для преобразования логических значений. • Раскомментирование и добавление конвертера в ресурсы Windows. • Перестройка приложения для исправления ошибок. 21:35 Добавление индикатора загрузки • Добавление панели стека для отображения индикатора загрузки и индикаторов ошибок. • Первое текстовое поле для отображения ошибки, второе — для индикатора выполнения. 22:07 Привязка элементов интерфейса • Привязываем первое текстовое поле к теме ввода, которая будет отображаться в модели представления. • Функция создания удобства привязана к кнопке и зависит от команды ретрансляции. • Сообщение об ошибке привязано к обработчику события изменения свойства. • Индикатор выполнения привязан к процессу генерации и автоматически обновляется. 23:06 Флэш-карта по умолчанию • Флэш-карта по умолчанию содержит текст «Добро пожаловать в генератор флэш-карт с искусственным интеллектом» на лицевой стороне и «Введите тему» на обратной. • Шаблоны данных и контроллеры элементов определяют внешний вид флэш-карт. • Главное окно загружено, нужно заменить API-ключ и добавить функцию перетаскивания окна. 24:03 Функция перетаскивания окна • Добавляем метод перетаскивания окна через нажатие указателя мыши. • Можно перетаскивать окно целиком или определённые области, например, панель стека. • Перестраиваем решение и запускаем приложение. 25:00 Работа приложения • Приложение решает проблемы реального мира с помощью структурированного искусственного интеллекта. • Кнопка «Сгенерировать» включается при вводе данных благодаря команде ретрансляции. • Команда ретрансляции запускает процесс генерации, индикатор выполнения обновляется. 25:58 Обновление свойств и завершение • Обновляются свойства лицевой и оборотной сторон флэш-карты. • Пять свойств и пять карточек помогают понять структуры данных. • Ссылки на код проекта в описании видео. • Возможность использования кода для создания WPF-приложений. 26:55 Заключение
00:07 Введение • Создание кроссплатформенного генератора флэш-карт с использованием ИИ. • Использование пользовательского интерфейса Avalonia и API Gemini. • Генерация структурированного JSON-кода для учебных карточек. 00:48 Структура проекта • Применение шаблона MVVM для разделения проблем. • Представление, модель, модель представления и сервисы. • API Gemini как внешний источник данных. 01:28 Создание проекта • Выбор шаблона Avalonia .NET MVVM в Visual Studio. • Настройка названия проекта и фреймворка .NET 8. • Установка инструментария MVVM Community Toolkit. 02:09 Организация кода • Создание папок для сервисов и конвертеров. • Добавление класса Flashcard для модели данных. 03:11 Модель данных • Определение класса Flashcard с лицевой и оборотной сторонами. • Атрибут JSON Property Names для сопоставления имён ключей JSON с именами свойств на C#. • Обработка структуры верхнего уровня для синтаксического анализа JSON. 04:49 Сервис Gemini • Создание класса GeminiService для взаимодействия с API Gemini. • Настройка запросов, определение схемы JSON и обработка ответа. • Использование ключа API и базового URL. 06:16 Взаимодействие с API • Определение асинхронного метода для генерации карточек. • Создание полезной нагрузки с пользовательской темой. • Сериализация объекта полезной нагрузки в JSON и отправка запроса. 08:33 Обработка ответа • Асинхронное считывание тела JSON-ответа. • Извлечение сгенерированного текста из ответа. • Десериализация JSON в объект списка флэш-карт. 09:25 Возврат результата • Проверка массива карточек на null или пустоту. • Возврат пустого списка или списка карточек. 10:20 Создание ViewModel • Переименование и создание новой ViewModel. • Вставка кода для ViewModel. 10:52 Устранение ошибок в XAML • Удаление окна и контекста данных для устранения ошибок. • Переименование элемента для исправления ошибки. 11:51 Роль главной ViewModel • Главная ViewModel управляет состоянием приложения и взаимодействием с пользователем. • Использует базу модели представления и команду ретрансляции для обновления интерфейса. • Команда ретрансляции подключает кнопку Generate к методу C. 12:51 Логика управления состоянием приложения • Управление включением и выключением кнопки Generate. • Привязка ввода темы к кнопке Create. • Логический флаг isGenerating для отображения индикатора загрузки. 13:51 Создание флэш-карты • Метод создания флэш-карты блокирует интерфейс, очищает старые карты и вызывает сервисную службу. • Обработка ошибок и добавление новой карты в список. • Возвращение значения isGenerating в false и повторное включение кнопки. 15:16 Настройка пользовательского интерфейса • Добавление свойств окна: значок, заголовок, ширина, высота, прозрачность. • Настройка контекста данных и ресурсов Windows. • Создание стилей для элементов управления. 17:38 Добавление элементов интерфейса • Создание рамки с фоном и радиусом угла. • Добавление сетки с заголовками и строкой ввода. • Привязка текстового поля в двусторонний режим. 19:23 Исправление ошибок конвертера • Добавление класса bool to string converter для преобразования логических значений. • Раскомментирование и добавление конвертера в ресурсы Windows. • Перестройка приложения для исправления ошибок. 21:35 Добавление индикатора загрузки • Добавление панели стека для отображения индикатора загрузки и индикаторов ошибок. • Первое текстовое поле для отображения ошибки, второе — для индикатора выполнения. 22:07 Привязка элементов интерфейса • Привязываем первое текстовое поле к теме ввода, которая будет отображаться в модели представления. • Функция создания удобства привязана к кнопке и зависит от команды ретрансляции. • Сообщение об ошибке привязано к обработчику события изменения свойства. • Индикатор выполнения привязан к процессу генерации и автоматически обновляется. 23:06 Флэш-карта по умолчанию • Флэш-карта по умолчанию содержит текст «Добро пожаловать в генератор флэш-карт с искусственным интеллектом» на лицевой стороне и «Введите тему» на обратной. • Шаблоны данных и контроллеры элементов определяют внешний вид флэш-карт. • Главное окно загружено, нужно заменить API-ключ и добавить функцию перетаскивания окна. 24:03 Функция перетаскивания окна • Добавляем метод перетаскивания окна через нажатие указателя мыши. • Можно перетаскивать окно целиком или определённые области, например, панель стека. • Перестраиваем решение и запускаем приложение. 25:00 Работа приложения • Приложение решает проблемы реального мира с помощью структурированного искусственного интеллекта. • Кнопка «Сгенерировать» включается при вводе данных благодаря команде ретрансляции. • Команда ретрансляции запускает процесс генерации, индикатор выполнения обновляется. 25:58 Обновление свойств и завершение • Обновляются свойства лицевой и оборотной сторон флэш-карты. • Пять свойств и пять карточек помогают понять структуры данных. • Ссылки на код проекта в описании видео. • Возможность использования кода для создания WPF-приложений. 26:55 Заключение




