Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Критерии выбора средств разработки мобильных приложений (ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЯ)

ВВЕДЕНИЕ

На сегодняшний день все больше людей предпочитают мобильный и быстрый доступ к информации. С каждым годом процент пользователей мобильных версий сайтов растет, а, следовательно, компьютерные версии становятся все менее популярны.

Согласно информации сайта Wi-life.ru, количество различных мобильных устройств в 2017 г достигло уровня 7.7 миллиардов, что превысило всю человеческую популяцию в 7.1 миллиардов [5]. Статистика сайта Cossa.ru говорит о том, что мобильным телефоном в России владеет 98 процентов населения [4]. Следовательно, информацию стоит адаптировать именно под смартфоны, чем под персональные компьютеры.

Разработка мобильных приложений рассчитана на определенное предназначение. Некоторые программы позволяют повсеместно осуществлять соединение с сетью, другие указывают маршрут, третьи оказывают помощь в поиске магазина либо требуемого товара. Поэтому разработка приложений для мобильных устройств развивается и актуальна на сегодняшний день.

Объектом курсовой работы является разработки мобильных приложений.

Предметом курсовой работы является анализ критериев выбора средств разработки мобильных приложений.

Целью курсовой работы является анализ критериев выбора средств разработки мобильных приложений.

1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЯ

1.1 Понятие мобильного приложения

Мобильное приложение — это программное обеспечение, специально разработанное под конкретную мобильную платформу (iOS, Android, Windows Phone и т. д.). Предназначено для использования на смартфонах, фаблетах, планшетах, умных часах и других мобильных устройствах.

Мобильные приложения пишутся на языках программирования высокого уровня, а затем компилируются в машинный код операционной системы для получения максимальной производительности. Разработка приложений имеет свои особенности: мобильные устройства работают от батареи и комплектуются менее производительными процессорами, чем персональные компьютеры. Кроме того, современные смартфоны и планшеты повсеместно оснащены дополнительными устройствами, такими как гироскопы, акселерометры и фотокамеры, дающими уникальные возможности для расширения функционала приложения.

Обычно мобильные устройства продаются уже с некоторыми предустановленными приложениями. Остальные по желанию пользователя можно скачать (как платно, так и бесплатно) на специализированных сервисах: Apple AppStore, Google Play, Windows Phone Store и других. Первые магазины приложений, такие как Apple AppStore и Android Market, ставший впоследствии Google Play, появились в 2008 году. Спустя два года Американское диалектическое общество назвало термин «приложение» словом года.

По итогам 2018 года в каталогах двух самых крупных маркетов было порядка 3 млн приложений. Количество загрузок за один год превысило 300 миллионов [5].

Сегодня у каждой организации есть выбор в форме размещения информации. Очевидно, что ПК-версия сайта, это первое, что организация пытается разработать, однако на этом не стоит останавливаться. Дополнительно разработав мобильное приложение, содержащее весь контент ПК-версии, можно получить множество преимуществ и плюсов.

Одним из них является то, что приложение достаточно лишь один раз загрузить на мобильное устройство, и можно пользоваться им в любое время без подключения к интернету и повторного скачивания. Это особенно удобно в тех случаях, когда деньги на балансе телефона закончились, а приложением нужно срочно воспользоваться.

Использование приложений экономит время и избавляет от длительных ожиданий загрузки необходимых элементов (графика, изображение и ряд других), так как программа уже находится на телефоне в своём полном комплекте.

Создатели приложений могут разработать приложения для мобильных, которые будут подходить отдельно для каждого типа мобильного телефона или планшета. Так, для разных устройств могут быть предусмотрены различные функции, но они всегда остаются полезными и актуальными для их владельцев.

Пользователи приложения, как правило, устанавливают связь с нужным сайтом, оставаясь при этом в курсе всех происходящих событий и новостей определённой организации. Сегодня это имеет особую важность для тех, кто в своей деятельности большое внимание уделяет использованию интернета.

Совершенствование приложения и укрепление авторитета и репутации компании взаимосвязаны.

1.2 Классификация мобильных приложений

Классификация мобильных приложений достаточно сложная, так как многие из них являются «гибридами», то есть предлагают пользователю функции различного рада. Но все же некоторые виды мобильных предложений можно классифицировать однозначно.

Контентные приложения очень популярны среди пользователей мобильных приложений. На сегодняшний день такие виды активности, как прослушивание музыки, просмотр различных фильмов, клипов и фотографий, а также чтение цифровых книг являются максимально доступными и удобными для любого владельца мобильного гаджета, что и рождает спрос на данный сегмент мобильных приложений (рисунок 1).

Рисунок 1 — Пример контентного приложения

Бизнес-приложения (рисунок 2) стали необходимым средством для многих пользователей, которое поможет им упростить их офисную работу. В настоящий момент сегмент бизнес-приложений является предпочтительным для инвесторов, но сложность для данного сегмента составляет перевод бизнес-задач на мобильные телефоны.

Рисунок 2 — Пример бизнес-приложения

Мобильные игры (рисунок 3) наиболее востребованы на рынке мобильных приложений на сегодняшний день. Разработчики придумывают новые игры или совершенствуют уже выпущенные. Игры притягивают внимание все большей аудитории. Они становятся неотъемлемой частью жизни многих пользователей.

Рисунок 3 — Мобильная игра

Мобильные социальные сети с каждым днем набирают все большую популярность, наращивая многочисленную аудиторию по всему миру. Социальными сетями на сегодняшний день пользуется все большее количество людей, на что оказывает влияние другая уже сложившаяся тенденция: увеличение количества пользователей смартфонов [12]. Можно сказать, что это самый популярный вид мобильных приложений, так как при покупке смартфона на нем уже по умолчанию будет установлена одно или несколько аналогичных мобильных программ.

