Файл: Критерии выбора средств разработки мобильных приложений ( Современные мобильные приложения и их особенности ).pdf
Добавлен: 01.04.2023
Просмотров: 395
Скачиваний: 2
СОДЕРЖАНИЕ
1 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
1.1 Современные мобильные приложения и их особенности
1.2 Этапы разработки мобильных приложений
1.4 Общий алгоритм реализации мобильного приложения
1.5 Тестирование и ввод в эксплуатацию мобильного приложения
2.1 ХАРАКТЕРИСТИКА ПОТЕНЦИАЛЬНОЙ АУДИТОРИИ ПОТРЕБИТЕЛЕЙ МОБИЛЬНОГО ПРИЛОЖЕНИЯ
2.2 Постановка задачи мобильного приложения
2.2.1 Актуальность мобильного приложения
2.2.2 Цель и назначение мобильного приложения
В соответствии с этапами проектирования и разработки данного приложения были проанализированы средства, решающие поставленные задачи, как конструирование визуальной составляющей проекта, так и функциональной — написание кода. В первую очередь необходимо было спроектировать интерфейс мобильного приложения на основе актуальности его разработки, потенциальной аудитории и прочих параметров. Проектирование интерфейса осуществлялось подручными средствами в виде набросков, чертежей и схем. В последующем процессе создания макетов и шаблонов приложения были использованы графические редакторы. А именно — комбинация Adobe Photoshop и Adobe Illustrator.
Adobe Photoshop — это многофункциональный графический редактор, разработанный и распространяемый фирмой Adobe Systems. В основном работает с растровыми изображениями, однако имеет некоторые векторные инструменты.
Adobe Illustrator — векторный графический редактор, позволяющий создавать разнообразный контент: от мелких значков до рекламных щитов, от оформления сайтов до иллюстраций для книг [11].
Выбор этих средств разработки обусловлен их профессиональным функционалом, а также наличием навыков для работы с данным программным обеспечением (ПО), полученных в процессе обучения в университете.
При разработке приложений Android используется Java — один из наиболее распространенных языков программирования, однако при разработке необходимы также файлы XML. Язык Java — это современный язык, который работает на трех фронтах: портативность, скорость и безопасность. Поэтому он является доминирующим языком в мире программирования более 15 лет. Язык программирования Java, разработанный компанией Sun Microsystems под руководством светил интернета Джеймса Гослинга и Билла Джоя, был создан как машиннонезависимый язык программирования, который достаточно безопасен для сетевых применений и достаточно мощен, чтобы заменить родной исполняемый код [13].
Язык Java при разработке android-приложений используется не в полнофункциональном варианте, а только в небольшом подмножестве, в регистровой виртуальной машине Dalvik [6]. В этом подмножестве не используются те классы Java, которые не могут быть применены или не имеют смысла при разработке приложений на мобильные устройства. Dalvik оптимизирован для низкого потребления памяти, это нестандартная регистр-ориентированная виртуальная машина, хорошо подходящая для исполнения на процессорах RISC-архитектур, часто используемых в мобильных и встраиваемых устройствах, таких как коммуникаторы и планшетные компьютеры. (Большинство виртуальных машин, используемых в настольных системах, являются стекориентированными, включая стандартную виртуальную машину Java). Программы для Dalvik пишутся на языке Java. Несмотря на это, стандартный байт-код Java не используется, вместо него Dalvik исполняет байт-код собственного формата [20].
В версиях, начиная с Android 4.4 Kitkat, имеется возможность переключиться с Dalvik на более быстрый Android Runtime (ART). В Android 5.0 был полностью заменен ART. В отличие от Dalvik, который использует JITкомпиляцию (во время выполнения приложения), ART компилирует приложение во время его установки. За счет этого планируется повышение скорости работы программ и одновременно увеличение времени работы от батареи. Недостатком является более долгая загрузка устройства. Для обеспечения обратной совместимости ART использует тот же байт-код, что и Dalvik [7].
Скомпилированный программный код (вместе со всеми файлами ресурсов и прочей необходимой информацией) упаковывается в специальный файл-архив, Android Package. Этот файл имеет расширение *.apk и упаковывается специальной утилитой aapt tool. Именно он в дальнейшем распространяется как программа и инсталлируется на мобильные устройства. Один такой файл связан с кодом одного приложения [26]. И каждое приложение в Android живет в своем собственном мире — в такой машине. По умолчанию, каждая программа выполняется в своем собственном процессе, управлением которого занимается ядро Linux, которое также осуществляет менеджмент памяти. Таким образом, чаще всего код приложения выполняется в изоляции от всех других приложений. Android запускает процесс, когда возникает необходимость выполнить какой-нибудь программный код и завершает его, когда в нем больше нет необходимости и системные ресурсы требуются другим приложениям. По умолчанию, каждому приложению присваивается свой уникальный ID Linux-пользователя [19].
1.4 Общий алгоритм реализации мобильного приложения
Самым первым этапом разработки программного обеспечения по праву называется процедура проведения всестороннего анализа требований к создаваемому программному обеспечению, чтобы определить ключевые цели и задачи конечного продукта, предъявляемые к программному обеспечению требования. Результатом проведенного анализа становится формирование основного регламента, на который будет опираться исполнитель в своей работе — технического задания на разработку программного обеспечения. Техническое задание должно полностью описывать поставленные перед разработчиком задачи и охарактеризовать конечную цель проекта в понимании заказчика. Следующий ключевой этап в разработке программного обеспечения — стадия проектирования, то есть моделирования теоретической основы будущего продукта [9].
Самые современные средства программирования позволяют частично объединить этапы проектирования и кодирования, то есть технической реализации проекта, будучи основанными на объектно-ориентированном подходе, но полноценное планирование требует более тщательного и скрупулезного моделирования. Качественный анализ перспектив и возможностей создаваемого продукта станет основой для его полноценного функционирования и выполнения всего комплекса возлагаемых на программное обеспечение задач. Одной из составных частей этапа проектирования, к примеру, является выбор инструментальных средств и операционной системы, которых сегодня на рынке присутствует очень большое количество [10].
В данном проекте сформирован следующий алгоритм разработки мобильного приложения, состоящий из трех основных этапов, включающих в себя подэтапы.
- Подготовительный этап:
- генерация идеи;
- исследование аналогичных разработок с выявлением их сильных и слабых сторон;
- проектирование интерфейса, создание эскиза;
- разработка названия;
- изучение технологий разработки мобильных приложений на ОС Android [17].
- Основной этап:
- сбор и систематизация информации для наполнения;
- подбор цветов и стилей шрифта;
- создание макетов экранов с помощью графического редактора
изображений Adobe Photoshop CS6;
-
- разработка приложения в android studio;
- создание стилей и шаблонов основных окон;
- реализация поиска внутри разделов;
- интегрирование анимации;
- тестирование продукта на смартфонах Xiaomi Redmi 4x, Huawei P10 [4].
- Заключительный этап:
- исправление выявленных недочетов.
- создание иконок в программе Adobe Photoshop CS6, согласно с руководствами производителя системы и изучения сеток для построения иконок в Photoshop.
Таким образом, процесс разработки мобильного приложения включает собственно предпроектный этап, когда продумывается весь процесс разработки приложения и его контента и собственно этап разработки, когда собирается мобильное приложение и оно проходить тестирование [12].
1.5 Тестирование и ввод в эксплуатацию мобильного приложения
Обеспечение качества (QA, от английского - Quality Assurance) является неотъемлемой частью жизненного цикла разработки любых приложений, включая мобильные. К сожалению, многие упускают из виду критические особенности тестирования мобильных приложений, которые часто приводят к сбоям, ошибкам в работе приложения и плохому качеству обслуживания клиентов [19].
Чтобы обеспечить успешную разработку любого приложения, специалист-тестировщик должен принимать участие во всех этапах разработки - от создания концепции и анализа требований, до создания спецификаций тестирования и выпуска готового продукта. Обеспечение качества также является ключевым элементом в последующих, после прохождения этапов разработки, обзорах программного продукта [8].
Однако часто бывает сложно определить, с чего начать организацию процесса тестирования мобильного приложения.
Когда этап разработки приложения почти завершен, вы должны снова поставить перед собой вопрос - чего вы пытаетесь достичь разработкой данного приложения и какие у вас есть ограничения [6].
Вы должны определить следующее:
- Взаимодействует ли ваше приложение с другими приложениями?
- Насколько функциональны все возможности приложения?
- Является ли тестируемое мобильное приложение нативным, Mobile-web или гибридным?
- Ограничена ли задача тестирования приложения тестированием только внешнего интерфейса?
- Стоят ли задачи на тестирование бэкенда?
- Какова должна быть совместимость с различными беспроводными сетями?
- Как сильно данные приложения и свободное пространство, занимаемое им, зависят от особенностей использования приложения?
- Насколько быстро загружается ваше приложение, насколько быстро происходит серфинг по меню приложения и его функциям?
- Как будет обрабатываться возможное увеличение нагрузки на приложение?
- Влияют ли различные изменения в статусе и состоянии телефона на работу мобильного приложения?
Тестирование – очень важный этап разработки мобильных приложений [11].
Стоимость ошибки в релизе мобильного приложения высока. Приложения попадают в Google Play в течении нескольких часов, в Appstore несколько недель. Неизвестно сколько времени будут обновляться пользователи. Ошибки вызывают бурную негативную реакцию, пользователи оставляют низкие оценки и истерические отзывы. Новые пользователи, видя это, не устанавливают приложение.
Мобильное тестирование сложный процесс: десятки различных разрешений экрана, аппаратные отличия, несколько версий операционных систем, разные типы подключения к интернету, внезапные обрывы связи [19].
Тестирование начинается до разработки. Отдел дизайна передает тестировщикам навигационную схему и макеты экранов, менеджер проекта – требования невидимые на дизайне. Если дизайн предоставляет заказчик, макеты до передачи в отдел тестирования проверяются дизайнерами.
Тестировщик анализирует требования на полноту и противоречивость. В каждом проекте исходные требования содержат противоречивую информацию [25].
Так же в каждом проекте требования неполны: не хватает макетов второстепенных экранов, ограничений на поля ввода, отображения ошибок, кнопки никуда не ведут. Неочевидны невидимые на макетах вещи: анимации, кеширование картинок и содержимого экранов, работа в нестандартных ситуациях.
Недостатки требований обсуждаются с менеджером проекта, разработчиками и дизайнерами. После 2-3 итераций, вся команда гораздо лучше понимает проект, вспоминает забытый функционал, фиксирует решения по спорным вопросам [5].
В основном на этом этапе используется basecamp.
Когда требования стали полны и непротиворечивы, тестировщик составляет smoke-тесты и функциональные тесты, покрывающие исходные данные. Тесты деляется на общие и специфические для разных платформ [17].
Полное тестирование проводится перед релизом. Включает себя в себя быстрое тестирование, регресионное тестирование, monkey-тестирование на 100 устройствах и тестирование обновлений.
Регрессионное тестирование подразумевает прогон ВСЕХ тест-кейсов по проекту. Тест-кейсов не только за последнюю итерацию, но и за все предыдущие и общие тест кейсы по требованиям. Это занимает день-три на одно устройство в зависимости от проекта [16].
Очень важный шаг — тестирование обновлений. Почти все приложения хранят данные локально (даже если это кука логина) и важно удостовериться, что после обновления приложения все данные пользователя сохранятся. Тестировщик скачивает билд из маркета, создает сохраняемые данные (логин, плейлисты, транзации учета финансов), обновляет приложение на тестовую сборку и проверяет, что все на месте. Затем прогоняет smoke-тест. Процесс повторяется на 2-3 устройствах.
Вывод по главе 1: таким образом, разработка мобильного приложения – сложный и многогранный процесс.