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

Критерии выбора средств разработки мобильных приложений (Android Studio)

Содержание:

Введение

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

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

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

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

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

1. Понятие мобильного приложения и его жизненного цикла

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

1.1. Основные виды и классификация мобильных приложений

Мобильное приложение может создаваться следующими способами:

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

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

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

Вид мобильного приложения

Доступ к функционалу приложения

Скорость работы

Стоимость разработки

Распространение через магазин приложений

Процесс одобрения

Нативный

Полный

Очень высокая

Высокая

Доступно

Обязательный

Гибридный

Полный

Высокая

Средняя

Доступно

Обязательный

Веб - приложение

Частичный

Средняя

Средняя

Не доступно

Отсутствует

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

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

Приложения, по роду деятельности, можно разделить на следующие группы[1]:

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

1.2. Жизненный цикл мобильного приложения

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

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

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

Рис. 1 – каскадная модель жизненного цикла

Достоинствами такой модели являются:

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

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

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

Рис. 2 - спиральная модель жизненного цикла

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

Достоинствами спиральной модели является:

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

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

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

Рис. 3 – Эволюционная модель жизненного цикла

Рассмотрим достоинства данной модели:

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

Недостатком является нагромождение и конфликты различного функционала при неправильной организации и планировании разработки, особенно если над этим работает крупная команда. Так же, работа по данной модели является достаточно трудо- и ресурсоемкой.[2]

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

Основатель компании по разработке мобильных приложений e-Legion, Роман Белодед, склоняется к жизненному циклу, основанному на каскадной модели. По его мнению, жизненный цикл должен быть представлен этапами, отраженными в Таблице 2[3].

Таблица 2 – этапы жизненного цикла при разработке мобильного приложения

Этапы жизненного цикла

Функции этапа

Установка цели

  1. Определяем целевую аудиторию;
  2. исследуем маркетинговые задачи;
  3. разрабатываем концепцию и способы привлечения аудитории.

Анализ требований

  1. Определяем требования к разрабатываемому продукту;
  2. пишем ТЗ.

Проектирование интерфейса и строение программного кода

  1. Разрабатываем дизайн;
  2. создаем схемы экранов;
  3. делаем черновые прототипы;
  4. прорабатываем план использования программы;
  5. прорабатываем условия сервера;
  6. создаем модель классов высшего уровня.

Утверждение дизайна интерфейса

  1. Разрабатываем модель высокой детализации;
  2. проводим испытание модели пользователем.

Программирование и разработка функций

  1. Разрабатываем сторону клиента;
  2. разрабатываем сторону сервера;
  3. прорабатываем вопросы безопасности;
  4. тестируем на модульных тестах.

Тестирование

Проводим тестирование по тест-кейсам и определяем соответствие первоначальным условиям.

Публикация в магазинах

Оформление, регистрация и презентация готового приложения

Техническая поддержка

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

Развитие и поддержка

Подразумевает выполнение всех вышеописанных этапов цикла

Отказ от поддержки

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

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

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

Сейчас, наиболее популярными мобильными операционными системами, по результатам анализа Kantar Worldpanel ComTech, являются Android, занимающий 59,1% от общего числа пользователей, и iOS, занимающий 39,0%. В связи с этими данными, мы рассмотрим только те IDE, которые позволяют проводить разработку именно под эти операционные системы.

Android Studio

Android Studio является продуктом корпорации Google. Среда основана на IDE IntelliJ IDEA компании JetBrains, которая является официальным средством разработки приложений под систему Android. Текущей версией данной среды является Android Studio 3.3. Данная IDE доступна на всех современных популярных операционных системах - Windows, MacOS X и Linux. Основными языками разработки являются Java и более молодой Kotlin[4].

Картинки по запросу android studio

Рис. 4 – Интерфейс Android Studio

