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

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

Содержание:

Введение

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

Разработчики приложений и крупные IT компании, с каждым днём стараются, расширить возможность применения мобильного устройства и улучшить уже существующее программное обеспечение. Не смотря на обилие выбора устройств, от разных компаний с разными характеристиками, на рынке доминируют две основные операционные системы для мобильных устройств, это - OCAndroid от компании GOOGLE LLC и IOS от компании Apple.

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

1 Глава первая

1.1 Основные понятия

Android - является операционной системой для смартфонов, нетбуков, планшетов, наручных часов, телевизоров, телевизионных приставок, электронных книг и многих других устройств.[1]

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

IDE - среда разработки приложений, которая может поддерживать как разработку мобильных приложений под управление Android или IOS, так и включать в себя целый набор различных библиотек.[2]

Библиотека - сборник подпрограмм и объектов, которые используются для разработки программного обеспечения (ПО).[2]

Android Studio - интегрированная среда разработки (IDE), предназначенная для работы с Android платформой и выпущенная самой компанией Google. Данная IDE распространяется бесплатно.

Xcode - интегрированная среда разработки (IDE), для платформ iOS, macOS, watchOS и tvOS, разработанная компаний Apple.

Microsoft Visual Studio - мультиплатформенная среда разработки, выпущенная компанией Microsoft. Данная IDE имеет большой список библиотек и позволяет программировать для обеих, мобильных операционных систем(ОС).

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

Java - объектно-ориентированный язык программирования, компании Oracle Corporation.

JDK (Java Development Kit) - представляет собой комплект разработчика приложений языка Java, имеет компилятор Java (Javac), библиотеки классов Java, документацию, утилиты, библиотеки классов Java и исполнительную систему Java (JRE). Не имеет интегрированной среды разработки.

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

1.2 О операционной системе Android

Android - операционная система для смартфонов, планшетных компьютеров, цифровых проигрывателей, электронных книг, наручных часов, нетбуков, смартбуков, очков Google, игровых приставок, телевизоров, систем автоматического управления автомобилем и других устройств. ОС основана на ядре Linux и собственной реализации виртуальной машины Java от Google. Изначально разрабатывалась компанией Android Inc., которую в 2005 году купила Google. Впоследствии Google инициировала создание альянса OpenHandsetAlliance (OHA), который сейчас занимается поддержкой и дальнейшим развитием платформы. Android позволяет создавать Java-приложения, управляющие устройством через разработанные Google библиотеки. AndroidNativeDevelopmentKit позволяет портировать библиотеки и компоненты приложений, написанные на языках С, С++, Kotlin и др.. По состоянию на 2017 год, по заявлениям компании Google, активных мобильных устройств с операционной системой Android насчитывалось 2 млд.

1.3 Ключевые особенности Android

Android является распространенной операционной системой (ОС) для мобильных устройств – телефонов и планшетов. Данная система имеет множество отличительных черт, которые делают ее узнаваемой и привлекательной для большого количества пользователей по всему миру. Операционная система Android является нетребовательной и способна работать на разных конфигурациях. Именно поэтому большинство мировых 7 производителей оснащают свои устройства данной ОС, поскольку другие программные продукты предназначены для отдельных аппаратов, соответствующих определенной спецификации. Такая гибкость Android связана с тем, что система построена на ядре Linux, имеющей открытый программный код, что дает неограниченные возможности разработчикам. Android может быть запущен на устройствах, имеющих объем оперативной памяти менее 256 Мб. Наиболее новые версии системы требуют 512 Мб оперативки, что также является небольшим значением для современных аппаратов. Система не требует наличия высокопроизводительного процессора и может работать на устройствах, оснащенных ядром с частотой 600 МГц. Операционная система дает возможность установки приложений с официального репозитория Google, который предоставляет самую большую в мире базу программ. Это связано с тем, что каждый разработчик может самостоятельно написать любую программу для аппарата и разместить ее в магазине. Возможность также реализована благодаря открытости операционной системы. Стоит отметить, что приложения на устройства под управлением Android могут быть установлены как непосредственно с телефона или планшета, так и через компьютер путем загрузки файла .apk и его последующей установки на аппарате. Отличительной особенностью Android является его интегрированность с сервисами Google – Gmail, Hangouts, Voice Search и т.п. На Android официально реализована поддержка Chrome, что позволяет синхронизировать открываемые в браузере вкладки на смартфоне с компьютерным браузером. Например, вы можете начать просмотр страниц с вашего телефона и при желании продолжить изучать информацию, открыв эту же вкладку на компьютере, не прибегая к помощи повторного поиска. «Андроид» имеет достаточно простой и интуитивно понятный интерфейс. Все нужные приложения размещаются одновременно на главном 8 экране и в меню аппарата, которое вызывается нажатием на центральную сенсорную клавишу или соответствующую кнопку на экране. Все настройки располагаются в секции «Настройки», а каждое действие пользователя поясняется комментариями и подсказками при первом запуске аппарата. Операционная система быстро реагирует на нажатия пользователя и производит установку и скачивание нужных программ и файлов со скоростью, которая не проигрывает другим современным мобильным ОС.[8]