Рисунок 4 — Социальная сеть

1.3 Обзор мобильных операционных систем

В настоящее время существует хороший выбор языков программирования для разработки мобильных приложений. Это связанно с тем, что для различных мобильных устройств, приходится использовать различные языки программирования. Обычно это связано с тем, что мобильные устройства имеют различные операционные системы (ОС).

Windows Phone SDK. На данный момент, последняя версия инструментария доступна в версии Windows Phone SDK 7.1 ReleaseCandidate в лицензии «GoLive» с возможностью разрабатывать свои приложения и публиковать их в Windows Phone Marketplace. WindowsPhone SDK 7.1 ReleaseCandidate содержит следующие компоненты:

• Windows Phone SDK 7.1;

• Windows Phone Emulator;

• Windows Phone SDK 7.1 Assemblies;

• Silverlight 4 SDK and DRT;

• Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0;

• Expression Blend SDK for Windows Phone 7;

• Expression Blend SDK for Windows Phone OS 7.1;

• WCF Data Services Client for Windows Phone;

• Microsoft Advertising SDK for Windows Phone.

Платформа Windows Phone (рисунок 5) не просто очередная платформа для мобильных устройств. Она содержит в себе не только технологическую составляющую, но и полностью проработанную концепцию дизайна интерфейса и взаимодействия с пользователем под названием Metro–дизайн или стиль Metro.

Рисунок 5 — Средство разработки для Windows Phone

Вся разработка под Windows Phone ведется в среде VisualStudio. Среда является очень удобной для разработки и отладки приложений. Для мобильных приложений под Windows Phone отладка происходит с помощью эмулятора Windows Phone с помощью среды разработки Windows Phone.

iPhone SDK. Разработка под iPhone под операционную систему iOS возможна только под Mac OS X. Но в Интернете можно найти статьи, как можно программировать и на Macintosh и даже на VM. Стоит заметить, что Apple предоставляет инструменты бесплатно, платить придется за подписку разработчика.

Рисунок 6 — Средство разработки для iPhone

Для написания программ под iPhone предлагается использовать ObjectiveC (рисунок 6). При этом есть возможность писать так же и на C и на C++ (для этого необходимо изменять расширения файлов с .m на .mm).