Для разработки интерфейса существует Layout Editor, позволяющий размещать элементы интерфейса простым “перетягиванием”, но, как правило, для интерфейсной части приложения, используются построение с помощью XML. Естественно, что в Android Studio для упрощения верстки интерфейса существуют шаблоны, позволяющие быстро использовать готовые решения для типичных задач.

Картинки по запросу android studio layout editor

Рис. 5 – интерфейс Layout Editor в Android Studio

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

В Android Studio нет возможности подключения сторонних плагинов. Данная IDE крайне требовательно к технической составляющей ЭВМ и не оптимизировано, если брать для сравнения другие среды.

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

При всех недостатках, на данный момент, Android Studio признается разработчиками, как одна из самых удобных средств разработки продуктов под систему Android.

В основной функционал IDE входит[5]:

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

Как было сказано выше, Android Studio имеет большое количество встроенных инструментов, облегчающих работу[6]. Что же в них входит?

  • Gradle - плагин, помогающий быстро собирать приложения;
  • облачная среда Google;
  • ProGuard - плагин, повышающий безопасность приложения, в функции которого входит очистка и оптимизация кода, а также его обфускация;
  • WYSIWYG - расширенный редактор макетов;
  • Lint - инструмент мониторинга производительности и совместимости версий;
  • шаблоны для разработки компонент и структур данных под Android.

XCODE

Xcode - IDE для разработки под macOS X и iOS, разработанная и внедренная компанией Apple, позволяющая создавать приложения под их платформу. Сюда включаются не только компьютеры, планшеты и смартфоны, но и Apple TV. Первая версия была анонсирована в далеком 2001 году. Данное приложение распространяется компанией бесплатно. Xcode содержит в себе большую часть документации разработчиков от Apple. Текущая версия, используемая iOS и MacOS разработчиками - 10.1[7].

Рис. 6 – интерфейс XCODE

Основными преимуществами данной среды разработки являются:

  • Source Editor - инструмент, позволяющий удобно работать с кодом, включающий в себя подсветку синтаксиса, отображение ошибок и предупреждений, различной контекстно-зависимой информации, имеющий настраиваемые темы.
  • Asset Catalog - каталог картинок, позволяющий удобно управлять ресурсами приложения. Представляет из себя JSON-структуру и ее интерфейсное отображение.
  • Version Editor - редактор версий. Удобный встроенный в IDE инструмент, позволяющий работать с системой контроля версий.

Рис. 7 – Version Editor в XCODE

  • iPhone Simulator - симулятор iPhone и iPad. Включает в себя довольно широкую базу из различных моделей смартфонов и планшетов.
  • Interface Builder - редактор интерфейсов, позволяющий создавать простые интерфейсы приложения из стандартных компонент с переходами между экранами без написания кода.

Основными языками разработки под продукты компании Apple являются Objective-C, унаследованный от NextStep, и молодой Swift.

Основными инструментами XCODE являются[8]:

  • iOS Simulator - средство быстрого просмотра разрабатываемого продукта;
  • Dash - менеджер для созданных сниппетов и качественный справочник с документацией;
  • TextExpander - утилита для привязки блоков кода к сочетаниям клавиш;
  • TestFlight - утилита для передачи тестовых сборок тестировщикам и ограниченному кругу пользователей;
  • GDB - мощный отладчик кода.

Картинки по запросу testflight

Рис. 8 – интерфейс TestFlight

PhoneGap

PhoneGap был создан в 2009 году в Канаде, как open source IDE, которая может получить доступ к нативным функциям девайса из WebView. Целью проекта являлось обеспечение возможности написания мобильных приложений исключительно с помощью веб-технологий, таких как HTML5, CSS, JavaScript и т.п., но при этом сохранить возможность вызова нативного кода[9].

PhoneGap — это простой, но мощный API для того, чтобы легко вызывать машинный код из JavaScript. То есть разработчик может передавать любые данные из WebView на сам девайс. IDE дает возможность доступа к низкоуровневому API, при помощи плагинов. У разработчиков под PhoneGap есть возможность расширять плагины на нативной части.

