(О выполнении ниже)
Тестовое задание: Разработать MAUI (Либо Xamarin.Forms) мобильное приложение для поиска и отображения информации о кинофильмах. Приложение должно позволять искать кинофильмы по одному или нескольким критериям и отображать информацию по выбранному кинофильму. Функциональные требования
• Каждый кинофильм должен быть связан с одним или несколькими актерами. Поиск фильма должен осуществляться по названию, жанру или по имени одного из актеров. Результат поиска необходимо отображать на той же странице ниже поисковой формы.
• Приложение должно быть написано на MAUI (Либо Xamarin.Forms) под две платформы: iOS и Android
• Использовать паттерн MVVM либо производные от него.
• Данные необходимо хранить в локальной SQLite базе данных.
• Использование Entity Framework в качестве ORM будет плюсом, но не является обязательным.
• Код должен быть написан в едином стиле и содержать минимальные комментарии.
• Наличие тестов будет плюсом.
• Наличие документации по описанию функционала и порядку развертывания.
В работе использовались MAUI MVVM SQLite. Из доп пакетов Entity Framework Core, Entity Framework Core SQLite, SQlite, ToolKit.
Прилагается архив со всеми выходными данными. MAUI кроссплатформа данное приложение разработано на Android и Windows, предположительно и на iOS должно будет запустится.
Сначала разбор используемой базы данных Films:
Прилагается sql файл, но с EF Core база данных будет создаваться на устройстве автоматически по расположению FileSystem.AppDataDirectory. Поиск работает по 3 критериям фильм, жанр и актер.
Функционал:
• Кнопка "Загрузить базу" по нажатию создает: базу данных Films, таблицы и данные для этих таблиц.
• Первое поле ввода фильтрует фильмы по критерию название фильма (без учета регистра)
• Расширитель открывает возможность поиска по нескольким критериям
• Сборщик содержит все жанры фильмов, можно выбрать нужный жанр (у каждого фильма 1+ жанров)
• Второе поле ввода фильтрует по имени актера (с учетом регистра, каждый фильм 3+ актера)
• Нажатие на фильм открывает страницу с подробной информацией
.
Чтобы посмотреть актеров/жанры фильма нужно нажать на конкретный фильм в списке
.
Скачать и установить Films.apk
Пример использования на физическом android 13
- Вынести бизнес-логику в отдельный слой (создал слой Service)
- Вью-модель не должна знать о бизнес-сущностях и существовании дата-контекста (Дата контекст вынес в Service, бизнес сущности разделил с использованием DTOs (Data Transfer Object))
- View не должны знать о слоях ниже вью-модели (нужно будет исправить с помощью ViewModel)
- Отдельно предоставить SQL-запрос поиска, в само приложение не встраивать (Сделал так же в приложении, но сделал отдельный sql запрос)