Правда при этом полностью уйти от ObjectiveC не удастся, почти весь API рассчитан именно на него, исключения составляют, например OpenGL (хотя для его инициализации придется использовать несколько строк кода на ObjectiveC), так же полностью доступны стандартные библиотеки C/C++ (так, например, с файловой системой можно работать как средствами SDK на ObjectiveC, так и используя стандартную библиотеку С для ввода/вывода (fopen(), fgetc(), etc()).

Отладка приложения происходит с помощью среды XCode и эмулятора iPhone установленного в ней.

Android SDK. Для разработки под Android можно использовать среду Eclipse которая до недавнего времени был наиболее популярной средой разработки Android, многие опытные разработчики продолжают его использовать или Android Studio (рисунок 7) — более молодая среда разработки, тем не менее быстро набирающая популярность как более интеллектуальная и удобная. Кроме того, Android Studio активно развивается и поддерживается компанией Google как официальная среда разработки андроид–приложений.

Основой среды Android Studio для разработки Android–приложений стал проект российской компании IntelliJ IDEA.

Рисунок 7 — Средство разработки для Android

Компания Google в рамках конференции Google I/O представила собственную интегрированную среду разработки Java–приложений для Android под названием Android Studio. Эта среда базируется на открытой платформе IntelliJ IDEA, которая была разработана питерской компанией JetBrains.

До настоящего времени у Google не было собственной интегрированной среды разработки (Integrated Development Environment – IDE), с помощью которой разработчики бы могли писать Android-приложения. Поэтому они пользовались другими доступными средами. Наиболее популярными являются: Eclipse, свободная среда, поддерживаемая организацией Eclipse Foundation; свободная среда NetBeans и IntelliJ IDEA.

Существуют различные версии SDK, которые используются для написания кода для различных версий Android. В настоящее время большое распространения получили версии 2.2 и 2.3. Поддерживается почти полная обратная совместимость версий.

Кроме разработки на языке Java поддерживается возможность более низкоуровневая разработка с использованием Android NDK (Native Development Kit) на языке C/C++.

Если совсем еще недавно можно было утверждать, что создание приложений лучше начинать с iOS–устройства, то на сегодня ответ уже не столь очевиден. Андроид–устройства заполонили рынок и их число уже превысило общее предложение гаджетов, работающих на iOS. Поэтому желая осуществить заказ на игры на Android или другого софта, вы планируете открыть свой бизнес для огромной аудитории [13].

2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ СРЕДСТВ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ И КРИТЕРИЕВ ИХ ВЫБОРА

2.1 Анализ программного обеспечения для разработки мобильных приложений

Современный человек делает все для того чтобы достигнуть максимального комфорта и удобства в своей жизни. Для этого сегодня специалистами в области информационных технологий разрабатываются мобильные приложения, которые позволяют решать огромное количество задач в разных областях жизнедеятельности человека.

Все мобильные приложения условно можно поделить на программы для рабочих целей и на развлекательные программы. Первые позволяют контролировать и оптимизировать рабочие процессы, составлять аналитическую отчетность, выполнять иные функциональные задачи. Вторые – позволяют интересно и разнообразно проводить время.

Однако, как показывает практика, большим спросом сегодня пользуется специализированный софт. Также именно на таких программах можно делать неплохие деньги, ведь современные компании не жалеют инвестиций в продукты, которые могли бы в какой-либо степени оптимизировать или упростить имеющиеся бизнес-процессы.

На протяжении последних лет показатель, характеризующий уровень спроса на мобильные устройства, постоянно растет. Такая статистика позволяет сделать вывод о том, что разработка мобильных приложений актуальна и целесообразна.

Мобильное приложение – это программный продукт, предназначенный для использования на мобильных устройствах, оснащенных операционной системой. Мобильные приложения могут быть установлены на устройстве с завода изготовителя либо скачаны с флэш – носителей или загружены из онлайн магазинов, где за это может взиматься плата либо доступны в бесплатном доступе.

Для того чтобы наглядно рассмотреть достоинства и недостатки существующих типов мобильных приложений, приведем в качестве примера сравнительную таблицу основных критериев см. табл. 1.

Таблица 1 – Сравнение основных видов мобильных приложений.

Классифицировать мобильные утилиты можно по нескольким типам, например по разновидности работы:

1. Приложения переднего плана. К ним относят программы работающие в моменты, когда никаких других не активизировано, например мобильные игры.

2. Фоновые приложения. Используются в те моменты, когда требуется произвести настройку

3. Смешанные программы. Работают в обоих выше перечисленных режимах, хотя и располагают определенной степенью интерактивного воздействия. К ним можно отнести мобильные антивирусные программы.

4. Виджиты. Приложения отображающие информационные сообщения на рабочем столе. В качестве примера можно привести утилиты, предоставляющие информацию о заряде батареи мобильного устройства или время.

5. Сложные приложения. К ним относятся, например, программа – утилита, которая включает в себя следующие инструменты: очистка кэш памяти, отображение информации о мобильном устройстве, удаление установленных приложений.

Классификация мобильных приложений по роду деятельности:

1. Контентные приложения. Обладают большой популярностью, основные задачи которые они выполняют это: прослушивания музыки, просмотры фильмов и фотографий, чтения цифровых книг и журналов. Так же к ним можно отнести информационные приложения, например, предоставляющие информацию о погоде, расписания городского транспорта, свежих новостях, рецепты или разработанные специально к каким-либо намечающимся событиям, таких как спортивные чемпионаты, выставки или форумы. Ну и конечно специальные рекламные приложения.

2. Бизнес приложения. Сделаны для помощи в офисной работе, расчетах, обмене служебными данными, а также обеспечивающие доступ к интернет –магазинам, платежным системам и банковским счетам. На данный момент сегмент бизнес –приложений является более интересным для инвесторов, но сложность состоит в переводе бизнес –задач на мобильные устройства.

3. Мобильные игры – это наиболее востребованный сектор мобильных приложений.

4. Мобильные социальные сети. Данный вид с каждым днем набирают все большую популярность, увеличивая многочисленную аудиторию во всех странах мира, чему способствует развитие мобильного интернета расширяющего свою доступность по всей планете.

Классификация мобильных приложений по виду монетизации:

1. Платное приложение, реализуемое посредством продажи в магазине.

2. Бесплатное приложение с платной подпиской.

3. Бесплатное приложение со встроенными покупками.

4. Бесплатное приложение с рекламой внутри приложения.

Жизненный цикл – множество процессов, происходящих с момента изначального утверждения решения о разработке программного продукта, до его окончательного вывода из использования.

Модель жизненного цикла – это схема выполнения определенных задач в процессах, поддерживающих разработку, эксплуатацию и сопровождение программного обеспечения, а также отражающая жизненный цикл, начиная от первоначальных требований к ней и довывода из эксплуатаций.

Разработка модели жизненного цикла основывается на изначальной идее проектируемого программного обеспечения, его стандартов, предоставляющих возможность сформировать схему исполнения работ по предпочтению разработчика и заказчика. Модель жизненного цикла делится на процессы осуществления, которые включают в себя работы и задачи, производимые в определенном процессе, и при их окончании реализовывать переход к следующим процессам модели. Моделей жизненного цикла существует множество, но только три из них классифицируются как основные: каскадная, спиральная, эволюционная.

Прежде чем провести сравнение сред для разработки, нужно отметить что основным набором инструментом которым должна обладать платформа для программирования мобильных приложений, является Android SDK. В состав Android SDK входят такие виды инструментов как:

– SDK manager (загружает и устанавливает компоненты Android SDK);

– Debug Monitor (предназначен для отладки графического интерфейса);

– Android Emulator ( инструмент для тестирования приложения непосредственно на компьютере);

– AVD manager (создает виртуальные Android устройства)

– Android Debug Bridge (инструмент для управления эмулятором)

В качестве первого примера рассмотрим официально рекомендуемую Google платформу Android Studio.

Android Studio. Android Studio основана на IntelliJ IDEA. Является официальной платформой для программирования Android приложений, доступна в бесплатном доступе. Обладает уже встроенным Android SDK.

Платформа Android Studio является обще признано самой удобной средой для тестирования и разработки приложений для Android. Компания Google сделала этот программный продукт с максимально полезным набором инструментов для разработки проектов под мобильные устройства. Процесс создания каждого приложения стал динамичней и проще, по сравнению с Eclipse. Это стало возможным, благодаря возможности отображения главных рабочих элементов в самой структуре будущего приложения, что позволяет более рационально подойти к разработке.

Пользователи отмечают такую полезную функцию, как просмотр в режиме реального времени всех дополнений. Так же среда позволяет разрабатывать приложения для разных версий Android.

Процесс работы на данной платформе значительно удобней Eclipse, благодаря доработке пользовательского интерфейса. В следствие чего написание кода стало более продумано, что позволяет легко ориентироваться при разработке больших по объёму проектов. Есть функция перетаскивания функциональных элементов в самой программе, что упрощает редактирование информации.

Главные функции Android Studio:

– присутствие справочника;

– наличие динамичного эмулятора для устройств на базе платформы Android;

– понятный интерфейс;

– отправка push-сообщений для приложений через любые облачные сервисы сразу на устройства под Android.

– возможность быстро локализовать приложения;

– есть опция маркировки кода;

– доступно большое число вариантов смены разрешения, размеров экрана;

– наличие инструментов для повышения качества проектов и монетизации;

– поддержка отслеживания эффективной работы рекламных объявлений;

– дружественное отношение с бета-тестерами;

– отображение всех действий (изменений) в проекте в режиме реального времени.

Инструменты Android Studio:

– Плагин Gradle для сборки приложений;

– Облачная среда Google;

– Функция ProGuard;

– Редактор WYSIWYG;

– Инструмент lint, создан для мониторинга проблем связанных с производительностью и совместимости версий;

– мастера основанные на шаблонах для разработки конструкций и компонентов Android.

– Google Cloud Messaging и App Engine сервисы могут быть интегрированы с помощью поддержки Google Cloud Platform.

Одним из основных преимуществ Android Studio является система сборки Gradle, которая интенсивно развивается компанией Google. Gradle обладает такими полезными функциями как:

– Создание различных вариантов сборки вашего приложения.

– Создание простых задач в виде скрипта.

– Возможность управления зависимостями и автоматически подгружать их.

– Настройка хранилища ключей.

Основные возможности среды «Android Studio»:

– Посредством пользовательского интерфейса можно перетаскивать компоненты;

– для ускорения разработки доступен многофункциональный редактор с различными инструментами;

– удобный плагин Gradle, позволяющая производить сборку автоматически;

– для проверки совместимости с различными платформами, а так же для анализа производительности возможно проведение тестирование;

– инструменты улучшения функций рекламы и управления монетизацией в приложениях;

– инструменты для обозначения и обработки кода;

– Google Cloud Messaging – push уведомления для ваших приложений посылающихся с сервера на мобильные устройства;

– рекординг видео с экрана, данная опция доступна только для Android 4.4.2 и выше;

– комфортная локализация приложений;

– для разработки кода доступны шаблоны и помощники;

– реорганизация кода;

Eclipse IDE. Платформа имеет стандартный набор для разработчика, но Eclipse различается от других IDE по нескольким основным аспектам. Данная среда разработки абсолютно нейтральна к платформе и языку программирования.

Eclipse поддерживает языки: Cobol, Java, C++, C. Но в добавок к этому есть функция добавления интересующего вас языка, к примеру таких как: C#, PHP, Python, Ruby. Проекты по реализаций данных языков уже доступны на данный момент.

Среда Eclipse доступна, при помощи Eclipse Consortium под видом скомпилированного исполняемого файла для Windows, Linux и др.

Eclipse представляет из себя платформу, в которой разрабатываются плагины, далее встраиваемые в неё. Одним из таких является Android Development Tools (ADT). Плагин ADT намного расширяет возможности данной среды разработки, с помощью него можно быстрей разрабатывать свои проекты под Android, создавать интерфейсы приложений, импортировать компоненты Android Framework API, отлаживать приложения, использовать Android SDK инструменты, а так же можно экспортировать подпись (без знака) APKs в порядке распространения своего приложения.

Плагин ADT включает в себя множество различных инструментов и несмотря на то что является дополнительным модулем, всё же обладает большим объёмом кода. Далее подробней разберем основные инструменты ADT:

– Редактор макетов Android. Макеты интерфейса в ADT создаются на языке XML. Среда предоставляет пользователю визуальный редактор для просмотра макетов. Когда вы открываете файл шаблона, плагин ADT автоматически запускает этот редактор для просмотра и редактирования файла. У данного инструмента удобный интерфейс предоставляющий удобное переключение между XML – редактором и визуальным редактором. На данный момент редактор макетов претерпел много изменений по сравнению с предыдущими версиями которые отличались более скромным функционалом и поэтому редко использовались. Теперь после его редактирования и дополнения редактирования макетов Android считается как основной метод работы. Для более корректной работы макетов на устройствах предусмотрена их авто – спецификация.

– Редактор описаний Android. Файл описания входит в состав проекта Android. Его роль заключается в том, что он информирует о том, как установить и использовать архивные программы, в котором состоит разработанный проект.

В плагине ADT присутствует XML – редактор специально для изменения описаний. И это не единственный инструмент в котором можно изменять описания, так же это можно сделать в компоновщике приложений.

– Сборка приложении Android. Автоматизированная сборка в Eclipse позволяет объединять в готовый продукт исходный код и ресурсы проекта реализуя его к развёртыванию на устройстве, либо на эмуляторе. В ADT инструментом для выполнения таких операций является система Ant. В Android конечным результатом сборки проекта является файл АРК.

– Запуск и отладка приложений Android. Инструментом для запуска и отладки в Eclipse является adb и DDMS позволяющие развёртывать проект на реальном или виртуальном устройстве. DDMS реализует обмен информаций с AVD, так же в нём учавствует среда времени исполнения Dalvik. DDMS

– Виртуальные устройства Android. QUME – подобные эмуляторы служат основой для виртуальных устройств в Eclipse, эмитирующие аппаратное обеспечение Andriod. Для конфигурирования виртуальных устройств Android используется диспетчер SDK и AVD, задающий такие параметры, как объем эмулируемых запоминающих устройств и параметры экрана. Кроме того, он позволяет указывать, какой образ системы Android будет использоваться с каким эмулируемым устройством.

– Виртуальные устройства Android обеспечивают тестирование программ в довольно широком диапазоне системных параметров. Для обеспечения такого широкого диапазона потребовалось бы достаточно большое количество реальных устройств, достать которые для тестирования может быть затруднительно. Поскольку QEMU – подобные эмуляторы оборудования являются универсальными в них можно тестировать устройства и образы систем которые пока не являются доступными.

– Диспетчер SDK и AVD. Android SDK управляет конфигурацией QEMU с помощью специального пользовательского интерфейса.

– Layoutopt – инструмент диагностирования проблем связанных с компоновкой элементов Andriod, написанных на языке XML.

– Monkey – это компонент для автоматизированного тестирования, работающий на эмуляторе или устройстве. В состав SDK входит система adb которая активирует Monkey.

– Keytool используется для создания временных отладочных ключей. Он генерирует ключи шифрования.

– Zipalign в готовых версиях приложений обеспечивает оптимизированный доступ к данным.

– Draw9patch – это специализированный инструмент для рисования состоящий в арсенале ADT.

Intel XDK. Инструмент для разработки кросс – платформенных приложений, так как используется язык HTML5 (сочетает в себе HTML язык разметки, CSS, JavaScript). Поддерживает все ступени разработки, то есть редактирования кода, функция эмулятора мобильного устройства, отладка, профилирование и публикация в магазине. Одной из полезных возможностей XDK является постройка приложения в облачном сервисе. В нём не нужно устанавливать дополнительные плагины, как Android SDK в Android studio или XCODE для IOS, просто код пересылается на сервер и там собирается автоматически. Так же XDK поддерживает все основные платформы мобильных устройств, что выгодно его выделяет перед нативными средами разработки.

XDK поддерживает такие игровые среды как: Cocos2d, Phaser, Pixi и EaselJS. С помощью XDK разрабатывать игры стало ещё удобней.

Данная среда содержит удобные инструменты для отладки, тестирования, сборки и анализа ваших приложений.

Intel Mobile Development Kit for Android. Специализированная среда разработки под Android от Intel. Обладает мощными инструментами для создания отличных приложений и игр, содержащие все основные компоненты платформы Intel System Studio.

Поддерживает языки C, C ++, C #, Fortran, Java. Благодаря мощным инструментам для отладки графической составляющей программного продукта, отлично подходит для разработчиков игр, которые в свою очередь положительно отзываются об инструментах MDK for Android.

Рассмотрим, какими основными компонентами обладает данная среда:

– Intel VTune Amplifier. Инструмент для оценки системы, обладает расширенным анализом и настройкой производительности ЦП.

– Intel Energy Profiler. Средство разностороннего анализа энергопотребления и производительности для разработчиков системного ПО.

– Intel C++ Compiler. Передовой отраслевой компилятор С++ для совершенствования производительности высокооптимизированных систем Android и оригинального кода С++.

– Intel Integrated Performance Primitives. Обширная библиотека высокопроизводительных компонентов для создания программного кода, обработки сигналов, данных и мультимедиа.

– Анализатор видеосистем. Оптимизирует производительность видеосистем на базе GPU. Осуществляет анализ системной производительности в режиме реального времени.

– Анализатор платформ. Позволяет выполнять исчерпывающий автономный анализ разрабатываемого приложения.

– Анализатор кадров. Анализирует нагрузку видеосистем с получением подробных данных на уровне схем Open GL ES.

Intel Beacon Mountain. По сравнению с XDK данная среда ориентирована только на Android платформу. Имеет полезную функцию автоматического обновления, что позволяет пользователю не сосредотачиваться на поддержке актуальности своей платформы. Beacon Mountain разработана на базе Eclipse и оптимизирована рядом инструментов произведенных Intel:

– Intel* Threading Building Blocks (Intel* TBB) – очень популярная библиотека шаблонов C++;

– Intel* Integrated Performance Primitives (Intel* IPP) Preview – библиотека адаптированной обработки информаций и графики.

– Intel* Graphics Performance Analyzers (Intel* GPA) System Analyzer – позволяет производить мониторинг загруженности системы при работе с элементами OpenGL в реальном времени.

– Процессор ускоряющий работу эмулятора с помощью технологии Intel*VT.

XCode. Среда программирования для платформ IOS, OS X, WatchOS, tvOS разработанная компанией Apple. Поддерживаемые языки программирования: С, C++, Objective-C,Objective-C, Swift, Java, AppleScript, Python, Ruby.

Основные инструменты XCode:

– IOS Simulator. Инструмент для быстро просмотра разрабатываемого приложения.

– Dash. Это менеджер сниппетов и браузер документаций.

– TextExpander – это популярная утилита для управления отрывками кода, привязанных к пользовательским сочетаниям клавиш. Здесь даже представлены заглушки для большей кастомизации.

– TestFlight – отличный сервис для передачи тестовых билдов команде бета-тестеров. Этот сервис собирает отчеты об ошибках, пользовательские отзывы, и позволяет вам отслеживать пользовательские сессии.

– GDB. Отладчик кода.

«1С: Предприятие 8. Расширение для КПК». Нельзя обойти вниманием и российского производителя программных продуктов компанию 1С, которая разработала платформу «1С:Предприятие 8.

Расширение для карманных компьютеров». Среда предназначена для работы с базами данных «1С Предприятия 8» на мобильных гаджетах, а так же разработки приложений для них. Обладает хорошим инструментарием для разработки:

– Редактор мобильных приложений;

– Платформа для исполнений мобильных приложений;

– Сервер мобильных приложений;

– Компонента обмена данных.

Данная платформа имеет довольно узкую специфику по сравнению с западными аналогами, но при разработки проекта связанного с базами данных и бизнес логикой, является отличным решением.

Ниже приведена таблица 5 сравнения сред для разработки мобильных приложений, составленная на основе анализа выше перечисленной информации. Основными критериями, которой являются: многообразность языков программирования, удобство пользовательского интерфейса, разнообразие для разработки мобильных платформ, монетизация среды разработки.

Таблица 2 – Сравнение сред для разработки мобильных приложений.

Исходя из проведенного сравнения, более рентабельно использовать платформу Android Studio. В первую очередь, потому что у неё самый удобный пользовательский интерфейс, много доступного материала для обучения, вполне достаточный спектр языков программирования, бесплатность пользования и самый большой рейтинг целевой платформы в мире (согласно Kantar Worldpanel Comtech доля пользователей Android в мире составляет 68% на первый квартал 2018).

2.2 Сравнительный анализ методов разработки мобильных приложений

Рынок мобильных устройств непрерывно растет и развивается. Приблизительное число разработчиков мобильных приложений на сегодняшний день составляет 2,3 млн чел. Это означает, что каждый восьмой из всех разработчиков в мире создает мобильные приложения. В 2013 г. компания «Apple» во время World Wide Developer Conference объявила, что в AppStore опубликовано уже 1,25 млн приложений, которые пользователи скачали 50 млрд раз, а разработчики получили доход в 5 млрд долл. США. Растет потребность в разработке качественного и соответствующего современным тенденциям продукта. Рассматривая вопросы создания и реализации мобильных приложений, следует начать с выбора технологий и методов разработки.

Оценивая технологии разработки мобильных приложений, следует отметить, что данное направление требует выбора критериев оценки. К основным относятся следующие критерии:

– время разработки;

– наличие специалистов;

– удобство разработки и отладки;

– документация и техническая поддержка;

– скорость работы;

– юзабилити;

– охват платформ.

Данные пункты можно объединить, оставив самые важные, а именно: выбор платформы и функциональность для определения наиболее важных критериев разработки, для конкретного приложения, а также его коммерческого успеха.

Сфера использования мобильных приложений разделена на части, в первую очередь, операционными системами, используемыми в мобильных устройствах. Ниже приведена статистика использования различных мобильных операционных систем в мировом масштабе на конец 2018 г. [1]:

Android – 82,8%;

iOS – 13,9%;

WindowsPhone – 2,6%;

BlackBerry OS – 0,3%;

others – 0,4%.

Критерием выбора операционной системы для разработки также является коммерческий успех приложений. Несколько лет назад статистика монетизации приложений говорила о том, что разработчики для iOS получают дивиденды более чем в 4 раза большие, чем разработчики для Android. На данный момент ситуация для Android-разработчиков стабилизируется и уровень доходов от создания приложений для Android выходит на один уровень с конкурентами от Apple, что, в свою очередь, делает приоритетными Android-разработчиков. Таким образом, очевидно, что при создании приложения стоит отдать предпочтение разработке приложений для операционной системы Android [2].

Однако это лишь финансовая и статистическая стороны вопроса. Их стоит рассматривать в совокупности с тем, какой функционал следует получить после реализации проекта, что также является критерием при анализе технологий разработки мобильных приложений.

В зависимости от выполняемых функций следует определить, какого типа будет приложение.

На данный момент существует три вида приложений для мобильных устройств:

– нативное приложение;

– гибридное приложение;

– web-приложение.

Рассмотрим подробнее. Нативными для пользователя являются приложения, которые требуют установки. В целом это верно, как и то, что такие приложения разрабатываются специально под мобильные платформы iOS, Android, WindowsPhone. Поэтому от разработчика требуются навыки программирования в конкретной среде разработки, например, это могут быть xCod, eclipse, iPhone SDK, Android SDK. Реализуя проект, можно обойти некоторые вопросы предпочтения пользователей той или иной платформы, разрабатывая продукт в кроссплатформенных средах, таких как Appcelerator Titanium, Kony Platform, Adobe Phone Gap. Написание кода ведется на простых для понимания языках – HTML, JavaScript, CSS. В настоящее время функциональность мобильных приложений, разработанных на платформах Appcelerator Titanium, Kony Platform, Adobe Phone Gap, практически не уступает приложениям, которые написаны на объектно ориентированных языках программирования высокого уровня, таких как C++ и Java, а их использование на разных операционных системах и относительная простота разработки дает большой плюс этим приложениям.

Готовое приложение приобретает приятный внешний вид и беспроблемное взаимодействие приложения с мобильной операционной системой. Нативное приложение также намного опережает гибридные приложения и web-приложения в вопросах безопасности. Такие приложения с наименьшим поглощением ресурсов используют камеру, микрофон, акселерометр, плеер и прочие функции. Условно нативные приложения можно поделить на две группы: приложения, которым необходимо интернет-соединение, и офлайн-приложения.

Web-приложения, в свою очередь, имеют свои отличия от нативного приложения.

Пользоваться обычным сайтом на смартфоне неудобно, так как иногда верстка сайта приобретает неприемлемый вид, и работать с ним невозможно. Web-приложения создаются для того, чтобы пользоваться сайтом с телефона. По своей сути, это тот же сайт, оптимизированный под мобильные устройства. Загружая web-приложение через браузер телефона или планшета, происходит перенаправление пользователя на специальный поддомен (m.example.com, mobile.example.com и т. д.). В отличие от нативного приложения, web-приложения устанавливать не нужно – они работают в браузере телефона. Поэтому от модели телефона и его мобильной платформы ровным счетом ничего не зависит. Также вне зависимости от платформы web-приложения не могут работать с нативными функциями телефона.

Грань между web-приложением и мобильным сайтом очень тонкая, но разница есть. Сайт содержит более статичную информацию и представляет собой нечто вроде цифровой брошюры. В web-приложении пользователь может управлять какой-то частью этой информации – создать собственные страницы, менять местами ссылки, тексты и прочее, что делает его очень динамичным.

Web-приложения – это онлайн-сервисы, которые раньше разрабатывались на Flash, а теперь на HTML 5.

Говоря о web-приложениях, следует отметить современную тенденцию к аналогичным вариантам реализации сайта для мобильных устройств. К таковым можно отнести создание: Адаптивного дизайна. Для реализации адаптивного дизайна обычно используются CSS3 MediaQueries. В зависимости от размера экрана пользователь будет видеть разную картинку.

Преимуществами адаптивного дизайна является удобство разработки и постоянный URL сайта. Однако есть и недостатки, такие как медленная загрузка из-за большого объема сайта и переизбыток функций, не нужных для портативного доступа.

RESS (Responsive Design + Server Side). Использование RESS-технологии предполагает адаптацию сайта к конкретному устройству. Из плюсов можно отметить минимизацию трафика и возможность использования таргетирования, т. е. соответствующего контента для разных устройств.

Из минусов – сложность в разработке и не налаженный механизм определения устройств со стороны самих устройств.

Отдельной мобильной версии сайта. Отдельная мобильная версия, она же web-приложение, имеет множество плюсов, таких как быстрота и удобство пользования, а также минусов, таких как наличие разных URL мобильной и десктопной версии, а для кого-то и ограниченность в контенте, который урезается для мобильной версии [3].

Гибридное приложение объединяет в себе функции нативного приложения и web-приложения. Это кроссплатформенное приложение, которое имеет возможность работать с программным обеспечением телефона. Эти приложения, как и нативные, загружаются из магазина приложений, но данные обновляют автономно. Поэтому им всегда нужно подключение к Интернету – без него web-функции не работают. Разработка гибридного приложения дешевле и быстрее, чем создание нативного приложения. Разница между ними практически не ощущается, поэтому гибридные технологии наиболее популярны.

Если приложение не может работать без нативных функций мобильных устройств, если очень важна высокая скорость обработки данных (игры, социальные сети, геолокация), то лучший вариант – это нативное приложение. Когда скоростью работы можно пренебречь, можно применять разработку гибридного приложения. В случае если пользователю нужна только информация, которую он может получить с телефона при наличии Интернета, следует обратить внимание на разработку web-приложения.

Подводя итоги, следует разбить выбор среды разработки и применяемых технологий на два этапа: определение целевой аудитории и определение функций, которые должно выполнять приложение. Существует множество основных языков программирования, таких как Swift, C#, C++, Java, JavaScript, PHP, HTML, CSS, которые можно применять при разработке приложений для мобильных устройств. Таким образом, возможности современных технологий разработки позволяют создавать мобильные приложения различной сложности. Выбор той или иной платформы зависит от бюджета и требований, предъявляемых к будущему приложению.

2.3 Сравнительный анализ критериев выбора средств разработки мобильных приложений

Попробуем выделить наиболее важные критерии при выборе интструмента для разработки мобильных приложений и проранжировать по ним средства разработки. Для сравнения возьмем наиболее популярную платформу iOS и нативное средство Objective-C с iOS SDK и 2 фреймворка: Appcelerator Titanium и PhoneGap

  1. Нативность. Показатель достаточно важный, и его важность только растет со временем, потому что мобилильные ОС развиваются очень быстро и глупо не пользоваться теми возможностями, которые предоставляет каждая из них. По этому показателю выигрывает, безусловно Titanium, но оба фреймворка проигрывают iOS SDK, которым вынуждены пользоваться
  2. Производительность. Безусловным лидером и тут является iOS SDK. Titanium, конечно, уступает ему, но за счет того, что все элементы интерфейса в итоге становятся теми же, что и в Objective-C выигрывает у PhoneGap, который проигрывает по производительности, за счет того, что весь интерфейс помещается в webView и при серьезных объемах данных этот интерфейс заметно подтормаживает. Также стоит отметить, что очень сложно застваить работать Titanium и PhoneGap-приложения долго без crashes. Видимо, это связано с тем, что освобождение памяти реализовано в них совсем не идеально. Утешает лишь то, что разработчики постоянно их совершенствуют и исправляют ошибки
  3. Кроссплатформенность. Тут уже уверенно лидирует PhoneGap с 7 платформами. Titanium — 3 платформы (правда, как он работает с BlackBerry мало кому известно). Ну, а iOS SDK на то и iOS SDK
  4. Скорость разработки. Здесь все совсем не очевидно. На первый взгляд кажется, что в порядке убывания скорости это выглядит вот так: PhoneGap, Titanium, iOS SDK. Однако это верно для самых простых приложений, с увеличением сложности проекта картина меняется прямо пропорционально и для сложных проектов мы получаем все наоборот: iOS SDK, TItanium, PhoneGap. Аргументация этого тезиса заключена в следующих двух пунктах
  5. Разнообразие возможностей. Первое место у iOS SDK, второе я бы отдал Titanium — за счет того, что он поддерживает меньше платформ — методов и свойств у классов предоставляется больше, кроме того есть классы, работающие только с iOS, либо только с Android, предоставляя специфические возможности платформ. Но как только их станет не хватать — разработчику придется писать модули (а в случае с PhoneGap — плагины) — а для этого ему придется изучить Objective-C, после чего, вполне возможно, что он захочет переписать проект именно на нем
  6. Средства отладки. Отладчик в Xcode основан на GDB, кроме того в Xcode есть много дополнительных средств, таких как zombie objects, которые позволяют отследить ошибки освобождения памяти и масса возможностей в Instruments, который с четвертой версии встроен в Xcode. В Titanium уже около года назад — с выходом Titanium Studio — появился свой отладчик, который, однако, позволяет увидеть стек вызовов только JS-кода, поэтому причины ошибок, которых предостаточно, допущенных разработчиками Titanium, понять иногда бывает крайне сложно и на это уходит уйма времени. Средства отладки PhoneGap еще более скромны, в частности, нет таких возможностей, как точки останова и трассировка стека
  7. Документированность. Первое место — у iOS SDK. Второе можно отдать PhoneGap, так как многие из возможностей Titanium не документированы совсем, правда оправданием этому служит то, что доступен для скачивания проект Kitchen Sink, в котором реализовано все, что можно сделать с помощью Titanium

Ниже представлена сводная таблица

http://blog.htc-cs.ru/wp-content/uploads/2012/05/table.png

С помощью полученной информации можно сгруппировать приложения по принципу наиболее подходящего для них средства разработки.

ЗАКЛЮЧЕНИЕ

В ходе выполнения настоящей курсовой работы получены следующие результаты.

1. Рассмотрены модели жизненного цикла разработки программного обеспечения (ПО). В ходе анализа были изучены такие модели, как каскадная, каскадная с промежуточным контролем, V-образная модель, итеративная и инкрементная, а также спиральная модель.

Этапы разработки состоят из планирования, пользовательского проектирования, конструирования и переключения (конверсия данных и внедрение системы в организацию).

2. Изучены технологии разработки мобильных. Способы разработки веб-приложений разделены на несколько категорий: технологии, реализующие логику веб-приложений на стороне сервера; подходы, основанные на программировании или скриптах; каркасы веб-приложений и шаблоны проектирования (паттерны).

Рассмотрены архитектуры построения мобильных приложений с помощью базовых платформо-ориентированых языков программирования, выделены преимущества кроссплатформенной разработки. Выделены характеристики сред разработки, их преимущества и недостатки.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Вендров А. М. Case-технологии. Современные методы и средства проектирования информационных систем. / А. М. Вендров. Москва: Финансы и статистика, 2016. 544 с.

2. Гудов А. М., Завозкин С. Ю., Трофимов С. Н. Спецкурс. Технология разработки программного обеспечения. / А. М. Гудов, С. Ю. Завозкин, С. Н. Трофимов // Учебно-методический комплекс. Кемерово, КГУ, 2017. URL: http://unesco.kemsu.ru/study_work/method/po/UMK (Дата обращения 09.11.2018).

3. Зараменских Е. П. Управление жизненным циклом информационных систем: монография. / Е. П. Зараменских. Новосибирск: Издательство ЦРНС, 2014. 270 с.

4. Курапова М. В. Разработка методического обеспечения дисциплины «Управление жизненным циклом информационных систем». / М. В. Курапова // Выпускная квалификационная работа. Пермь, ПГГПУ, 2016. URL: http://vkr.pspu.ru/uploads/3681/Kurapova_vkr.pdf (Дата обращения 08.11.2018).

5. Лобода Ю. Г., Орлова О. Ю. Технологии разработки веб-приложений. / Ю. Г. Лобода, О. Ю. Орлова // Научные работы. Одесская национальная академия пищевых технологий. Одесса, Национальная библиотека Украины имени В. И. Вернадского, 2014. Вып. 46, том 1. С. 239-244.

6. Орлик С. В. Введение в программную инженерию и управление жизненным циклом ПО. / С. В. Орлик. Москва: Символ-Плюс, 2015. 183 с.

7. Сенина А. А. Обзор основных современных технологий разработки веб-приложений. / А. А. Сенина // XIII Всероссийская научно-практическая конференция «Технологии Microsoft в теории и практике программирования». Технологии разработки и проектирования информационных систем. Томск, ТНИПУ, 2010. Секция 6. С. 233-235.

8. Архитектуры ReactNative, Xamarin, PhoneGap и Qt. / Блок компании Microsoft. URL: https://habr.com/company/microsoft/blog/340116/ (Дата обращения 30.10.2018).

9. Веб-приложения. URL: http://megabook.ru/article/Web-приложения (Дата обращения 28.10.2018).

10. Информационное сопровождение деятельности. URL: http://comagency.ru/pr-support-of-evets (Дата обращения 25.10.2018).

11. Лекция 2: Информационные технологии и информационные системы. URL: https://www.intuit.ru/studies/courses/3735/977/lecture/14671?page=5 (Дата обращения 10.11.2018).

12. Лучшие среды разработки веб-приложений. URL: http://ccc.ru/magazine/depot/99_16/read.html?0801.htm (Дата посещения 28.10.2018).

13. Модели жизненного цикла программного обеспечения. URL: https://habrahabr.ru/post/111674/ (Дата обращения 09.11.2018).

14. Модель жизненного цикла RAD. URL: https://commons.wikimedia.org/w/index.php?curid=17833563 (Дата обращения 01.11.2018).

15. Настоящее и будущее решений для разработки кросс-платформенных мобильных гибридных приложений в корпоративной сфере. URL: http://files.tautechnologies.com/Events/2016_10_CEE_SECR/TAU_Technologies_CEE_SECR_2016_RUS.pdf (Дата обращения 29.10.2018).

16. Общие сведения о жизненном цикле приложения ASP.NET для служб IIS 7.0. URL: https://msdn.microsoft.com/library/bb470252.aspx (Дата обращения 23.11.2018).

17. Паттерны для новичков: MVC vs MVP vs MVVM. URL: https://habr.com/post/215605/ (Дата обращения 28.11.2018).