Рис. 9 – интерфейс PhoneGap

PhoneGap Build — облачный сервис, с помощью которого можно скомпилировать HTML5 в готовое приложение без проблемы поддержки нативных SDK.

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

3. Критерии исследования

Выбор критериев

Рассмотрим критерии, которые являются основными при разработке мобильных приложений[10].

  1. Нативность. Данный критерий довольно важен. Обе платформы, что Android, что iOS, не стоят на месте и постоянно развиваются. Постоянно выходят новые API и, соответственно, нативные среды разработки, позволяющие работать с ними. Примером может послужить Metal 2 API у Apple, позволяющая работать с 3D графикой и дополненной реальностью (AR). Для кроссплатформенных IDE требуется время, чтобы их поддержать.
  2. Производительность. Тема производительности мобильных приложений является очень актуальной в наше время. Большинство крупных компаний осознают важность развития данного направления. Тем не менее вопрос практической реализации и оценки эффективности прилагаемых усилий далеко не так прост. Само по себе понятие оптимальной производительности для каждого отдельно взятого приложения или службы представляет собой довольно сложную задачу с размытыми условиями и выводом. Также, сейчас нет ни одного гарантированного способа вычислить финансовой эффект вложения инвестиций в данную область. Единственное, на что можно полагаться при развитии данной области – это здравый смысл, применяемый в каждом конкретном случае[11]. Как правило, современные IDE предоставляют скудную информацию о производительности приложения, как представлено на Рис. 10.

Рис. 10 – пример информации о производительности мобильного приложения

  1. Кроссплатформенность. Способность программного обеспечения работать с двумя или несколькими операционными системами или платформами важна для оперативной, быстрой разработки ПО. Она, как правило, обеспечивается при помощи использования высокоуровневых языков программирования, сред разработки, предназначенных именно для этого.
  2. Скорость разработки. Не самый очевидный для анализа параметр. Скорость разработки зависит не только от организации процесса разработки, как было описано выше, но и от сложности и специфики приложения. Данный критерий взаимосвязан и со следующими двумя пунктами.
  3. Разнообразие возможностей. Интересна обратная последовательность - чем меньше платформ поддерживает средство разработки, тем большее количество возможностей оно может поддержать. Очевидно, что у нативных IDE, предназначенных для разработки только под одну платформу, функционал будет гораздо выше и шире.
  4. Средства отладки. Средства отладки у приведенных средств довольно сильно различаются. Данный критерий важен по причине итогового результата, т.е. его качества и проработанности. Часто имеют место различные утечки памяти, энергозатратность (нельзя забывать, что мы говорим о мобильных устройствах) и другие проблемы, связанные с разработкой. Умение отладчика замечать и регистрировать данные проблемы является огромным плюсом.
  5. Документированность. Не самый жизненно необходимый критерий, но тем не менее довольно важный для работы разработчиков. Оффлайн документация, ссылки на документы прямо из кода, удобство использования, все это хоть и косвенно, но влияет на разработку.
  6. Удобство интерфейса. Критерий, важный разработчику. Нельзя недооценивать интуитивно-понятный интерфейс. Комфорт и удобство разработчика в процессе создания приложения прямо пропорционально качеству и скорости исполнения очередного этапа разработки. К сожалению, не каждая среда может похвастаться лаконичностью и удобством.
  7. Стоимость. Имеется ввиду стоимость IDE.

4. Анализ продуктов

Нативность

Android Studio, как и XCODE были разработаны крупными корпорациями специально под свои платформы. В первом случае – это Android, что видно из названия, во втором – iOS, macOS, watchOS, которые являются продуктами компании Apple. Таким образом они являются средами разработок, предназначенными ТОЛЬКО под нативную разработку.

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

Таким образом, в данном критерии на первом месте XCODE, как наиболее нативная среда разработки, на последнем PhoneGap.

Производительность

