Файл: Критерии выбора средств разработки мобильных Приложений (Теоретические аспекты изучения критериев выбора средств мобильных приложений).pdf
Добавлен: 30.03.2023
Просмотров: 418
Скачиваний: 1
СОДЕРЖАНИЕ
1. Теоретические аспекты изучения критериев выбора средств мобильных приложений
1.1. Понятие и особенности мобильной среды. Мобильное приложение.
1.2. Анализ средств разработки мобильных приложений
2. Проектирование мобильного приложения для разделения чека в кафе и ресторанах
2.1. Требования к мобильному приложению
2.2. Варианты использования мобильного приложения, диаграмма последовательности
2.3. Проектирование архитектуры мобильного приложения
2.4. Проектирование интерфейса мобильного приложения
3. Реализация мобильного приложения «fairsplit» для разделения чека в кафе и ресторанах
3.1. Архитектура, компоненты мобильного приложения
3.2. Реализация компонентов обработки данных
NewDishDialogFragment – диалоговое окно, появляющееся при нажатии на кнопку «+» на экране редактирования чека. Предоставляет возможность ввести информацию и новом блюде: его название, цену за ед. и количество.
BillItemDialogFragment – аналогичное предыдущему диалоговое окно, появляющееся при нажатии на один из пунктов списка распознанных блюд. Предоставляет пользователю возможность как изменить блюдо, так и полностью его удалить.
Рис. 2.10. Файлы программного кода приложения
В папке src\main\res\layout содержатся файлы разметки приложения (рис. 2.11). activity_bill_editor.xml – как и другие файлы разметки, начинающиеся с «activity_», отвечает за разметку соответствующего экрана. Содержит viewэлементы для отображения списка блюд, кнопки добавления нового блюда и общей суммы по чеку.
bill_editor_list_item.xml – представление одного блюда из списка на экране редактора чека (название, количество, стоимость).
bill_editor_list_item_dialog_fragment.xml – разметка диалогового окна, появляющегося при клике на один из элементов списка в редакторе чека.
result_group_view.xml – разметка представления итогов по пользователю на экране результатов.
result_child_view.xml – разметка представления элемента детализации списка блюд по каждому пользователю.
user_choice_item.xml – представление блюда на экране выбора пользователей.
user_list_item.xml – представление отметки пользователя о разделении на него суммы блюда.
Рис. 2.11. Файлы разметки проекта
3.2. Реализация компонентов обработки данных
Приложение содержит порядка 3500 строк кода.
Приложение написано на языке Java [26], язык разметки – XML.
Подключенный модуль распознавания изображений tess-two написан преимущественно на С++ [5].
Загрузка изображения с камеры или из галереи.
При нажатии на кнопки «Галерея» или «Камера» конструируется соответствующий требуемому действию объект класса Intent, передаваемый в функцию startActivityForResult. Эта функция запускает новую операцию (Activity), и её результат будет возвращен в метод onActivityResult. Код метода приведен на рис. 2.12.
Рис. 2.12. Обработка нажатий на кнопки «Галерея» и «Камера»
Распознавание изображения
Взаимодействие с используемой библиотекой tess-two реализовано в классе TextRecognizer (рис. 2.13). Библиотека tess-two открыта для использования и доступна на ресурсе [5]. Tess-two является ответвлением проекта tesseract-android-tools, набором программных интерфейсов и файлов сборки для библиотеки оптического распознавания символов Tesseract и библиотеки обработки изображений Leptonica.
При вызове в объекте класса TextRecognizer функции processImage, принимающей на вход обрабатываемое изображение, в TessBaseAPI вызывается метод getUtf8Text, возвращающий строку с обнаруженным текстом.
Добавление нового пункта списка
Поведение диалога добавления нового пункта списка реализовано в классе NewDishDialogFragment, объект которого вызывается при нажатии на кнопку “+” на экране первой вкладки. В разметке диалога new_dish_dialog.xml расположены поля для ввода данных о добавляемом пункте. При нажатии в диалоге на кнопку “ОК” с применением шаблона «Listener» экран (Activity) редактора чека оповещается о создании нового объекта и производится сохранение данных о заказе и обновление выводимой адаптерами списков информации. На рис. 2.13 приведен программный код, сохраняющий информацию о новом пункте списка.
Рис. 2.13 Файлы разметки проекта
Рис. 2.14 Создание нового пункта чека
Подсчет суммы к оплате для каждого гостя.
При каждом клике на значок выбора или отмены выбора блюда происходить пересчет сумм к оплате для всех пользователей при вызове функции recountSums (рис. 2.15).
Алгоритм пересчета сумм к оплате реализован следующий: при установлении соответствующего пользователю флажка под блюдом, за которое он будет платить, увеличивается счетчик гостей, на которое делится это блюдо. Из сумм к оплате пользователей, чьи флажки были ранее установлены под позицией (если такие имеются), вычитается прежний раздел стоимости блюда и происходит перерасчет на новое количество разделивших блюдо. При снятии флажка под позицией чека происходят аналогичные действия за исключением того, что счетчик пользователей, на которых разделяется стоимость блюда, не увеличивается, а уменьшается.
Преобразование чека в список блюд
После того, как чек был успешно перенесен в приложение, его следует преобразовать в список отдельных блюд, пригодный для разделения между пользователями (рис. 2.16).
Рис. 2.15. Функция recountSums
Рис. 2.16. Функция initDishes
3.3. Функциональное тестирование
Функциональное тестирование – это тестирование программного обеспечения в целях проверки реализуемости функциональных требований, то есть способности программного обеспечения в определенных условиях решать задачи, нужные пользователям [8]. Функциональные требования определяют, что именно делает программное обеспечение, какие задачи оно решает. Используя методологию функционального тестирования, проверим работу с заявлениями.
Тест № 1
Цель: протестировать функцию ввода пользователем позиций из чека вручную.
Ожидаемый результат: заданная пользователем позиция чека успешно сохранена в программе и отображена в общем списке на экране редактирования чека.
Входные данные: пользователь находится на экране редактирования позиций чека.
Процедура тестирования: пользователь нажимает на кнопку добавления нового блюда «+», появляется диалоговое окно, куда пользователь вводит данные о блюде (название, количество и стоимость). Если пользователь введет данные не во все поля, они будут заполнены значениями по умолчанию. После ввода данных и новой позиции пользователь нажимает «Ок» и диалоговое окно закрывается.
Полученный результат: совпадает с ожидаемым.
Вывод: тест пройден
Тест № 2
Цель: протестировать функцию загрузки изображения из галереи.
Ожидаемый результат: загруженная пользователем фотография отображается на экране.
Входные данные: пользователь находится на экране загрузки изображения.
Процедура тестирования: пользователь нажимает на кнопку «Галерея», ему предоставляется выбор из изображений, хранящихся на устройстве. При выборе пользователем изображения чека его возвращает на экран загрузки.
Полученный результат: совпадает с ожидаемым.
Вывод: тест пройден
Тест № 3
Цель: протестировать функцию распознавания позиций чека на фотографии.
Ожидаемый результат: загруженная пользователем фотография успешно распознана, создан и отображен список распознанных позиций чека.
Входные данные: пользователь находится на экране загрузки изображения, изображение уже загружено.
Процедура тестирования: пользователь нажимает на кнопку «Далее» и переходит с экрана загрузки изображения на экран редактирования чека, где отображен распознанный список позиций.
Полученный результат: совпадает с ожидаемым.
Вывод: тест пройден
Тест № 4
Цель: протестировать функцию ввода количества пользователей.
Ожидаемый результат: количество гостей успешно введено в приложение, и оно готово к работе с заданным количеством гостей.
Входные данные: пользователь находится на экране ввода количества пользователей.
Процедура тестирования: пользователь с помощью ползунка выбирает нужное ему число и подтверждает свой выбор нажатием на кнопку «Ок».
Полученный результат: совпадает с ожидаемым.
Вывод: тест успешно пройден.
Тест № 5
Цель: протестировать функцию выбора и отмены выбора пользователем пункта из распознанного/введенного списка.
Ожидаемый результат: при нажатии на флажок пользователя под блюдом изменяется его состояние изменяется на «отмечено». При повторном нажатии флажок снимается.
Входные данные: пользователь находится на экране выбора пользователями пунктов списка.
Процедура тестирования: пользователь нажимает либо снимает соответствующий ему флажок под блюдом.
Полученный результат: совпадает с ожидаемым.
Вывод: тест успешно пройден.
Тест № 6
Цель: протестировать функцию вывода выбранных товаров и сумм к оплате для каждого пользователя.
Ожидаемый результат: на экране результатов корректно отображены верные суммы к оплате и списки заказанных блюд для каждого пользователя.
Входные данные: пользователь находится на экране выбора пользователями пунктов списка.
Процедура тестирования: пользователь выбирает те блюда из списка, которые он заказывал, после чего переходит на экран вывода результатов.
Полученный результат: совпадает с ожидаемым.
Вывод: тест успешно пройден.
Тест № 6
Цель: протестировать функцию вывода на экран предупреждения, сообщающее о несовпадении реальной итоговой суммы и суммы по пользователям.
Ожидаемый результат: предупреждение успешно отображается, если какое-то из блюд не было выбрано ни одним пользователем.
Входные данные: пользователь находится на экране выбора пользователями пунктов списка.
Процедура тестирования: при выборе пользователями тех блюд из списка, которые они заказывали, ни один из них не привлекается к разделению стоимости какого-либо блюда, после чего переходит на экран вывода результатов.
Полученный результат: совпадает с ожидаемым.
Вывод: тест успешно пройден.
3.4. Юзабилити-тестирование
Юзабилити-тестирование (проверка эргономичности) – метод оценки удобства продукта в использовании, основанный на привлечении пользователей в качестве тестировщиков, испытателей и суммировании полученных от них выводов [17].
Для проведения тестирования участникам предоставлялось мобильное устройство с заранее установленным приложением.
Модератор выдает сразу весь список заданий участнику. Временные ограничения на выполнение заданий не накладывались. Замечания от респондентов во время прохождения тестирования письменно фиксировались модератором тестирования.
Тестировщики успешно справились со всеми поставленными перед ними модератором тестирования задачами за приемлемое время и без какихлибо затруднений. В результате тестирования было выявлено, что приложение в достаточной степени обладает дружественным интерфейсом и у пользователей не возникает неразрешимых проблем при работе с ним.
ЗАКЛЮЧЕНИЕ
Доля мобильного интернета растет ежедневно [15]. Многие люди проводят по нескольку часов в день, играя в различные компьютерные игры, в особенности в то время, когда ничего другого сделать нельзя, например, по дороге на работу, учебу, в поезде и т. д. Регулярно выходят новые компьютерные игры для телефонов и других мобильных устройств. Скачивание мобильных приложений не требует долгого времени и специальных навыков, установка также проста и понятна.
В рамках работы было разработано мобильное приложение для Android. Для достижения данной цели были решены следующие задачи:
- осуществлена постановку задачи, выделены требования к приложению;
- произведен обзор существующих решений для разделения чеков;
- изучены современные средства разработки мобильных приложений для Android;
- определены требования и спроектировано мобильное приложение; 5) реализовано и протестировано мобильное приложение.
Все поставленные задачи были решены, цель достигнута.
Разработанное приложение имеет перспективы дальнейшего развития. С учетом усложнения бизнес-процесса и ростом требований заказчика, возникает потребность в расширении функционала системы.
Перспективы дальнейшего развития мобильного приложения могут быть следующими:
- программа должна давать пользователю возможность сохранения новых позиций чека при ручном вводе;
- программа должна выводить детализацию выбранных и невыбранных позиций чека;
- программа должна проверять наличие скидки на отдельные позиции чека или на всю сумму чека;
- программа должна применять скидку к товарам пользователя при ее наличии;
- программа должна уметь экспортировать фото и имена пользователей из контактов устройства;
- программа должна уметь рассылать распознанные позиции с помощью списка контактов устройства.
БИБЛИОГРАФИЯ
- Android Studio Features. [Электронный ресурс] URL: https://developer.android.com/studio/features.html (дата обращения: 26.11.2019).
- Appery.io: Enterprise Mobile App Builder & MBaaS. [Электронный ресурс] URL: https://appery.io/ (дата обращения: 06.11.2019).
- Download Android Studio and SDK Tools | Android Studio. [Электронный ресурс] URL: https://developer.android.com/studio/index.html (дата обращения: 26.11.2019).
- Eclipse - The Eclipse Foundation open source community website. [Электронный ресурс] URL: https://www.eclipse.org/downloads/ (дата обращения: 26.11.2019).
- Fork of Tesseract Tools for Android. [Электронный ресурс] URL: https://github.com/rmtheis/tess-two/ (дата обращения: 06.05.2017).
- IntelliJ IDEA the Java IDE – JetBrains. [Электронный ресурс] URL: https://www.jetbrains.com/idea/ (дата обращения: 26.11.2019).
- Introduction to Material Design. [Электронный ресурс] URL: https://material.google.com/ (дата обращения: 25.11.2019).
- Kaner, Falk, Nguyen. Testing Computer Software. – USA: Wiley Computer Publishing, 1999. – 42 p.
- MVP and MVC Architectures in Android. [Электронный ресурс] URL: https://www.techyourchance.com/mvp-mvc-android-1/ (дата обращения: 26.11.2019).
- Shoutem - Make an App - Build Apps with Easy Application Creator. [Электронный ресурс] URL: www.shoutem.com/ (дата обращения: 26.11.2019).
- Арлоу Дж., Нейштадт А. UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование. 2-е издание. – М.: Издательство «Символ-Плюс», 2017. – 624 с.
- Архитектура Android-приложений. Часть II – архитектурные стили и шаблоны. [Электронный ресурс] URL: https://habrahabr.ru/post/140655/ (дата обращения: 22.11.2019).
- Бурнет Э. Привет, Android! Разработка мобильных приложений. 2-е издание. – СПб.: Издательство «Питер», 2012. – 256 с.
- Буч Г., Рамбо Дж., Джекобсон А. Язык UML. Руководство пользователя. – СПб.: Издательство «Питер», 2003. – 432 с.
- Ведомости – Интернет-аудитория России растет за счет мобильных устройств. [Электронный ресурс] URL: https://www.vedomosti.ru/technology/articles/2016/01/28/625779-internet-auditoriya-rossiirastet-schet-mobilnih-ustroistv/ (дата обращения: 22.11.2019).
- Дейтел П., Дейтел Х., Уолд А. Android для разработчиков. 3-е издание. – СПб.: Издательство «Питер», 2016. – 512 с.
- Нильсен Я., Будиу Р. Mobile Usability. Как создавать идеально удобные приложения для мобильных устройств. – М.: Эксмо, 2013. – 256 с.
- Операции. [Электронный ресурс] URL: https://developer.android.com/guide/components/activities.html (дата обращения: 22.11.2019).
- Основы создания приложений. [Электронный ресурс] URL: https://developer.android.com/guide/components/fundamentals.html (дата обращения: 22.11.2019).
- Приложения в Google Play – Clever Bill Splitter. [Электронный ресурс] URL: https://play.google.com/store/apps/details?id=com.cleverturtles. splitter&hl=ru (дата обращения: 02.11.2019).
- Приложения в Google Play – Split Bill Advanced. [Электронный ресурс] URL: https://play.google.com/store/apps/details?id=br.com.fml. splitbilladvanced2&hl =ru (дата обращения: 22.11.2019).
- Приложения в Google Play – Split Bill. [Электронный ресурс] URL: https://play.google.com/store/apps/details?id=com.msafiullah.splitbill (дата обращения: 22.11.2019)
- Приложения в Google Play – Split Bills – Repayr. [Электронный ресурс] URL: https://play.google.com/store/apps/details?id=lundesoft.com. repayrlight&hl=ru (дата обращения: 21.11.2019).
- Приложения в Google Play – SplittPay подели чек с другом! [Электронный ресурс] URL: https://play.google.com/store/apps/details?id= com.github.rchugunov.splitpay&h l=ru (дата обращения: 22.11.2019).
- Приложения в Google Play – Делим чек. [Электронный ресурс] URL: https://play.google.com/store/apps/details?id=com.wemir_apps. split_bill&hl=ru (дата обращения: 05.11.2019).
- Шилдт Г. Java 8. Полное руководство. – М.: Издательский дом «Вильямс», 2017. – 1376 с.