1.4 О операционной системе iOS

iOS мобильная операционная система для смартфонов, электронных планшетов, носимых проигрывателей и некоторых других устройств, разрабатываемая и выпускаемая американской компанией Apple. Была выпущена в 2007 году; первоначально — для iPhone и iPod touch, позже — для таких устройств, как iPad . В 2014 году появилась поддержка автомобильных мультимедийных систем Apple CarPlay. В отличие от Android (Google), выпускается только для устройств, производимых фирмой Apple.

В iOS используется ядро XNU, основанное на микроядре Mach и содержащее программный код, разработанный компанией Apple, а также код из ОС NeXTSTEP и FreeBSD. Ядро iOS почти идентично ядру настольной операционной системы Apple macOS (ранее называвшейся OS X). Начиная с самой первой версии, iOS работает только на планшетных компьютерах и смартфонах с процессорами архитектуры ARM.

1.5 Ключевые особенности iOS

Одним из главных особенности iOS является то, что данная операционная система, не имеет исходного кода в свободном доступе, в отличие от Android и устанавливается только на устройства производимые компанией Apple.

За счёт того, что операционная система устанавливается, только на продукты производства Apple, компания смогла добиться отличной скорости работы устройств, в отличие от Android, когда сторонние производителе вносят корректировки в программный код, меня оболочку и интегрируя свои приложения в систему, тем самым может возникнуть не стабильная работа ОС.

1.6 Постановка задачи

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

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

2 Глава вторая

2.1 Определение задач

Для определения критериев выбора IDE, необходимо определить первостепенные задачи.

  • Поддерживаемые платформы
  • Поддерживаемые языки программирования
  • Функциональные особенности
  • Необходимые ресурсы

2.2 Мультиплатформенность

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

Это позволит удовлетворить потребность пользователей обеих ОС в программном обеспечении и позволит расширить круг потенциальных потребителей.

2.3 Поддерживаемые языки программирования

Прогресс не стоит на месте и среда разработки должна предоставлять возможность для разработчика, быть на ряду с новыми технологиями. К примеру, в 2011 году появился на свет, язык программирования Kotlin от Российской компании JetBrains, который облегчал работу разработчика и упрощал исходный код ПО. Первым поддержку данного кода внедрил в свою среду разработки Google (Android Studio).

2.4 Функциональные возможности

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

2.5 Необходимые ресурсы

В мире персональных компьютеров, так же существует несколько операционных систем (Windows, macOS, Linux), некоторые IDE, могут не поддерживать, все ОС.

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

3 Глава третья

3.1 Обзор программы Android Studio (Google llc)

Android Studio - это официальная интегрированная среда разработки (IDE) для разработки приложений Android, основанная на IntelliJ IDEA . Помимо мощного редактора кода и инструментов разработчика IntelliJ, Android Studio предлагает еще больше функций, которые повышают вашу производительность при создании приложений для Android, таких как:

  • Гибкая система сборки на основе Gradle
  • Быстрый и многофункциональный эмулятор
  • Единая среда, где вы можете разрабатывать для всех устройств Android
  • Применить изменения, чтобы отправить изменения кода и ресурсов в работающее приложение без перезапуска приложения.
  • Шаблоны кода и интеграция с GitHub помогут вам создать общие функции приложения и импортировать пример кода.
  • Обширные инструменты тестирования и платформы
  • Инструменты Lint для определения производительности, удобства использования, совместимости версий и других проблем
  • Поддержка C ++ и NDK
  • Встроенная поддержка Google Cloud Platform , облегчающая интеграцию Google Cloud Messaging и App Engine

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

  • Модули приложений Android
  • Библиотечные модули
  • Модули Google App Engine

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

Рисунок 2. Файлы проекта в представлении Android.

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

  • Application: Содержит AndroidManifest.xml файл. (Рисунок 3)
  • Java : содержит файлы исходного кода Java, включая тестовый код JUnit.
  • res : Содержит все не кодовые ресурсы, такие как макеты XML, строки пользовательского интерфейса и растровые изображения.

