Бакалаврская работа разработка мобильного клиент-серверного приложения EzFood. Разработка мобильного клиентсерверного приложения EzFood для подбора рецептов еды модуль клиентской части содержит 39 страниц текстового документа, 13 использованных источников, 15 иллюстраций
Скачать 4.33 Mb.
|
« » « » , «_____» ________ 2019 . ( , , , ) 09.03.04 , ( ), - «EzFood» : , . . . , , , , , , . . . , , , 2019 4 РЕФЕРАТ Выпускная квалификационная работа по теме Разработка мобильного клиент-серверного приложения «EzFood» для подбора рецептов еды: модуль клиентской части» содержит 39 страниц текстового документа, 13 использованных источников, 15 иллюстраций. МОБИЛЬНОЕ КЛИЕНТ-СЕРВЕРНОЕ ПРИЛОЖЕНИЕ ДЛЯ ПОДБОРА РЕЦЕПТОВ ЕДЫ, КЛИЕНТСКАЯ ЧАСТЬ, АНАЛИЗ АНАЛОГОВ, РАЗРАБОТКА И ПРОЕКТИРОВАНИЕ КЛИЕНТСКОЙ ЧАСТИ МОБИЛЬНОГО ПРИЛОЖЕНИЯ «EzFood» Целью работы является разработка клиентской части мобильного клиент-серверного приложения «EzFood». Для достижения поставленной цели решались следующие задачи: 1) Проанализирована предметная область; 2) Сделан обзор аналогов, операционных систем и средств разработки; 3) Спроектирована и разработана клиентская часть приложения: а) разработана база данных; б) разработана функциональная схема взаимодействия активностей; в) разработан GUI интерфейс. 4) Реализована схема взаимодействия клиента с сервером; 5) Проведено модульное тестирование. Итогом работы стала клиентская часть мобильного приложения «EzFood», способная с помощью графического интерфейса предоставлять пользователям доступ ко всем функциям разработанного приложения, активно взаимодействующая с клиентской базой данных, которая была также разработана и спроектирована для хранения и отображения информации о различных ингредиентах, блюдах, в которых они используются, а также отзывов пользователей на эти блюда. 5 СОДЕРЖАНИЕ ВВЕДЕНИЕ .............................................................................................................. 6 1 Общие сведения ................................................................................................ 7 1.1 Анализ мобильных операционных систем .............................................. 7 1.2 Инструменты для разработки приложений ........................................... 10 1.3 Требования к системе ............................................................................... 12 1.3.1 Требования к структуре и функциональной части ......................... 12 1.3.2 Требования к интерфейсу приложения ............................................ 13 1.3.3 Требования к техническому обеспечению ...................................... 14 1.4 Выводы ...................................................................................................... 14 2 Проектирование и планирование .................................................................. 16 2.1 Обзор аналогов .......................................................................................... 16 2.2 Планирование ............................................................................................ 19 2.3 Проектирование архитектуры клиентской части приложения ............ 21 2.4 Хранение данных ...................................................................................... 23 2.5 Описание логической структуры приложения ...................................... 26 2.6 Выводы ...................................................................................................... 27 3 Разработка и тестирование клиентской части ............................................. 28 3.1 Описание функционала приложения ...................................................... 28 3.2 Реализация графического интерфейса ................................................... 29 3.3 Тестирование ............................................................................................. 33 3.4 Выводы ...................................................................................................... 35 ЗАКЛЮЧЕНИЕ ..................................................................................................... 36 СПИСОК СОКРАЩЕНИЙ ................................................................................... 37 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ........................................... 38 6 ВВЕДЕНИЕ С каждым днем в мире информационных технологий появляется все больше новых возможностей для работы и передачи информации. Эти самые возможности позволяют пользователям всесторонне использовать технологии в своих личных и профессиональных сферах деятельности. Актуальность разрабатываемого приложения весьма высока так как сервисы поиска и хранения новых различных рецептов блюд были и будут востребованными в течение долгого времени. Особенно важна при этом реализация удобного и интуитивно понятного интерфейса. В современном мире одно из главных богатств человека это время - единственный ресурс, который не может восполнить человек, а значит адаптивный и отзывчивый интерфейс обеспечит сохранение и правильное использование этого ценного ресурса. Данное приложение имеет возможность отображать рецепты в зависимости от указанных параметров (ингредиентов, категории блюда), что значительно упростит поиск нужного блюда. Также, благодаря клиент- серверной технологии, пользователь в реальном времени сможет загружать различные рецепты, оценивать их, читать отзывы, а также добавлять свои. Цель работы заключается в создании клиентской части уникального приложения, которое позволит упростить поиск подходящих рецептов еды, а также поможет расширить кулинарный кругозор пользователя. Для достижения поставленной цели необходимо было решить следующие задачи: − выбрать инструменты и средства разработки; − проанализировать рынок аналогичных мобильных приложений; − определить требования к приложению; − спроектировать архитектуру клиентской части приложения; − разработать клиентскую часть приложения; − реализовать взаимодействие клиентской и серверной частей. 7 1 Общие сведения В данном разделе описаны и проанализированы существующие мобильные операционные системы, а также используемые инструменты, средства разработки и требования к приложению. 1.1 Анализ мобильных операционных систем На сегодняшний день существует достаточно большой выбор мобильных операционных систем. Среди них можно выделить наиболее популярные: Android; iOS; Windows Mobile. Платформа Android – мобильная операционная система с открытым исходным кодом, которая разрабатывается корпорацией Google. Она основана на ядре Linux и спроектирована для мобильных устройств с сенсорным экраном, таких как смартфоны и планшеты. Впервые ОС увидела свет в сентябре 2008 года [1]. Android устанавливается на огромное количество как бюджетных, так и дорогостоящих устройств. Среди них смартфоны, планшеты, умные часы, телевизоры и автомобильные медиа системы. Данная платформа является самой распространенной ОС в мире. Это обусловлено всесторонним развитием системы корпорацией Google, а также открытым исходным кодом, который даёт возможность производителям электроники легко адаптировать и модифицировать систему под свои устройства. Каждый год для платформы выходят новые обновления и API, которые добавляют новый функционал в систему, а также дают более удобные инструменты для разработки, что существенно облегчает создание приложений. При этом стоит уделить особое внимание выбору минимально 8 поддерживаемой версии API поскольку, чем младше версия, тем больше устройств будет способно запустить наше приложение. Начиная с версии Android 5.0 (API 21) в системе применяется фирменный дизайн всех приложений Material Design. Для разработки приложений используется язык Java. Для установки новых приложений пользователь может воспользоваться официальным магазином приложений Google Play Market. Также существуют сторонние магазины приложений, которые создаются производителями техники в целях уменьшения зависимости их устройств от продуктов корпорации Google. Также приложения можно устанавливать прямиком из памяти телефона или SD карты, что дает широкие возможности по использованию ресурсов системы и отладке. Но тем самым появляется возможность установки пиратских приложений [2]. Для разработки приложений используется Android Studio – среда разработки, выпущенная корпорацией Google в 2014 году и основанная на продукте IntelliJ Idea от компании JetBrains [3]. Достоинства: Открытый исходный код; Высокое быстродействие системы; Поддержка многозадачности; Удобная разработка и отладка. Недостатки: Высокий уровень пиратства; Плохая защищенность системы от вирусов. Платформа iOS – закрытая мобильная операционная система, доступная только на устройствах от компании Apple, таких как iPhone, iPad и iPod Touch. Первая версия системы была представлена в начале 2007 года. Она основана на ядре собственной разработки XNU и обладает высоким уровнем защиты от вирусов и прочих мошеннических программ [4]. 9 Операционная система является второй по распространённости, уступая лишь Android. Она имеет фирменный магазин приложений App Store. Все приложения в этом магазине проходят предварительную модерацию сотрудниками Apple для проверки безопасности приложения. Достоинства: Высокая защищенность системы от вирусов; Высокое быстродействие системы; Низкий уровень пиратства. Недостатки: Ограниченность использования стороннего софта; Долгая модерация при релизе приложения в App Store. Платформа Windows Mobile – закрытая мобильная операционная система, но обладающая более широким спектром настроек элементов интерфейса, чем iOS. Эта система была представлена компанией Microsoft в 2010 году, но в последнее время система почти не поддерживается. Среди остальных рассматриваемых систем Windows Mobile имеет намного меньшую распространенность, поскольку эта ОС не получила широкую поддержку среди разработчиков и пользователей [5]. Система имеет свой уникальный интерфейс, именуемый Metro. Он состоит из квадратных динамических плиток разного размера. Подобный интерфейс вызвал множество споров среди потребителей и стал одной из главных причин низкой популярности операционной системы. Windows Mobile имеет собственный магазин приложений Windows Phone Store. Он обладает достаточно большим количеством приложений, но некоторых важных приложений, которые пользователям необходимы, там нет. Для разработки приложений для Windows Mobile используются языку семейства C, например C++, C#. Основным инструментом разработки является Microsoft Visual Studio. 10 Достоинства: Одно ядро с десктопной версией Windows; Удобство разработки. Недостатки: Высокие требования к мобильному устройству; Небольшая распространенность системы. Согласно статистике от компании Gartner на конец 2018 года доля мобильных устройств на базе ОС Android составляет 84,1%. На втором месте стоит операционная система iOS – 14,8%. Тройку замыкает операционная система Windows Mobile – 1,41% пользователей [6]. Рисунок 1 – Статистика использования мобильных операционных систем 1.2 Инструменты для разработки приложений На сегодняшний день разработчикам предоставлен широкий выбор инструментов для разработки мобильных приложений. Для каждого языка программирования существует несколько IDE, которые имеют разные возможности и фукционал. Android Studio — это интегрированная среда разработки (IDE) для работы с платформой Android, анонсированная 16 мая 2013 года на 11 конференции Google I/O. Android Studio, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains, – официальное средство разработки Android приложений. Данная среда разработки доступна для Windows, OS X и Linux [7]. Android Studio имеет ряд преимуществ по сравнению с другими средами разработки: среда разработки поддерживает работу с несколькими языками программирования, к которым относятся самые популярные – C/C++, Java; редактор кода, с которым удобно работать; возможность разработки приложений не только для смартфонов/планшетов, но и для портативных ПК, приставок для телевизоров на платформе Android TV, устройств Android Wear, а также мобильных устройств с необычным соотношением сторон экрана; наличие встроенного эмулятора ОС Android, который позволяет проводить тестирование корректности работы новых утилит, их производительности на той или иной системе, происходит непосредственно в эмуляторе; рефакторинг готового кода; большая библиотека с готовыми шаблонами и компонентами для разработки ПО; возможность разработки для всех версий Android; предварительная проверка уже созданного приложения на предмет наличия ошибок; большой набор средств инструментов для тестирования каждого элемента приложения, игры; для всех разработчиков специально создано подробное руководство по использованию Android Studio, размещенное на официальном сайте утилиты. Для разработки приложений на платформе iOS используется специальная среда XCode, которая доступна только на компьютерах под 12 управлением операционной системы MacOS, выпускаемой компанией Apple. В качестве языка программирования выступает язык Objective-C, а также специально разработанный компанией Apple язык Swift, который в перспективе станет основным языком для создания приложений на iOS. Для размещения приложения в магазине App Store требуется наличие аккаунта разработчика, который стоит 100 долларов США [8]. возможность разработки приложений для всех портативных устройств на платформе iOS; удобные встроенные инструменты для отладки и тестирования приложения; возможность разработки для всех версий iOS; встроенная виртуальная машина может запускать эмулятор всех устройств Apple. 1.3 Требования к системе Разрабатываемое приложение должно учитывать следующие основные принципы: Функциональность. Способность программного средства выполнять набор функций, удовлетворяющих заданным или подразумеваемым потребностям пользователей. Легкость применения. Характеристики программного средства, которые позволяют достичь высокого уровня комфорта пользователя при использовании приложения. 1.3.1 Требования к структуре и функциональной части Приложения для Android в своей работе используют окна (аналогично Windows), однако в данной системе вышеуказанные окна носят иное название – активность (Activity) [9]. При разработке приложения, нужно 13 максимально оптимизировать код и количество активностей, так как большое количество активностей может вызвать сбои и неудобства пользователя в работе с приложением. Функциональная структура мобильного приложения должна включать в себя: Понятный пользователю интерфейс; Загрузка информации из БД по протоколу HTTP; Простые и понятные механизмы взаимодействия с приложением; Авторизацию и аутентификацию пользователя; Возможность поиска с помощью фильтрации по указанным свойствам 1.3.2 Требования к интерфейсу приложения Интерфейс пользователя должен учитывать следующие принципы: Удобство. Использование устоявшимися и привычными пользователю стандартами пользования приложениями на ОС Android. Кнопки, ссылки и поля должны быть выделены и оптимального размера, чтобы пользователь мог попасть по ним. Архитектура информации. В связи с ограничениями размеров, структура отображаемых элементов должна быть максимально простой и удобной. На экране должно быть оптимальное количество кнопок и обозначение пути пользователя. Дизайн. Дизайн мобильного приложения должен быть понятным с одного взгляда. Пользовательские действия. Ограничение количества обязательных полей, для освобождения пользователя от длинных вводов текста. Предложение данных «по умолчанию», там, где это возможно. Цветовое решение должно быть выполнено в мягких цветовых тонах, приятных для восприятия. Все страницы (экраны мобильного приложения) 14 должны быть выполнены в едином стиле, который основан на фирменном интерфейсе Material Design. При работе на устройствах приоритетной ориентацией экрана является портретная. Язык интерфейса – русский. 1.3.3 Требования к техническому обеспечению Вся информация в приложении должна сохраняться в базу данных и быть доступна для многоразового использования. К приложению предъявляются следующие общие технические требования: Операционная система Android 5.0 и выше; Процессор – Qualcomm Snapdragon 625 1 ГГц и выше; Оперативная память – 1 Гбайт и выше; Дисплей – диагональ от 3,5 дюйма, разрешение от 960*640; Место на диске – при использовании необходимо около 70 Мбайт; Постоянное подключение к интернету. 1.4 Выводы На сегодняшний день существует достаточно широкий выбор мобильных операционных систем. Однако характер разработки для каждой из них сильно различается. iOS была исключена по причине высокого риска возникновения трудностей во время разработки и релиза приложения, а также высокой цены за публикацию приложения и приобретение средств разработки. Windows Mobile была исключена из-за крайне низкой популярности операционной системы и отсутствия поддержки со стороны разработчиков. В итоге для разработки приложения «EzFood» была выбрана платформа Android. 15 В качестве инструмента для разработки была выбрана Android Studio, которая представляет собой более новую платформу на базе Java относительно других средств разработки на ОС Android. 16 2 Проектирование и планирование В данном разделе описаны архитектура клиентской части приложения, а также используемые инструменты, средства разработки и средства хранения данных внутри приложения «EzFood». 2.1 Обзор аналогов Для привлечения интереса к разрабатываемому мобильному приложению и поддержанию его конкурентоспособности необходимо проанализировать уже существующие решения, имеющие схожий набор функций и возможностей. Для получения информации будут проанализированы три самых популярных русскоязычных приложения из Google Play. 1. Kitchen Stories Рисунок 2 – Интерфейс приложения Kitchen Stories 17 Kitchen Stories — удобное и визуально приятное приложение, содержащее внушительную коллекцию рецептов. Рецепты здесь сгруппированы по категориям: «Самые лучшие завтраки и закуски», «Сытные ужины», «Блюда для веганов» и так далее. Помимо этого, в Kitchen Stories есть поиск и фильтрация записей. Имеется возможность с помощью пары нажатий найти блюда, содержащие какой–то специальный ингредиент или принадлежащие к определённой кухне. Для новичков есть отдельный раздел с советами и подсказками. Многие рецепты сопровождаются видео инструкциями. Также Kitchen Stories позволяет быстро формировать список покупок из ингредиентов для выбранных блюд. Однако, в приложение нельзя добавлять собственные блюда, и локализация многих рецептов оставляет желать лучшего. 2. RecipeBook Рисунок 3 – Интерфейс приложения RecipeBook 18 Приложение RecipeBook имеет отличительную функцию Snap’n’Cook («Потряси и готовь»). Она заключается в следующем: пользователь помечает в поиске все имеющиеся ингредиенты у него в холодильнике, а затем трясёт телефон. После этого программа показывает, какие блюда из всего этого можно приготовить. Имеется ещё одна особенность — возможность фотографирования ингредиентов. Сделав снимок продукта, пользователь может потрясти устройство, и программа скажет, что это такое и что из него можно приготовить. Приложение очень популярно за рубежом и позволяет пользователям добавлять собственные рецепты, поэтому в этом приложении можно найти множество блюд со всего мира. Однако, русских блюд не очень много, хотя классические русские блюда имеются. Приложение RecipeBook имеет автоматическую локализацию, однако, качество перевода многих слов находится на низком уровне. 3. Лучшие рецепты мира Рисунок 4 – Интерфейс приложения Лучшие рецепты мира 19 Приложение «Лучшие рецепты мира» ориентировано уже на русскоязычных пользователей. В базе больше 6000 рецептов. Они снабжены подробными указаниями и фотографиями, иллюстрирующими процесс готовки. Программой можно пользоваться без доступа к интернету [10]. Особенностей вроде Snap’n’Cook, как у приложения RecipeBook, приложение не имеет. Однако также присутствуют минусы. Среди них стоит отметить отсутствие специальной категории для веганов и других людей, которым нельзя потреблять определенные продукты, Следствием этого является необходимость ручного поиска рецептов без определенных продуктов, проверяя списки ингредиентов вручную. 2.2 Планирование Для управления ходом проекта были использованы такие методики, как диаграмма Ганта и контрольные точки для подведения итогов на данном периоде времени разработки приложения. Диаграмма Ганта (график Ганта) – это один из наиболее удобных и популярных способов графического представления времени выполнения задач. Как средство планирования используется в личном и корпоративном тайм-менеджменте; управлении проектами. Диаграмма Ганта является наглядным и удобным инструментом для управления проектом [11]. Таблица 1 – План работ № Контрольные точки проекта Дата 1 Изучение предметной области 14.02.19 2 Проектирование структуры приложения 26.03.19 3 Клиентская часть приложения разработана 17.05.19 4 Произведено тестирование системы 06.06.19 5 Пояснительная записка оформлена 17.06.19 20 Рисунок 5 – План работ на диаграмме Ганта 21 2.3 Проектирование архитектуры клиентской части приложения В качестве архитектуры для данного проекта была выбрана 3–х уровневая система: клиентский, серверный уровни и уровень БД (рисунок 6). Рисунок 6 – Архитектура взаимодействия составных частей приложения Клиентский уровень отвечает за предоставление пользователю графического интерфейса, а также имеет связь с серверной частью. Серверный уровень содержит в себе бизнес–логику, а также СУБД для работы с третьим уровнем архитектуры. Уровень БД является прямым носителем данных, с которыми оперирует серверная часть. В Android Studio для разработки приложений применяется объектно– ориентированный язык Java. Таким образом, компоненты, описывающие основной функционал, в составе приложения представляют собой классы, хранящиеся в файлах с расширением .java [12]. 22 Классическое приложение для ОС Android состоит из набора активностей, каждая из которых представляет собой соответствующий экран приложений. Помимо класса .java, который включает в себя код с функционалом активности, также существует xml файл, который описывает все визуальные элементы, их параметры и порядок отображения в активности. На следующей диаграмме представлена иерархия основных классов из Android SDK, с которыми предстоит иметь дело при разработке графического интерфейса: Рисунок 7 – Основные элементы графической части приложения Для работы с базой данных будут описаны отдельные директории Database. Они включают в себя классы с методами взаимодействия активностей и интерфейсами SQLite, а также классы, описывающие таблицы внутри Android приложения с использованием технологии Room. Для реализации многопоточности и оптимизации взаимодействия активностей и базы данных будет реализована технология LiveData, которая 23 автоматически отслеживает текущее состояние приложения и автоматически регулирует работу с потоками и обмен информацией с базой данных SQLite с использованием технологии Room (Рисунок 8). Рисунок 8 – Структура взаимодействия элементов приложения с применением технологии LiveData 2.4 Хранение данных В приложении применяется структура, которая включает хранение информации в удаленной базе данных. Загрузка и обмен информацией осуществляется путем взаимодействия с серверной частью приложения. Информация, приходящая из удаленной базы данных, также требует хранения и систематизации внутри самого Android приложения. Для этого реализуется база данных SQLite с применением технологии Room внутри самого приложения. Room — это высокоуровневый интерфейс для низкоуровневых привязок SQLite, встроенных в Android, включающий в себя группу библиотек от Google, которые поддерживают уместную архитектуру 24 приложений. Эта технология позволяет описывать таблицы базы данных в виде классов, а данные в таблице в виде объектов. Это существенно упрощает работу по написанию кода и реализации методов в функциональных классах активностей [13]. База данных приложения «EzFood» состоит из следующих таблиц: Account, Categories, Ingredients, RateReviews, Reviews, Recipes. Таблица Account содержит в себе информацию об аккаунте пользователя: id – идентификатор пользователя; email – Email адрес пользователя; userName – никнейм пользователя; firstName – фамилия пользователя; lastName – имя пользователя; pathToAvatar – путь к изображению пользователя; gender – пол пользователя; aboutYourself – информация о пользователе; recipiesCount – количество опубликованных рецептов; reviewsCount – количество комментариев; rateReviewsCount – количество выставленных оценок; Таблица Categories содержит в себе информацию о всех доступных категориях блюд: id – идентификатор; name – название категории; descriptrion – описание категории; pathToIcon – путь к изображению категории; recipiesCount – количество рецептов; Таблица Ingredients содержит в себе информацию о ингредиентах, используемых в рецептах: id – идентификатор ингредиента; 25 name – название ингредиента; pathToIcon – путь к изображению ингредиента; recipiesCount – количество использований в рецептах; Таблица RateReviews содержит в себе информацию об оценках различных рецептов пользователями: reviewId – идентификатор оценки; userId – идентификатор пользователя; recipeId – идентификатор рецепта; rate – оценка; Таблица Reviews содержит в себе информацию комментариях, оставленных пользователями под каждым из рецептов: id – идентификатор комментария; recipeId – идентификатор рецепта; author – имя автора; rate – оценка комментария; Таблица Recipes содержит в себе информацию рецептах, создаваемых пользователями: id – идентификатор; name – название рецепта; author – имя автора; categoryId – идентификатор категории блюда; timeForCooking – время приготовления; timeForPreparetion – время подготовки; rate – оценка рецепта; ingredients – ингредиенты; reviews – комментарии; Описанные таблицы позволяют организовать удобное хранение информации внутри Android приложения и обмен информацией с сервером в нужный момент. 26 2.5 Описание логической структуры приложения Разрабатываемое приложение включает в себя 10 активностей, каждая из которых позволяет пользователю производить определенные действия, связанные с просмотром и редактированием рецептов, а также настройками приложения и аккаунта. Подробная схема активностей приложения представлена на рисунке 9. Рисунок 9 – Схема активностей и их связей в приложении Загрузочная активность открывается сразу после запуска приложения на устройстве и производит подключение и синхронизацию с удаленной базой данных, а также проверяет, произведён ли вход пользователя в свою учетную запись. Если нет, то открывается активность с формой авторизации пользователя, иначе открывается активность с основным меню. Активность с формой авторизации позволяет пользователю произвести вход в учетную запись и далее открывает активность с основным меню. Если 27 у пользователя отсутствует учетная запись, то он может её создать, открыв активность с формой заполнения данных и авторизации пользователя. Активность с основным меню позволяет пользователю открыть активности для создания и просмотра рецептов, а также активность для редактирования настроек приложения и учетной записи пользователя. Активность для просмотра всех рецептов позволяет выбрать конкретный рецепт из списка, сформированного с помощью поиска или фильтров, и открыть активность с его подробным описанием. Активность для отображения всех рецептов пользователя позволяет открыть активность для редактирования выбранного рецепта в случае, если пользователь захотел изменить или полностью удалить рецепт. Активность для редактирования настроек позволяет пользователю изменить данные своей учетной записи или изменить настройки самого приложения. 2.6 Выводы В данном разделе были описаны архитектура клиентской части приложения, а также используемые инструменты, средства разработки и средства хранения данных внутри приложения «EzFood». Применяемая схема взаимодействия серверной и клиентской частей Model View Controller в приложении «EzFood» позволяет реализовать низкую связность компонентов. Это обеспечивает высокую надежность работы приложения и предоставляет разработчику широкий спектр возможностей по разработке и отладке всех модулей системы. 28 3 Разработка и тестирование клиентской части В данном разделе описаны реализация функционала и графического интерфейса клиентской части приложения, а также методы и процесс тестирования различных модулей внутри приложения «EzFood». 3.1 Описание функционала приложения Приложение «EzFood» предоставляет пользователям возможность обзора рецептов приготовления различных блюд, созданных другими пользователями или модераторами приложения. Приложение «EzFood» предназначено для всех владельцев смартфонов на базе платформы Android, заинтересованных в поиске или хранении различных рецептов блюд, и имеет следующие функции: Регистрация аккаунта пользователя в приложении; Аутентификация аккаунта при входе; Создание новых рецептов; Просмотр существующих рецептов; Поиск рецептов с помощью фильтров; Оценивание и комментирование рецептов других пользователей. Регистрация и авторизация пользователя осуществляется через его уникальный email адрес. Для удобства использования приложения было реализовано запоминание данных пользователя. Таким образом, при запуске приложения ему не придется заново вводить свои данные, что значительно упрощает и ускоряет взаимодействие пользователя с приложением. Для оптимизации количества и частоты запросов к удаленному серверу внутри приложения реализована база данных, хранящая информацию, которая редко изменяется, либо которая добавляется самим пользователем. К примерам таких данных можно отнести список категорий рецептов и личные 29 рецепты пользователя, которые удобно хранить как на сервере, так и на самом устройстве для ускорения отображения необходимой информации. 3.2 Реализация графического интерфейса В Android–приложении «EzFood» была применена фирменная концепция графического интерфейса Material Design от компании Google. При запуске приложения открывается загрузочная активность. Она отображается в течение двух секунд, во время которых происходит проверка соединения с удаленным сервером и подгрузка данных в базу приложения. Также происходит проверка авторизации пользователя. Если пользователь не авторизован, то далее открывается активность с формой входа в аккаунт, иначе открывается активность с основным меню. Рисунок 10 – Загрузочная активность приложения 30 В случае, когда пользователь не авторизован, после загрузочной активности открывается активность с формой входа в аккаунт. Если же пользователь не имеет аккаунта, то он сможет его создать, перейдя в активность регистрации нового аккаунта. Рисунок 11 – Активности регистрации и авторизации аккаунта После проверки авторизации открывается основное меню приложения. В нем пользователь может выбрать необходимую ему функцию или перейти в настройки приложения. 31 Рисунок 12 – Главное меню приложения и активность со списком рецептов из категории «Десерты» После нажатия пользователем на какой–либо рецепт откроется активность с подробным описанием выбранного рецепта. Рисунок 13 – Активность с подробным описанием выбранного рецепта 32 Кроме просмотра других рецептов, пользователь имеет возможность создавать свои. Для этого нужно нажать на соответствующую кнопку в основном меню. Рисунок 14 – Активность с формой создания нового рецепта Также пользователь имеет возможность изменять данные своего аккаунта при выборе соответствующего пункта в меню настроек. 33 Рисунок 15 – Активность с формой изменения данных аккаунта пользователя 3.3 Тестирование В процессе разработки приложения производилось поэтапное тестирование для выявления программных ошибок и несоответствий требованиям надежности и функциональности. В тестировании были использованы несколько устройств и эмуляторов с различными версиями Android и различными диагоналями экранов. В процессе тестирования проводился подробный анализ работы всех основных функций, и элементов отображения активностей приложения путем использования записи в логи и при необходимости изменялся код, вызывающий обнаруженные ошибки. Для тестирования модуля взаимодействия с базой данных были реализованы специальные функции для unit–тестирования компонентов базы 34 данных. Эти функции позволяют проверять функциональность и стабильность работы модулей без взаимодействия с другими модулями. Были проведены приведенные ниже тесты. 1. Каждый метод был подвергнут юнит–тестированию с целью нахождения ошибок, выраженных несоответствием ожидаемых и полученных значений или результатов. Для реализации юнит–тестирования для каждой активности был создан специальный класс, посылающий в активность различные правильные и неправильные параметры. При необычном поведении активности производился анализ и исправление ошибки. 2. В базу данных намеренно вносились данные неверных типов и форматов в соответствующие поля, которые могли быть неверно интерпретированы программой. После этого производился анализ результатов работы программы и вносились соответствующие исправления. 3. Приложение было проверено на эмуляторах, на которых запускались разные версии Android с целью выявления особенностей и трудностей в работе приложения. 4. Также программный продукт тестировался на реальных устройствах для определения удобства компонентов интерфейса для пользователя. Тестирование разработанного приложения проводилось на следующих версиях операционной системы: − Android 5.0 (Lollipop); − Android 6.0 (Marshmallow); − Android 8.0 (Oreo); − Android 9.0 (Pie). Тестирование происходило на устройствах Android Xiaomi Mi Mix 2S, Google Nexus 5, Sony Xperia Z3, а также на эмуляторе Genimotion. Также тестирование проводилось для различных разрешений экранов: − 320×280 − 400×240 35 − 800×420 − 800×480 − 1024×600 В ходе тестирования были выявлены и исправлены проблемы с некорректным отображением информации на некоторых устройствах. 3.4 Выводы В данном разделе были описаны функционал и реализация графического интерфейса клиентской части приложения, а также методы и процесс тестирования различных модулей внутри приложения «EzFood». В результате тестирования были обнаружены недочеты отображения данных и элементов графического интерфейса, которые в последствии были исправлены путем внесения изменений в код соответствующих классов. 36 ЗАКЛЮЧЕНИЕ В результате выполнения данной работы была разработана клиентская часть приложения «EzFood» в интегрированной среде разработки Android Studio на языке Java. Были проанализированы достоинства и недостатки аналогов. После чего, были изучены и использованы новейшие технологии разработки базы данных и программных модулей от компании Google. Получен опыт реализации взаимодействия клиентской и серверной частей приложения, а также изучены принципы построения архитектуры приложения на ОС Android. В рамках выпускной квалификационной работы были достигнуты следующие результаты: 1. Произведен поиск аналогов и анализ их достоинств и недостатков; 2. Разработано мобильное приложение, реализующее функции, описанные в требованиях к клиентской части; 3. Произведено модульное тестирование элементов приложения и устранены обнаруженные ошибки. Благодаря применению паттернов проектирования в приложении имеется возможность дальнейшего развития клиентской части, а именно: 1. Разработка клиентской части на ОС iOS; 2. Добавление нового функционала; 3. Интеграция модуля авторизации с социальными сетями. 37 СПИСОК СОКРАЩЕНИЙ ОС – Операционная Система; БД – База Данных; СУБД – Система Управления Базами Данных; API – Application Programming Interface (набор определений подпрограмм); GUI – Graphical User Interface (тип пользовательского интерфейса); IDE – Integrated Development Environment (Интегрированная среда разработки). 38 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. Android создает возможности – [Электронный ресурс] – Режим доступа: https://www.android.com/intl/ru_ru/everyone/enabling–opportunity/. Дата обращения 15.06.2019; 2. Android – Википедия – [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Android. Дата обращения 15.06.2019; 3. Re IntelliJ IDEA положена в основу новой Android Studio – [Электронный ресурс] – Режим доступа: https://habr.com/ru/company/JetBrains/blog/179815/. Дата обращения 15.06.2019; 4. iOS – Википедия – [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/IOS. Дата обращения 15.06.2019; 5. Windows Mobile – Википедия – [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Windows_Mobile. Дата обращения 15.06.2019; 6. Mobile Operating System Market Share Worldwide – [Электронный ресурс] – Режим доступа: http://gs.statcounter.com/os–market– share/mobile/worldwide. Дата обращения 15.06.2019; 7. АНАЛИЗ СРЕДЫ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ ANDROID STUDIO – [Электронный ресурс] – Режим доступа: https://sibac.info/studconf/tech/l/69356. Дата обращения 15.06.2019; 8. Xcode – Интегрированная среда разработки ПО – [Электронный ресурс] – Режим доступа: https://habr.com/ru/hub/xcode/. Дата обращения 15.06.2019; 9. Android | Класс Activity и жизненный цикл приложения – [Электронный ресурс] – Режим доступа: https://metanit.com/java/android/2.1.php. Дата обращения 15.06.2019; 39 10. 10 удобных приложений с пошаговыми рецептами для Android и iOS – [Электронный ресурс] – Режим доступа: https://lifehacker.ru/poshagovye–recepty–blyud/. Дата обращения 15.06.2019; 11. 4 инструмента по полочкам. Управление проектами с WBS, Диаграммой Ганта, CPM и Time–Cost – [Электронный ресурс] – Режим доступа: https://habr.com/ru/post/282766/. Дата обращения 15.06.2019; 12. Введение в Java – [Электронный ресурс] – Режим доступа: https://code.tutsplus.com/ru/tutorials/learn–java–for–android–development– introduction–to–java––mobile–2604. Дата обращения 15.06.2019; 13. ROOM: ХРАНЕНИЕ ДАННЫХ НА ANDROID ДЛЯ ВСЕХ И КАЖДОГО – [Электронный ресурс] – Режим доступа: https://www.liveinternet.ru/community/rss_rss_hh_new/post419774363/. Дата обращения 15.06.2019. |