Безусловным лидером и тут является XCODE. Причина такого лидерства – отсутствие огромного количества различных устройств различных производителей на рынке вкупе с проработанностью и «заточенностью» под аппаратную часть.

Следом за ним идет Android Studio, так как нативные элементы, заточенные под определенную платформу, будут работать эффективнее и производительнее.

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

Кроссплатформенность

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

К сожалению, в XCODE и Android Studio не может идти и речи о кроссплатформенности.

Рис. 11 – основные поддерживаемые платформы в PhoneGap

Скорость разработки

Как и написано выше, здесь не все так очевидно. Изначально может показаться, что в порядке убывания данного критерия это выглядит вот так: PhoneGap, Android Studio, XCODE. Тем не менее, это верно лишь для простых проектов. При увеличении сложности приложения картина меняется прямо пропорционально и для них все выходит совсем наоборот: XCODE, Android Studio, PhoneGap.

Почему же Android Studio идет за XCODE? Android Studio – довольно молодая и развивающаяся среда разработки. XCODE имеет на своем борту гораздо больше функционала, увеличивающего скорость разработки[12].

Например, у Android Studio не так давно появился Navigation Editor - средство позволяющее создавать интерфейс, методом перетягивания контролов на рабочий экран, и устанавливать переходы между экранами. В данной IDE это подходит скорее для создания прототипа, нежели серьезного приложения. В XCODE аналог данной системе, Interface Builder со Storyboard, появился еще в 2013 году и сейчас имеет очень богатый функционал, не требующий программной корректировки при дальнейшей разработке[13]. Он изображен ниже, на Рис. 12.

Рис. 12 – Interface Builder в XCODE

Разнообразие возможностей

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

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

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

Средства отладки

Наиболее развитым является тут XCODE. Отладчик основан на GDB, а помимо этого, у него есть масса дополнительных средств и инструментов, таких как ZombieObject, позволяющих вычислить утечку памяти, или Counters, счетчик ссылок.

Средства отладки PhoneGap являются самыми скромными. Там нет даже таких возможностей, как точки останова и трассировка стека.

Рис. 13 – обилие различных инструментов отладки в XCODE

Документированность

У XCODE и у Android Studio довольно качественная документация, официальные обучающие уроки и широкое комьюнити. В данном критерии они находятся наравне, а споры «что лучше» скорее будут присущи поклонникам той или иной IDE.

На самом деле и у PhoneGap все в порядке с документацией, но проблема скорее в не таком большом сообществе разработчиков.

Удобство интерфейса

И опять XCODE в данном вопросе занимает лидирующую позицию. Apple придерживается позиции максимально интуитивно-понятного интерфейса и уделяет при разработке и поддержке своей IDE этому не меньше внимания, чем всем остальным факторам.

PhoneGap и Android Studio чем-то похожи по интерфейсу, но, надо отдать должное Android Studio, интерфейс более современен.

Стоимость

Все три IDE являются бесплатными, но, ввиду того что для разработки в XCODE необходим Mac и довольно дорогая, по сравнению с Android, учетная запись разработчика (99$ ежегодно), порог вхождения у него очень высоки.

Сравнение продуктов

Ниже представлена сводная таблица 3, позволяющая визуально сравнить вышеописанные продукты после детального анализа.

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

Критерий

Нативность

Производительность

Кроссплатформенность

Скорость разработки

Разнообразие возможностей

Средства отладки

Документированность

Удобство интерфейса

Стоимость

Итого

IDE

Android Studio

2

2

1

2

3

2

3

2

3

20

XCODE

3

3

1

3

2

3

3

3

1

22

PhoneGap

1

1

3

1

1

1

2

1

3

14

В таблице расставлены значения в соответствии с полученными выводами в п.3.2 данной работы, где 1 – наименьшее значение, удовлетворяющее критерию, 3 – наибольшее.

Рис. 14 – результаты анализа ПО в статье [19]

