Файл: Критерии выбора средств разработки мобильных приложений (Мобильные устройства и их классификация).pdf
Добавлен: 01.04.2023
Просмотров: 409
Скачиваний: 1
СОДЕРЖАНИЕ
1. Мобильные устройства и мобильные приложения
1.1. Мобильные устройства и их классификация
1.2. Мобильные приложения и их типы
2. Обзор средств для разработки мобильных приложений
2.1. Средства для разработки Android приложений
2.2. Средства для разработки iOS приложений
2. 3. Средства для разработки Windows Phone приложений
Мобильные веб-приложения создаются на языке разметки и стилей (HTML, CSS и Java Script). HTML (Hyper Text Markup Language), состоящий из тэгов (tags), служит для разметки элементов интерфейса, CSS (Cascading Style Sheets) - чтобы правильно оформить и разместить элементы на странице в соответствии с дизайном. Язык программирования Java Script реализует логику приложения.
Эти развитые технологии успешно применяют для разработки адаптируемых под различные устройства приложений. В числе инструментов, так называемых фреймворков {framework), которые ускоряют процесс разработки, создатели веб-приложений используют фреймворк Phone Gap, особенность которого заключается в том, что он позволяет открыть приложению доступ к аппаратным и программным возможностям платформы. Также кросс-платфор- менная разработка возможна на таких технологиях, как Xamarin, Unity и проч., но они не так популярны для разработки приложений, как веб-технологии.
Преимущества кросс-платформенных приложений:
• независимость от платформы - кросс-платформенные решения реализуются на разных платформах (iOS, Android, Windows);
• время на создание - сокращение сроков разработки за счет отсутствия уникальных элементов интерфейса и одной технологической платформы;
• поддержка и обновление продукта - добавление функционала или исправление ошибок сразу для всех платформ;
• отладка веб-приложения совершается на компьютере разработчика в браузере с использованием аппаратных ресурсов устройства [9].
К недостаткам кросс-платформенных приложений относятся:
• медленная работа приложения из-за дополнительной прослойки в виде веб-браузера (в связи с этим производительность ниже, чем у нативных разработок);
• отладка на устройствах ограничивается использованием всплывающих сообщений (так называемая caveman debugging - примитивная отладка);
• веб-приложения имеют доступ к ограниченному набору сервисов (постоянному хранилищу (localstorage), геокоординатам). Гибридные приложения представляют собой технологии, позволяющие разрабатывать логику и интерфейс на HTML и Java Script, имея при этом доступ к ресурсам устройства SDK мобильных платформ предоставляют специальный компонент браузера для внедрения в нативное приложение - Web View в Андроид, UI Web View в iOS с возможностью передать в веб-приложение (Java Script-код) вызовы из нативного кода, а также принимать сообщения из Java Script обратно в нативную часть приложения [3]. Таким образом, получается веб-приложение, которое запускается в «обертке» и подается не как веб-страница, а как отдельное приложение, требующее установки и имеющее отдельную иконку. Как результат, гибридные приложения - эффективное комбинированное решение, использующее кросс-платформенные преимущества HTML для оформления контента, в котором требовательные к скорости и отзывчивости меню и элементы управления - нативные. В гибридных приложениях только объем нативного кода определяет, какому виду по принадлежности соответствует разработка приложения.
Для создания гибридных мобильных приложений инструментальным средством является программная платформа Phone Gap. Этот бесплатный open-source фреймворк для создания мобильных приложений позволяет разрабатывать приложения для мобильных устройств, используя JavaScript, HTML5 и CSS3, без необходимости знания «родных» языков программирования под все мобильные ОС. Чтобы веб-сервис стал мобильным приложением, создается мобильный интерфейс, который будет являться частью встроенного приложения, с использованием фреймворка Dojo, пакетов, специально адаптированных для мобильных устройств [8].
Гибридные решения - самый популярный способ построения мобильных приложений, так как у него органическая среда распространения, но разработка происходит быстрее и бюджетнеє, чем в случае с нативными приложениями; хотя оболочка и написана на «родном» языке программирования, «начинка» создается на HTML5.
Достоинства гибридных приложений:
• кросс-платформенность - одно приложение можно экспортировать под любую операционную систему - iOS, Android, Windows Phone, Black Berry;
• использование одного языка - Java Script;
• доступ к основным сервисам мобильного устройства (GPS, камера, телефонная книга), возможность работы в оффлайн-ре- жиме;
• распространение приложения через официальные магазины приложений [2].
Недостатки гибридных приложений:
• относительно высокие требования к ресурсам устройства, приложение может «тормозить» из-за нехватки памяти;
• ограниченное представление визуальных и графических элементов, анимации;
• требуется подключение к интернету, так как при отсутствии интернет-соединения веб-функции не работают.
Таким образом, существует достаточное количество программных средств, для того чтобы разработать приложение самостоятельно. На первом этапе важно понять, что именно из себя представляет приложение, и определить его базовый функционал. Сервис должен обеспечивать хостинг приложения, а также наличие управления приложением и возможность публикации в популярных магазинах приложений.
Функционал и задачи приложения определяются с позиции клиента: что ему хотелось бы видеть, какие функции. Однако не стоит забывать и про интересы заказчика и разработчика мобильного приложения. Поскольку на сегодняшний день отмечается наличие целого спектра операционных систем для мобильных устройств, основная цель разработчиков — достижение максимальной совместимости с самыми популярными видами платформ. При этом необходимо использовать как можно больше ресурсов устройств, включая геолокацию, сенсорный ввод, мультимедийные возможности и т.д. При этом приложения становятся эффективным инструментом маркетинга [10].
Считаем важным отметить, что со временем, учитывая темпы развития технологий, возникает проблема устаревания приложений. В связи с этим появляется потребность в выпуске обновлений. Оптимальным является вариант, когда обновления устанавливаются автоматически, т.е. без участия пользователя. Это помогает предоставлять оперативную информацию и держать потребителя в курсе.
Разработка мобильных приложений — довольно перспективная сфера. В среднем цена за разработку одного корпоративного приложения достигает 150 - 200 тыс. руб., однако стоимость зависит и от функционала, и от совместимости с популярными платформами.
3.2. Выбор среды разработки
Развитие рынка мобильных технологий привело к тому, что в мобильные устройства все чаще заменяют персональный компьютер в повседневной работе человека. Значительное расширение сферы применения мобильных приложений стало результатом общего признания организациями прибыльности сферы мобильных технологий, и достаточной мощности мобильных телефонов, позволяющих обрабатывать большое количество данных.
По результатам исследования продаж смартфонов в 2017 году компанией Kantar [4], общемировая рыночная доля по операционным системам выглядит следующим образом (Рис.12):
Android - 66,71%;
iOS - 29,55%;
Windows Phone - 1,41%;
Java ME - 1,09%;
Symbian - 0,85%;
BlackBerry - 0,9%
Samsung - 0,01%;
Другие - 0,02%.
В 2017 году аналитическая компания IDC проводила опрос [1], по результатам которого более 70% зарубежных компаний считают, что обеспечение доступа сотрудников к корпоративным приложениям с помощью мобильных устройств является первоочередной технологической задачей. Центром подобного «мобильного мира» является переносной компьютер или мобильный телефон, позволяющий мобильным пользователям осуществлять свою работу независимо от местонахождения [9].
Рисунок 11 - Доли ОС используемых в смартфонах в 2017г.
Разработка больших приложений под операционные системы мобильных телефонов является многоступенчатым процессом, в ходе которого осуществляются трансформации моделей решаемой задачи в формализованные представления, а использование мобильных телефонов является определенным риском для предприятия. Во многом специфика разрабатываемого приложения определяется предметной областью, характеризующей состав и особенности моделей, описывающих решаемую задачу, и определением верных подходов к разработке приложений для мобильных сред.
Цель исследования - определить наилучшую мобильную операционную систему, с точки зрения программирования приложений, на примере создания приложения по мониторингу производственного процесса. Такое приложение должно обладать определенными функциями: интеграция с производственной системой управления (или другими смежными системами); возможность проведения ручных операций по квитированию; мониторинг производственного процесса на АРМ; формирование отчетных документов и прочее [4].
Наряду с обозначенными проблемами и поставленной целью, рассмотрим специфику наиболее популярных операционных систем (далее - ОС), языков программирования и средств разработки приложений для них.
Операционная система iOS. Особенностью iOS является то, что разработка приложений возможна только на операционной системе Macintosh Operating System (далее - Mac OS). Mac OS поддерживается на компьютерах фирмы Apple, но также существует возможность установки данной операционной системы на виртуальную машину с помощью специализированного программного обеспечения. Приложения разрабатываются в основном на языке Objective-C, но в 2014 годукомпания Apple представила новый язык Swift. Код, написанный на Swift, может работать вместе с кодом, написанным на языках программирования C, C++ и Objective-C в рамках одного и того же проекта [5]. На рисунке 8 приведена иллюстрация компонентов разработки приложений для iOS.
Рисунок 12 - Компоненты разработки приложений для iOS
Операционная система Android. Мобильная операционная система Android разрабатывается в среде Android SDK, которая распространяется на всех современных компьютерных операционных системах, таких как Windows, Mac OS и Linux. Язык программирования, который лежит в основе - Java. Приложения на ОС Android способны обрабатывать большие массивы данных [4]. На рисунке 9 приведена иллюстрация компонентов разработки приложений для Android.
Рисунок 12 - Компоненты разработки приложений для Android
Операционная система Windows Phone. Разработка приложений под Windows Phone осуществляется на языке C# в среде Visual Studio. Поддержка Windows Phone начинается с версии Visual Studio 2012. Помимо этого существует бесплатная версия Visual Studio Express 2012 for Windows Phone [4]. На рисунке 10 приведена иллюстрация компонентов разработки приложений для Windows Phone.
Рисунок 12 - Компоненты разработки приложений для Windows Phone
Для определения целесообразности разработки приложений на описанных выше ОС в соответствии с поставленной целью, нами были выделены критерии сравнения.
Время разработки. Критерий определяет затраченное время в человеко-часах на разработку однотипного приложения для разных операционных систем.
Наличие специалистов. Критерий позволит определить наличие специалистов, обладающих навыками разработки приложений для разных операционных систем мобильных телефонов.
Удобство разработки и отладки. Насколько развиты инструменты разработки и отладки в рамках данной операционной системы.
Скорость работы ОС. Кскорости работы можно отнести: время загрузки всех действий пользователя и системы; отклик системы на действия пользователя; возможность и количество времени обработки сложных запросов.
Юзабилити. Наглядная и функциональная полнота разрабатываемого приложения.
Интеграция со смежными системами. Возможность интегрирования со смежными системами для реализации бизнес-процессов на предприятии.
Открытость исходного кода ОС. Свободный доступ к ядру операционной системы [6].
В таблице №2 приведено сравнение операционных систем iOS, Android, Windows Phone по критериям.
Таблица №2
Сравнение средств разработки ОС iOS, Android и Windows Phone
|
Критерии |
iOS |
Android |
Windows Phone |
|
Время разработки |
Освоение языка: Swift – быстрое; Objective-C – медленное. Время на разработку: среднее. |
Освоение языка: быстрое. Время на разработку: высокое. |
Освоение языка: быстрое. Время на разработку: среднее. |
|
Наличие специалистов |
Язык Objective-C: узкий круг специалистов. Язык Swift: большое количество специалистов |
В основе используется язык Java, поэтому программировать могут большое количество специалистов |
В основе используется язык C#, поэтому программировать могут большое количество специалистов |
|
Удобство разработки и отладки |
Инструменты разработки развиты в полной мере. |
Инструменты разработки развиты в полной мере. |
Инструменты разработки развиты в полной мере. |
|
Скорость работы ОС |
Время загрузки всех действий пользователя и систем: быстрое. Отклик системы на действия пользователя: быстрое. Возможность и количество времени обработки сложных запросов: быстрое, возможны задержки. |
Время загрузки всех действий пользователя и систем: быстрое. Отклик системы на действия пользователя: быстрое. Возможность и количество времени обработки сложных запросов: быстрое, возможны задержки. |
Время загрузки всех действий пользователя и систем: быстрое. Отклик системы на действия пользователя: быстрое. Возможность и количество времени обработки сложных запросов: быстрое, возможны задержки. |
|
Юзабилити |
Наличие ограничений. Пользовательский интерфейс интуитивно понятный. |
Наличие ограничений отсутствует. Пользовательский интерфейс интуитивно понятный. |
Наличие ограничений отсутствует. Пользовательский интерфейс интуитивно понятный. |
|
Интеграция со смежными системами |
Интеграция возможна со смежными системами. |
Интеграция возможна со смежными системами. |
Интеграция возможна со смежными системами. |
|
Открытость исходного кода ОС |
Закрыт |
Открыт |
Закрыт |