Рисунок 3. Файлы проекта в представлении Android.

Главное окно Android Studio состоит из нескольких логических областей, обозначенных на рисунке 4.

  1. Панель инструментов позволяет выполнять широкий спектр действий, включая запуск приложения и запуск инструментов Android.
  2. Панель навигации поможет вам перемещаться по вашему проекту и открывать файлы для редактирования. Он обеспечивает более компактный вид структуры, видимой в окне проекта .
  3. В окне редактора вы можете создавать и изменять код. В зависимости от текущего типа файла, редактор может меняться. Например, при просмотре файла макета в редакторе отображается редактор макетов.
  4. Панель инструментов находится вокруг внешней части окна IDE и содержит кнопки, позволяющие развернуть или свернуть отдельные окна инструментов.
  5. В окне инструментов предоставляет доступ к конкретным задачам , как управление проектами, поиск, контроль версий и многим другим. Вы можете расширить их и свернуть их.
  6. В строке состояния отображает состояние вашего проекта и сам IDE, а также любые предупреждения или сообщения.

Рисунок 4. Главное окно Android Studio.

Анимация 1 Настройка Activity в Android Studio

Плюсы

  • Предоставляется бесплатно
  • Графическое представление приложения
  • Виртуальная машина

Минусы

  • Отсутствие мультиплатформенности

3.2 Обзор Visual Studio (Microsoft)

Visual Studio — это оригинальная среда запуска, которая позволяет редактировать, отлаживать и создавать код, а затем публиковать приложения. Интегрированная среда разработки (IDE) — это многофункциональная программа, которую можно использовать для различных аспектов разработки программного обеспечения. Помимо стандартного редактора и отладчика, которые существуют в большинстве сред IDE, Visual Studio включает в себя компиляторы, средства выполнения кода, графические конструкторы и многие другие функции для упрощения процесса разработки программного обеспечения.

На рисунке 6 показана среда Visual Studio с открытым проектом и несколькими окнами основных инструментов, которые вам, скорее всего, понадобятся:

  • Обозреватель решений (вверху справа) позволяет просматривать файлы кода, перемещаться по ним и управлять ими. Обозреватель решений позволяет упорядочить код путем объединения файлов в решения и проекты.
  • В окне редактора (центр), где вы, скорее всего, будете проводить большую часть времени, отображается содержимое файла. Здесь вы можете редактировать код или разрабатывать пользовательский интерфейс, например окно с кнопками или текстовые поля.
  • Team Explorer (правый нижний угол) позволяет отслеживать рабочие элементы и использовать код совместно с другими пользователями с помощью технологий управления версиями, таких как Git и система управления версиями Team Foundation (TFVC).

Рисунок 6 Главное окно Visual Studio

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

Visual Studio предлагает набор инструментов, позволяющих с легкостью создавать облачные приложения на базе Microsoft Azure. Она упрощает настройку, сборку, отладку, упаковку и развертывание приложений и служб в Microsoft Azure прямо из IDE.

Cloud Explorer в Visual Studio позволяет просматривать облачные ресурсы на основе Azure и управлять ими в Visual Studio. Эти ресурсы могут включать виртуальные машины, таблицы, базы данных SQL и многое другое. Cloud Explorer отображает ресурсы Azure во всех учетных записях, управляемых в рамках подписки Azure, в которую выполнен вход. Если для выполнения конкретной операции требуется портал Azure, Cloud Explorer предоставит ссылки для перехода в нужное место на портале(Рисунок 7).

Рисунок 7 Окно Cloud Exolorer

С помощью Visual Studio вы можете создавать приложения и игры для платформ macOS, Linux и Windows, а также для мобильных устройств Android, iOS и др.

  • Создавать приложения .NET Core для использования на устройствах Windows, macOS и Linux.
  • Создавать мобильные приложения для устройств iOS, Android и Windows на C# и F# с помощью Xamarin.
  • Использовать стандартные веб-технологии—HTML, CSS и JavaScript—, чтобы создавать мобильные приложения для устройств iOS, Android и Windows с помощью Apache Cordova.
  • Создавайте игры в форматах 2D и 3D на C# с помощью средств Visual Studio для Unity.
  • Создавать собственные приложения C++ для устройств iOS, Android и Windows. Предоставляйте доступ к общему коду в библиотеках, созданных для iOS, Android и Windows, с помощью C++ для кроссплатформенной разработки.
  • Выполнять развертывание, тестирование и отладку приложений Android с помощью эмулятора Android.