Как видно из результатов, разрыв между Android Studio и XCODE сравнительно небольшой. PhoneGap показал себя наименее качественной средой разработки, по сравнению с остальными.

Эти результаты так же подтверждаются двумя статьями: «Выбор инструментов для разработки мобильного приложения методом анализа иерархии Т. Саати» и «Сравнительный анализ программного обеспечения для разработки мобильных приложений».

В первой статье, в результате анализа различных IDE для мобильной разработки лидером оказалась iOS SDK – Рис. 14. «В итоге мы получили результат вычислений в виде диаграммы, из которой видно, что для разработки мобильного приложения оптимальным вариантом, удовлетворяющим всем критериям выбора, является iOS SDK Objective-C с комбинированным весовым коэффициентом равным 0,562.»[14].

Во второй, в качестве наиболее оптимального IDE, была выбрана Android Studio. «В первую очередь, потому что у неё самый удобный пользовательский интерфейс, много доступного материала для обучения, вполне достаточный спектр языков программирования, бесплатность пользования и самый большой рейтинг целевой платформы в мире»[15].

Заключение

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

Были рассмотрены и проанализированы три среды работки:

  • Android Studio;
  • XCODE;
  • PhoneGap.

В процессе анализа использовались следующие критерии:

  • нативность;
  • производительность;
  • кроссплатформенность;
  • скорость разработки;
  • разнообразие возможностей;
  • средства отладки;
  • документированность;
  • удобство интерфейса;
  • стоимость.

В результате анализа был выявлен небольшой отрыв между Android Studio и XCODE, и большой отрыв от них PhoneGap. В следствии этого можно сделать следующий вывод: для разработки мобильных приложений наиболее оптимальным решением является выбор нативных средств разработки и их выбор зависит только от платформы, под которую требуется приложение – Android или семейство Apple. PhoneGap подходит только для написания простых приложений с простым интерфейсом, либо для прототипов.

