Файл: Этапы разработки, тестирования и ввода в эксплуатацию мобильных приложений (Основы программного обеспечения для устройств).pdf
Добавлен: 01.04.2023
Просмотров: 248
Скачиваний: 2
СОДЕРЖАНИЕ
1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ПРОЕКТИРОВАНИЯ И РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
1.1. Жизненный цикл программного обеспечения
1.2. Методы разработки мобильных приложений
2. АНАЛИЗ МОБИЛЬНЫХ ПЛАТФОРМ ДЛЯ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
2.1 Мобильная платформа BlackBerry OS
2.2 Мобильная платформа Windows Phone
2.3 Мобильная платформа Android
3. ОСНОВЫ ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
3.1 Основы программного обеспечения для устройств
Рис. 9. Мост для связи между кроссплатформенной и нативной частью [8]
Все кроссплатформенные приложения обязаны иметь нативную часть, иначе необходимая операционная система не сможет их запустить.
Платформы iOS, Android и Windows UWP предоставляют необходимые API для работы кроссплатформенных фреймворков:
– WebView – используется в гибридных приложениях и представляет собой среду выполнения веб-приложений.
– JavaScript(JS)-движки – используются для быстрого выполнения JS-кода и обмена данными.
– OpenGL ES (или DirectX) используется в играх или приложениях для отрисовки интерфейса.
– UI-подсистема отвечает за нативный пользовательский интерфейс приложения.
Технологий для кроссплатформенной разработки мобильных приложений существует множество, но с архитектурной точки зрения все они аналогичны наиболее популярным Apache Cordova, ReactNative, Xamarin.Forms и Qt, поэтому рассмотрим только перечисленных лидеров.
Решения на базе Apache Cordova используют WebView и являются простыми с точки зрения реализации: создается небольшое нативное приложение, которое осуществляет вызов нативного функционала из JavaScript в локальном WebView приложения. Таким образом, приложение может иметь один универсальный код на JavaScript и реализованный на разных платформах единый API для доступа к нативному функционалу. Apache Cordova позволяет разделять весь код между платформами (рис. 10) и требует реализации нативной части на языках программирования Objective C, Java и C#. При разработке приложений в данной среде так же требуется опыт работы с такими языками, как HTML, JavaScript, CSS, и хорошие инженерные знания для интеграции нативной и кроссплатформенной частей.
Рис. 10. Архитектура Apache Cordova [8]
Apache Cordova подходит для небольших приложений, так доступ к нативной части достаточно затруднен.
При создании приложений на ReactNative также необходимо реализовывать нативную часть, которая инициализирует JavaScript-движок и свой JavaScript-код. Далее JS-приложение начинает создавать нативные объекты при помощи ReactNative и управляет ими. Так как архитектура ReactNative позволяет осуществлять обновление JS-кода без перезагрузки приложения, то обновление кроссплтаформенной части допускается без обязательной перепубликации в магазине приложений.
Рис. 11. Архитектура ReactNative [8]
При создании приложений на ReactNative требуется опыт JavaScript, а также хорошее знание iOS и Android. Интеграцию нативной и кроссплатформенной частей легко сделать по официальной документации.
Пользовательский интерфейс является полностью нативным, но имеет ограничения и особенности при стилизации из JS-кода.
Решения схожие с Xamarin.Forms предлагают писать кроссплатформенный код на каком-то одном языке, в данном случае на C#.
Библиотека Xamarin.Forms работает поверх классического Xamarin и предоставляет механизмы виртуализации пользовательского интерфейса и дополнительную инфраструктуру.
Рис. 12. Архитектура Xamarin.Forms [8]
Xamarin-приложение состоит из двух частей: нативной и кроссплатформенной (среда Mono). Эти части общаются друг с другом через специальный мост (bridge). Вокруг каждого нативного класса и типа создается обертка для окружения Mono. Стоит отметить, что для разработки простых приложений не требуется глубоких знаний iOS, Android или Windows, а также их родных языков программирования. Архитектура Qt (рис. 13) позволяет портировать приложения в те операционные системы, которые имеют API для C++. Qt предоставляет собственную систему отрисовки пользовательского интерфейса на базе растрового движка или на базе Open GL, то есть приложение будет выглядеть нативным настолько, насколько оно стилизовано под каждую операционную систему.
Важным преимуществом Qt является хорошо продуманный, логичный и стройный набор классов, предоставляющий программисту очень высокий уровень абстракции. Благодаря этому программистам, использующим Qt, приходится писать значительно меньше кода.
Ещё одна отличительная способность – использование метаобъектного компилятора – предварительной системы обработки исходного кода.
Рис. 13. Архитектура Qt [8]
В данной дипломной работе для разработки мобильных приложений используется технология Xamarin.Forms. Данный выбор обуславливается тем, что доступ к инструментам для создания кроссплатформенных приложений является бесплатным. Кроме этого, Xamarin.Forms обладает рядом преимуществ: производительность приложений близка к нативным, используется единый стек технологий для всех платформ, для написания логики приложений используется один язык программирования (C#), предоставляется возможность быстрой разработки прототипов приложений, которые в дальнейшем могут развиваться в сложные приложения.
В том числе, язык программирования C# имеет много встроенных функций, использование которых позволят экономить время.
2. АНАЛИЗ МОБИЛЬНЫХ ПЛАТФОРМ ДЛЯ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ
2.1 Мобильная платформа BlackBerry OS
Мобильная платформа BlackBerry OS представляет из себя проприетарную платформу, созданную компанией Reseach In Motion для ее линии наладонных устройств. Благодаря встроенной поддержке множества офисных приложений, таких как корпоративная почта MIDP, позволяющая проводить синхронизацию с сетевыми протоколами Microsoft Exchange, Lotus Domino, Novell GroupWise.
Также мобильная платформа BlackBerry OS является самой популярной платформой в бизнес-среде. Разработка под платформу ведется на языка Java с использованием специального интерфейса для создания приложений – BlackBerry API. Текущая версия мобильной платформы BlackBerry OS 10.3.
Интерфейс операционной системы (далее ОС) представлен на рисунке 14.
Рис. 14. Интерфейс мобильной платформы BlackBerry ОС 10.3
2.2 Мобильная платформа Windows Phone
Мобильная платформа Windows Phone – это мобильная операционная система, разрабатываемая корпорацией Microsoft и предназначенная для использования в смартфонах и других мобильных устройствах. Первый релиз состоялся 11 октября 2010 года, текущая версия имеет название Windows 10 Mobile. Приложения для данной ОС разрабатываются при помощи средств разработки Visual C++ и .NET Compact Framework, также существуют некоторые сторонние среды для разработки. Интерфейс ОС представлен на рисунке 15.
Рис. 15. Интерфейс мобильной платформы Windows 10 Mobile
2.3 Мобильная платформа Android
Мобильная платформа Android – самая молодая из мобильных платформ.
Первый выпуск состоялся 23 сентября 2008 года.
Компания Google, сотовый оператор T-Mobile, производители оборудования HTC, Qualcomm, Motorola и другие – всего 34 компании – объединились в сообщество Open Handset Alliance, чтобы создать Android – первую открытую комплексную программную платформу для сотовых телефонов, и разработать технологии, которые должны значительно снизить стоимость разработки. Интерфейс ОС представлен на рисунке 16.
Рис. 16 – Интерфейс мобильной платформы Android 6.0.1
Мобильная платформа Android разработана на базе открытого программного обеспечения, используется ядро Linux. Разрабатывать приложения для мобильной платформы Android можно на языке программирования Java с использованием специального интерфейса создания приложений – API, разработанных корпорацией Google.
Текущей версией платформы для мобильных устройств и планшетов является Anroid 6.0.1 Marshmallow. На рисунке 17 изображен график обновления версии платформы Android.
Рис. 17 – График обновления версии мобильной платформы Android относительно времени
2.4 Мобильная платформа iOS
iOS – это мобильная операционная система, разрабатываемая компанией Apple Inc. Впервые представлена в 2007 году. Представляет из себя облегченную и специально доработанную версию операционной системы Mac OS X.
Мобильная платформа iOS устанавливается только на устройствах корпорации Apple (смартфонах iPhone, плеерах iPod Touch, планшетах iPad), использование других аппаратных платформ не разрешается. Разработка приложений под данную ОС происходит на языках програмирования С, С++ и Objective-C при помощи комплекта средств разработки – iPhone SDK. Это Unix-подобная система, использующая гибридное ядро Darwin. На рисунке 18 представлен интерфейс мобильной платформы iOS 9.
Рис. 18 – Интерфейс мобильной платформы iOS 9
3. ОСНОВЫ ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
3.1 Основы программного обеспечения для устройств
Многие , занимающиеся программного обеспечения, до 50% , выделенных на разработку , тратят на тестирование, что миллиарды по всему миру в . И все же, несмотря на громадные , знаний о сути явно не и большинство программных неприемлемо ненадежно после «основательного ».
О состоянии дел всего свидетельствует тот , что большинство людей, в области обработки , даже не правильно определить «тестирование», и это на самом главная причина .
Тестирование приложений в целом общим принципам , но и в силу некоторых имеет ряд . Этими обстоятельствами : специфичность операционных для мобильных платформ, компании-изготовители и конфигурации комплектующих, устройств как коммуникаторов и т. д.
основные моменты, на необходимо особое внимание при тестировании мобильных .
Размер экрана и -интерфейс.
проверить размеры элементов графического пользователя, при этом особое на возможность использования элементов.
Также проследить, за тем, чтобы в работы не возникало пустых , так как появление пустого часто приводит в недоумение [1].
удостовериться, что многократное нажатие на кнопку не падения приложения, так же проследить, приложение корректно нажатие нескольких одновременно. Дело в том, что ситуации с часто встречаются при с сенсорным экраном.
проверять использование в так называемых "" жестов (например, , doubletap), если , то соответствующий жест использоваться по , а если над каким-то действие, соответствующее не предусмотрено, то жест не должен. , в случае поддержки части приложения, должен использоваться по , если же нет выделять какой-то , то doubletap не должен ее [1].
Ресурсы устройства.
проконтролировать утечки памяти. это случается в приложениях с , содержащими большое информации, , длинные списки. также может во время длительной приложения, а при некорректно работающем изображений.
Необходимо корректность обработки нехватки для функционирования операционной , во время работы в активном или фоновом .
Обязательно проверить на целевом наличие всех приложением функций (, 3G, SD-карта и т. д.).
разрешения экрана и ОС.
Необходимо проверить приложения на устройствах с разрешениями . На экранах с высоким (например, ретина-экран) интерфейса и текст мельче, при приложения на устройстве с более низкого элементы интерфейса стать большими.
Необходимо возможность адаптации к портретной и альбомной устройства. [24]
убедиться, что приложение не быть установлено на не устройства. При этом тестирование на всех заявленных устройствах.
Необходимо поддержку требуемых для приложения на устройстве, т. к. некоторые могут урезать работы с некоторыми .
Реакция на внешние прерывания.
проверить работу в условиях эксплуатации устройства, а для устройств характерны изменения состояния: и исходящие звонки, SMS, MMS; устройства; в режим ожидания (в том и с защитой паролем); ориентации устройства в ожидания; и включение сети, , авиарежима, GPS; потеря с сервером или прокси ( есть, но не проходят); отключение и SD-карты, дополнительных ; зарядка устройства; с акселерометром; с физической клавиатурой ( в списке поддерживаемых есть такие) [3].
основные , характерные для мобильных , в некоторых типах .
Тестирование обновлений. обновления системы (по сравнению с компьютерами) требуют приложений, которое проходить и не требовать от пользователя знаний. Необходимо различные возможные установки (Wi-Fi, 3G, установка с ПК, на SD).