Файл: Разработка приложений для мобильных устройств (C#, Java) с использованием.pdf
Добавлен: 28.03.2023
Просмотров: 4773
Скачиваний: 130
СОДЕРЖАНИЕ
Глава 1 Изучение предметной области
1.1 Описание разрабатываемого приложения
1.2 Моделирование разрабатываемого приложения
1.2.1 Моделирование приложения с использованием UML
1.2.2 Модель сценариев использования
1.3 Анализ существующих приложений для составления списка покупок
1.4 Обзор и обоснование выбора инструментария для разработки приложения
1.5 Обоснование необходимости разработки приложения
Глава 2. Реализация мобильного приложения
2.1 Сбор данных для создания базы данных
2.3 Основные функции программы
2.3.1. Предоставление списка рецептов и выбор рецепта для составления списка покупок
2.3.2. Добавление имеющихся продуктов
2.3.3. Составление списка покупок
2.4.1. Распознавание по виду продуктов
2.4.2. Распознавание по тексту на продукте
Введение
В настоящее время мобильные приложения настолько распространены, что можно найти подходящее под любые задачи и цели. Люди мигрировали с компьютеров на мобильные устройства, и как результат, мобильные приложения стали важной частью нашей жизни. Соответственно все больше людей обращаются к мобильным приложениям не только для решения задач бизнеса, но также и для решения ежедневных вопросов. Поэтому актуальность темы разработки мобильных приложений высока.
На смартфон часто перекладываются вопросы получения информации о том, как сделать ремонт, как решить тот или иной бытовой вопрос, но также смартфон используют и для решения вопросов питания.
Данная работа направлена на разработку мобильного приложения, которое упростит такую повседневную обязанность, как составление списка покупок продуктов. Отличительной особенностью системы является интеграция с книгой рецептов и распознавание уже имеющихся продуктов различными способами.
Составление списка покупок таким образом поможет:
- Подбирать продукты для определённых рецептов;
- Удобно и интуитивно определять, какие продукты уже есть в наличии, используя функции приложения для распознавания продуктов
Предмет исследования – интеграция составления списка покупок с электронной книгой рецептов и интеллектуальным распознаванием имеющихся продуктов.
Целью данной работы является разработки мобильного приложения для операционной системы Android, которое составляет список покупок на основе выбранных рецептов и имеющихся продуктов.
Для достижения поставленной цели необходимо решить следующие задачи:
- Эмпирический анализ аналогичных приложений, связанных с составлением списка покупок
- Разработка архитектуры приложения и базы данных для хранения информации о рецептах и продуктах
- Разработка эффективной схемы взаимодействия пользователя с интерфейсом мобильного приложения
Глава 1 Изучение предметной области
1.1 Описание разрабатываемого приложения
Мобильное приложение, разрабатываемое в текущей работе, должно реализовывать следующий сценарий. Сначала пользователь выбирает из списка рецептов тот, которой он хочет приготовить. При этом пользователь может использовать поиск для нахождения определённого рецепта, а также для каждого рецепта пользователь может просмотреть изображение готового блюда, инструкцию по приготовлению и список ингредиентов для рецепта. После выбора одного или нескольких рецептов, пользователь заполняет список имеющихся продуктов. Для этого пользователь приложения может как заполнить его вручную, так и использовать функцию распознавания продуктов. При использовании последней клиент приложения наводит камеру телефона на определенные части продукта в холодильнике, в зависимости от выбранного метода распознавания, и с помощью машинного обучения программа распознаете наименования продуктов. Распознавание продуктов может осуществляться по нескольким критериям: по виду продукта, по тексту на продукте, по штрих-коду продукта. В итоге приложение на базе распознанных запасов и рецептов составляет вам список покупок недостающего.
Основной упор приложения должен осуществляться на разработку функций распознавания продуктов и интеграции со списком рецептов, что поможет пользователю сэкономить время на составление списка ингредиентов того или иного рецепта. Если проследить динамику использования покупателями электронных списков покупок, начиная с 2011 года (Felix Heinrichs, 2011) и заканчивая 2018 годом (Brand New World: Exploring the Critical Issues Facing Today's Brands, 2018), то получаем что процент покупателей, которые используют такие приложения увеличился с 3% до 37%, что приводит к мысли о необходимости разработки подобного приложения.
1.2 Моделирование разрабатываемого приложения
1.2.1 Моделирование приложения с использованием UML
Так как проектирования приложения является важной частью разработки, то есть необходимость в разработке понятной модели приложения. Для этого используется унифицированный язык моделирования UML (Unified Modeling Language), являющийся системой обозначений, которую можно применять для объектно-ориентированного анализа и проектирования. Его можно использовать для визуализации, спецификации, конструирования и документирования программных систем. С использованием моделей UML можно посмотреть на разрабатываемое приложение с различных углов, что позволяет легче понять суть поставленной задачи и способы её реализации. В Приложении (Рис.1) текущей работы представлена полная диаграмма классов приложения. На ней представлены классы объектов исходного кода и их взаимосвязи. Данная диаграмма была построена автоматически с помощью плагина SimpleUML среды разработки Android Studio.
Для наглядного отображения взаимодействия объектов приложения в динамике используется диаграмма последовательностей.
Рис. 1. Диаграмма последовательностей приложения
1.2.2 Модель сценариев использования
Для описания логики взаимодействия клиента с приложением была составлена схема сценариев использования.
Рис. 2. Модель сценариев использования приложения
1.2.3 Даталогическая модель
Даталогическая модель – создание схемы базы данных на основе конкретной модели данных. Она отображает набор схем отношений, однако следует иметь в виду, что в связи с выбранной СУБД, в модели отсутствуют индексы и ограничения на размер данных.
Основными информационными объектами рассматриваемой системы являются объекты: «Рецепт», «Ингредиент», «Измерение», «Ингредиент рецепта». Для реализации этих объектов создаются таблицы, описания таблиц приведены в таблице 1, таблице 2, таблице 3 и таблице 4.
Таблица 1. Рецепт
Имя поля |
Тип данных |
Код рецепта |
Строка |
Наименование |
Строка |
Инструкция |
Строка |
Автор |
Строка |
Изображение |
Строка |
Таблица 2. Ингредиент
Имя поля |
Тип данных |
Код ингредиента |
Строка |
Название ингредиента |
Строка |
Таблица 3. Измерение
Имя поля |
Тип данных |
Код измерения |
Строка |
Название измерения |
Строка |
Таблица 4. Ингредиент и рецепт
Имя поля |
Тип данных |
Код рецепта |
Строка |
Код ингредиента |
Строка |
Код измерения |
Строка |
1.3 Анализ существующих приложений для составления списка покупок
Возможность составления списка покупок реализовано во множестве мобильных приложений и веб-сервисов. Однако не все такие приложения выполняют функцию распознавания имеющихся продуктов, а также интеграцию со списком рецептов. Рассмотрим функционал наиболее популярных приложений, доступных в Google Play Market.
Приложение «Список покупок – Купи Батон!» имеет более 1 миллиона скачиваний и высокий рейтинг. Данное приложение предоставляет возможность добавить продукты, используя автозаполнение. Затем кликом на продукт можно вычеркнуть его из списка. Особенностями данного предложения является то, что в нем отсутствует все лишнее, что является как его плюсом, так и минусом, так как нет возможности ориентироваться на конкретные рецепты блюд и на наличие продуктов в холодильнике.
Рис. 3. Интерфейс программы «Купи Батон»
Достоинства:
- Простой интерфейс
- Автоматическое предложение продуктов
Недостатки:
- Отсутствие интеграции с кулинарной книгой
- Нельзя добавить список уже имеющихся продуктов
- Наличие встроенной рекламы
Приложение “Bring!” является ещё более популярным приложением (около 5 млн. скачиваний) с удобным интерфейсом и возможностью создавать несколько списков продуктов для разных целей. В этом приложении есть возможность выбрать ингредиенты для конкретного рецепта, однако данный функционал оформлен в виде «идей» для покупок и клик на рецепт сопровождается переходом на сайт с рецептом.
Рис. 4. Интерфейс программы «Купи Батон»
Достоинства:
- Удобное представление продуктов в виде иконок
- Возможность иметь несколько списков покупок
Недостатки:
- Отсутствие встроенной кулинарной книги
- Отсутствие трекинга имеющихся продуктов
- Перегруженный список покупок
Приложение Yummly является скорее всего самым ярким представителем приложений для составления списка покупок, так как при наличии современного интерфейса приложение предоставляет большой список рецептов на выбор, систему рекомендаций рецептов в зависимости от выбранных ранее и необходимости соблюдать диету. Минусом данного приложения является отсутствие конкретной специализации программы на составлении списка покупок и неудобный интерфейс. Кроме того, данная программа не доступна на русском языке.
Рис. 5. Интерфейс программы Yummly
Достоинства:
- Около 2 млн. рецептов;
- Рекомендации рецептов
- Распознавание имеющихся продуктов по внешнему виду с помощью камеры смартфона
- Составление списка покупок
Недостатки:
- Отсутствие русского языка;
- Ограничения бесплатной версии
- Перегруженный интерфейс программы
- Требуется регистрация через Google или Facebook для доступа ко всем функциям
Таким образом несмотря на большое количество вариантов приложений для составления списка покупок в большинстве из них отсутствует интеграция со списком рецептов, либо приложение неудобно для русского пользователя. Проанализировав полученные данные, перейдем к следующему этапу, а именно выбору инструментария для разработки программы.
1.4 Обзор и обоснование выбора инструментария для разработки приложения
Для реализации приложения можно выделить два типа решений: кроссплатформенные, позволяющие осуществлять разработку приложения под множество различным платформ, и нативные, предоставляемые разработчиком платформы.
Такие кроссплатформенные средства разработки, как Unity и Qt, хотя и представляют необходимый инструментарий для создания мобильных приложений, поддержку языка С++ или С# и более простые методы разработки, тем не менее в них отсутствует множество функций специфичных для операционной системы Android. Кроме того, полученное приложение будет занимать гораздо больше места в памяти телефона, чем аналогичное приложение, сделанное нативными средствами разработки.
Из доступных интегрированных сред разработки была выбрана Android Studio по следующим причинам:
- Предоставляет гибкую систему сборки, основанную на Gradle
- Удобный редактор макетов элементов приложения
- Интеграция с системой контроля версий Git
- Средства мониторинга производительности
- Наличие большого количество документации и видеоматериалов
В целом, большинство популярных сред разработки предоставляют схожую функциональность, поэтому наличие детальной документации по различным аспектам разработки для ОС Android сыграло ключевую роль в выборе инструментария.
В качестве инструмента для управления версиями приложения будет использоваться GitHub, как самое популярное, бесплатное и доступное решение из существующих. Разработка велась для мобильный устройств с версией ОС Android 7.0 Nougat и выше.