Список литературы

  1. Барабанова М.И., Воробьев В.П., Минаков В.Ф. Экономикоматематическая модель динамики дохода отрасли связи России // Известия Санкт-Петербургского государственного экономического университета. – 2013. – № 4 (82). – С. 24–28.
  2. Макарчук Т.А., Минаков В.Ф., Щугорева В.А. Облачные решения построения информационных систем управления ресурсами организации // Международный научно-исследовательский журнал = Research Journal of International Studies. – 2014. – № 1-1 (20). – С. 68-69.
  3. Минаков В.Ф., Минакова Т.Е. Информационное общество и проблемы прикладной информатики // Международный научноисследовательский журнал = Research Journal of International Studies. – 2014. – № 1-1 (20). – С. 69-70.
  4. Саати Т. Принятие решений. Метод анализа иерархий. М.: Радио и связь. – 1993. – 278 с.
  5. Minakov V.F., Ilyina O.P., Lobanov O.S. Concept of the Cloud Information Space of Regional Government // Middle-East Journal of Scientific Research. – 2014. – № 21 (1). – P. 190-196.
  6. Войт Н. Н. Информатика и вычислительная техника. – Ульяновск: УлГТУ 2013. 362 с.
  7. Голощапов А. А. Google Android: программирование для мобильных устройств. – Спб.: БХВ – Петербург 2014. 163 с.
  8. Пискунова Н. В. Заработать миллионы с Iphone и Android пользователей. – М.: Финансы и статистика 2015. 162с.
  9. Соколов В. В. Вычислительная техника и информационные технологии. Разработка мобильных приложений. Учебное пособие. – М.: Юрайт 2016. 176 с.
  10. Dale P., Morgan Hein Android для программистов. Создаем приложения. – Спб.: Питер 2012. 560 с.
  11. Murata C. Империя приложений. – М.: Альпина Паблишер 2013. 236 с.
  12. Nielsen J., Budiu R. Mobile Usability. – Спб.: Эксмо 2013. 256 с.
  13. Stevens C. Миллионеры из AppStore. Секреты разработчиков приложений бесцеллеров. – М.: Манн, Иванов и Фербер 2012. 256 с.
  14. Vale E. HTML5. Разработка приложений для мобильных устройств. – Спб.: Питер 2015. 225 с.
  15. Лекция 1: Мобильные устройства и их характеристики. Платформа Windows Mobile [Электронный ресурс] URL: http://www.intuit.ru/studies/courses/574/430/lecture/9745 (дата обращения 14.02.2019)
  16. Android Studio [Электронный ресурс] URL: http://developer.android.com/intl/ru/sdk/index.html (дата обращения 16.02.2019)
  17. Intel MDK for Android [Электронный ресурс] URL: https://software.intel.com/en-us/android/intel-mobile-development-kit-for-android (дата обращения 14.02.2019)
  18. Xcode [Электронный ресурс] URL: https://developer.apple.com/xcode/ (дата обращения 14.02.2019)
  19. Бордюг В.Л., Панченко Е.Г., Трифонова О.Н. Выбор инструментов для разработки мобильного приложения методом анализа иерархии Т. Саати // Nauka-rastudent.ru. – 2015. – No. 02 (014-2015) / [Электронный ресурс] – Режим доступа. – URL: http://nauka-rastudent.ru/14/2419/ (дата обращения: 18.02.2019).
  20. Фадеев А.Ю., Волкова Е.А. Сравнительный анализ программного обеспечения для разработки мобильных приложений // Наука и перспективы. 2016. №3. URL: https://cyberleninka.ru/article/n/sravnitelnyy-analiz-programmnogo-obespecheniya-dlya-razrabotki-mobilnyh-prilozheniy (дата обращения: 18.02.2019).
  1. Фадеев А.Ю., Волкова Е.А. Сравнительный анализ программного обеспечения для разработки мобильных приложений // Наука и перспективы. 2016.

  2. Соколов В. В. Вычислительная техника и информационные технологии. Разработка мобильных приложений. Учебное пособие. – М.: Юрайт 2016. 176 с.

  3. Фадеев А.Ю., Волкова Е.А. Сравнительный анализ программного обеспечения для разработки мобильных приложений // Наука и перспективы. 2016.

  4. Голощапов А. А. Google Android: программирование для мобильных устройств. – Спб.: БХВ – Петербург 2014. 163 с.

  5. Dale P., Morgan Hein Android для программистов. Создаем приложения. – Спб.: Питер 2012. 560 с.

  6. Android Studio [Электронный ресурс] URL: http://developer.android.com/intl/ru/sdk/index.html

  7. Xcode [Электронный ресурс] URL: https://developer.apple.com/xcode/

  8. Stevens C. Миллионеры из AppStore. Секреты разработчиков приложений бесцеллеров. – М.: Манн, Иванов и Фербер 2012. 256 с.

  9. Vale E. HTML5. Разработка приложений для мобильных устройств. – Спб.: Питер 2015. 225 с.

  10. Бордюг В.Л., Панченко Е.Г., Трифонова О.Н. Выбор инструментов для разработки мобильного приложения методом анализа иерархии Т. Саати

  11. Пискунова Н. В. Заработать миллионы с Iphone и Android пользователей. – М.: Финансы и статистика 2015. 162с.

  12. Android Studio [Электронный ресурс] URL: http://developer.android.com/intl/ru/sdk/index.html

  13. Xcode [Электронный ресурс] URL: https://developer.apple.com/xcode/

  14. Бордюг В.Л., Панченко Е.Г., Трифонова О.Н. Выбор инструментов для разработки мобильного приложения методом анализа иерархии Т. Саати // Nauka-rastudent.ru. – 2015. – No. 02 (014-2015) / [Электронный ресурс]

  15. Фадеев А.Ю., Волкова Е.А. Сравнительный анализ программного обеспечения для разработки мобильных приложений // Наука и перспективы. 2016. №3.