Плюсы

  • Есть бесплатная версия
  • Эмулятор Android
  • Мультиплатформенность

Минусы

  • Платная лицензия от 300 до 800 долларов

3.3 Обзор Xcode (Apple)

Xcode - интегрированная среда разработки Apple (IDE), для создания приложений для продуктов Apple, включая iPad, iPhone, Apple Watch, Apple TV и Mac. Xcode предоставляет инструменты для управления всем рабочим процессом разработки - от создания приложения до тестирования, оптимизации и отправки его в App Store.

Xcode включает в себя большую часть документации разработчика от Apple и Interface Builder — приложение, использующееся для создания графических интерфейсов.

Пакет Xcode включает в себя изменённую версию свободного набора компиляторов GNU Compiler Collection и поддерживает языки C, C++, Objective-C, Objective-C++, Swift, Java, AppleScript, Python и Ruby с различными моделями программирования, включая (но не ограничиваясь) Cocoa, Carbon и Java. Сторонними разработчиками реализована поддержка GNU Pascal[1], Free Pascal[2], Ada[3], C#[4], Perl[5], Haskell[6] и D[7]. Пакет Xcode использует GDB в качестве back-end’а для своего отладчика.

В августе 2006 Apple объявила о том, что DTrace, фреймворк динамической трассировки от Sun Microsystems, выпущенный как часть OpenSolaris, будет интегрирован в Xcode под названием Xray. Позже Xray был переименован в Instruments.

Плюсы

  • Предоставляется бесплатно
  • Графическое представление приложения
  • Виртуальная машина

Минусы

  • Отсутствие мультиплатформенности

3.4 Java

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

Программы на Java транслируются в байт-код Java, выполняемый виртуальной машиной Java (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

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

  • Часто к недостаткам концепции виртуальной машины относят снижение производительности. Ряд усовершенствований несколько увеличил скорость выполнения программ на Java:
  • применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде,
  • обширное использование платформенно-ориентированного кода (native-код) в стандартных библиотеках,
  • аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами архитектуры ARM).

По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10—30 раз больше, чем программой на C/C++. Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.

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

3.5 Java Virtual Machine (JVM)

JVM основная часть исполняющей системы Java, так называемой Java Runtime Environment (JRE). Виртуальная машина Java исполняет байт-код Java, предварительно созданный из исходного текста Java-программы компилятором Java (javac). JVM может также использоваться для выполнения программ, написанных на других языках программирования. Например, исходный код на языке Ada может быть откомпилирован в байт-код Java, который затем может выполниться с помощью JVM.

JVM является ключевым компонентом платформы Java. Так как виртуальные машины Java доступны для многих аппаратных и программных платформ, Java может рассматриваться и как связующее программное обеспечение, и как самостоятельная платформа. Использование одного байт-кода для многих платформ позволяет описать Java как «скомпилировано однажды, запускается везде» (compile once, run anywhere).

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

Рисунок 8 Архитектура JVM

3.6 Java Development Kit (JDK)

JDK - это бесплатно распространяемый компанией Oracle Corporation (ранее Sun Microsystems) комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java, поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки.

Все современные интегрированные среды разработки приложений на Java, такие, как JDeveloper, NetBeans IDE, Sun Java Studio Creator, IntelliJ IDEA, Borland JBuilder, Eclipse, опираются на сервисы, предоставляемые JDK. Большинство из них для компиляции Java-программ используют компилятор из комплекта JDK. Поэтому эти среды разработки либо включают в комплект поставки одну из версий JDK, либо требуют для своей работы предварительной инсталляции JDK на машине разработчика.

Доступны полные исходные тексты JDK, включая исходные тексты самого Java-компилятора javac.

Вывод:

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

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

Основными критериями для выбора IDE служат

  • Подходит ли она под платформу, на которой будет вестись разработка ПО
  • Удовлетворяет ли она все потребности в языках и библиотеках
  • Позволит ли оборудование на котором производится ПО, работать комфортно без зависаний и вылетов
  • Возможность протестировать ПО внутри IDE
  • Стоимость ПО

СПИСОК ЛИТЕРАТУРЫ

Медникс З., Дорнин Л. Программирование под Android. Издательство Питер, 2012.

Цхошвили Д.З. О выборе инструментов для разработки мобильных приложений // Современные научные исследования и инновации. 2017. № 11 (http://web.snauka.ru/issues/2017/11/84703) .

Пол Дейтел, Харви Дейтел, Александер Уолд Android для разработчиков, 3-е издание c 30

Год: 2016