Введение
Разработка мобильных приложений – это процесс создания мобильного приложения для одного или нескольких мобильных устройств, таких как персональные цифровые помощники (PDA), корпоративные цифровые помощники (EDA) или мобильные телефоны. Эти программные приложения разработаны специально для работы на мобильных устройствах с учетом множества аппаратных ограничений. К распространенным ограничениям относятся архитектура и скорость процессора, объем доступной памяти (RAM), ограниченные возможности хранения данных, а также значительное разнообразие дисплеев (технологии, размер, габариты, разрешение) и способов ввода (кнопки, клавиатуры, сенсорные экраны с или без стилуса). Эти приложения (или «приложения») могут быть предустановлены на телефоны в процессе производства или распространяться как веб-приложения, использующие серверную или клиентскую обработку (например, JavaScript) для обеспечения пользовательского опыта, близкого к опыту работы с нативным приложением, в веб-браузере. Разработка мобильных приложений демонстрирует устойчивый рост как в плане доходов, так и в плане создания новых рабочих мест. Согласно аналитическому отчету за 2013 год, в Европейском союзе, состоящем из 28 стран-членов (включая Великобританию), насчитывается 529 000 рабочих мест, непосредственно связанных с экономикой приложений, 60% из которых – разработчики мобильных приложений.
Mobile app development is the act or process by which a mobile app is developed for one or more mobile devices, which can include personal digital assistants (PDA), enterprise digital assistants (EDA), or mobile phones. Such software applications are specifically designed to run on mobile devices, taking numerous hardware constraints into consideration. Common constraints include CPU architecture and speeds, available memory (RAM), limited data storage capacities, and considerable variation in displays (technology, size, dimensions, resolution) and input methods (buttons, keyboards, touch screens with or without styluses). These applications (or 'apps') can be pre installed on phones during manufacturing or delivered as web applications, using server side or client side processing (e. g., JavaScript) to provide an "application like" experience within a web browser. Mobile app development has been steadily growing in terms of revenues and jobs created. A 2013 analyst report estimates there are 529,000 direct app economy jobs within the EU of which there are 28 members (including the UK), 60 percent of which are mobile app developers.
Обзор
Для облегчения разработки приложений для мобильных устройств и обеспечения их согласованности были предприняты различные подходы. Большинство компаний, выпускающих продукты (например, Apple, iPod/iPhone/iPad), предоставляют официальный комплект разработки программного обеспечения (SDK). Они также могут предложить ту или иную форму тестирования и/или обеспечения качества (QA). В обмен на предоставление SDK или других инструментов от потенциального разработчика может потребоваться подписание соглашения о неразглашении (NDA), ограничивающего распространение конфиденциальной информации. В процессе разработки дизайн мобильного пользовательского интерфейса (UI) является ключевым этапом создания мобильных приложений. Дизайнеры мобильного UI учитывают ограничения, контекст, пространство экрана, способы ввода и мобильность как основу для проектирования. Ограничения в дизайне мобильного UI включают в себя ограниченный объем внимания пользователя и факторы формы, такие как размер экрана мобильного устройства, подходящий для руки пользователя. Контекст мобильного UI включает сигналы, поступающие от действий пользователя, например, местоположение или время использования устройства, которые можно отследить во время взаимодействия с мобильным приложением. Эти контекстные подсказки можно использовать для автоматических предложений при планировании встреч или мероприятий, или для фильтрации списка различных услуг для пользователя. Пользователь часто является центром взаимодействия с устройством, а интерфейс включает в себя компоненты как аппаратного, так и программного обеспечения. Ввод данных пользователем позволяет ему управлять системой, а вывод устройства позволяет системе отображать результаты этих действий. В целом, основная цель дизайна мобильного UI – создание понятного и удобного интерфейса. Функциональность поддерживается мобильными корпоративными платформами приложений или интегрированными средами разработки (IDE). Разработчики мобильных приложений также должны учитывать широкий спектр устройств с разными размерами экрана, аппаратными характеристиками и конфигурациями из-за высокой конкуренции на рынке мобильного оборудования и изменений в каждой из платформ. Сегодня мобильные приложения обычно распространяются через официальные онлайн-магазины или маркетплейсы (например, Apple The App Store, Google Google Play), и существует формализованный процесс подачи приложений разработчиками на утверждение и включение в эти маркетплейсы. Однако исторически это было не всегда так. Мобильные UI, или фронтенды, опираются на мобильные бэкенды для обеспечения доступа к корпоративным системам. Мобильный бэкенд обеспечивает маршрутизацию данных, безопасность, аутентификацию, авторизацию, работу в автономном режиме и оркестрацию сервисов. Эта функциональность поддерживается сочетанием компонентов промежуточного программного обеспечения, включая серверы мобильных приложений, мобильный бэкенд как услугу (MBaaS) и инфраструктуру сервисно-ориентированной архитектуры (SOA).
Платформа
Пакеты разработки программного обеспечения, необходимые для создания, развертывания и управления мобильными приложениями, включают в себя множество компонентов и инструментов, позволяющих разработчику создавать, тестировать и публиковать приложения для одной или нескольких целевых платформ.
Третья сторона
Платформа Язык программирования Доступны отладчики Доступен эмулятор Доступна интегрированная среда разработки Доступно развертывание на разных платформах Варианты упаковки установщика Стоимость инструмента разработки Ускоритель HTML5, C# ✔ ✔Microsoft Visual Studio (без привязки) Все платформы, мобильные приложения основаны на браузере Мобильный веб Доступны коммерческие лицензии MobileTogether XPath/XQuery, Action Trees визуальный язык программирования ✔ ✔ Собственная IDE только для Windows Android, iOS, Windows, браузер Нативный дистрибутив для каждого формата Бесплатный App Inventor для Android Визуальный язык программирования на основе блоков, с конструктором интерфейса Ограниченные инструменты отладки, встроенные в IDE ✔ Конструктор интерфейса на основе веб-интерфейса, с подключением к Java web start программе для программирования блоков Android apk Бесплатный Appcelerator JavaScript ✔ в Titanium Studio. Эмулятор доступен с использованием нативных эмуляторов Titanium Studio на базе Eclipse Android, iPhone; BlackBerry, Tizen, мобильный веб Нативный формат дистрибутива для каждой платформы Бесплатный, с открытым исходным кодом, лицензированный Apache 2.0, доступны коммерческие и корпоративные лицензии Basic4android Синтаксис, аналогичный Visual Basic ✔ Эмулятор доступен с использованием нативных эмуляторов Собственная IDE Android Нативный формат дистрибутива для каждой платформы Доступны коммерческие лицензии Codename One Java ✔ ✔ Eclipse, Netbeans Android, iPhone, BlackBerry, Windows Mobile, J2ME Нативный формат дистрибутива для каждой платформы Открытый исходный код GPLv2 и сервер сборки на основе подписки Solar2D Lua ✔ ✔ Xcode Android, iOS, Nook Color Нативное развертывание для каждой платформы Бесплатная лицензия MIT DragonRAD Визуальный drag & drop редактор плиток ✔ Использует сторонние эмуляторы Собственная IDE Android, BlackBerry, Windows Mobile Развертывание OTA Бесплатные и коммерческие лицензии доступны GeneXus for Mobile and Smart Devices Представление знаний и декларативное программирование для упрощенной разработки, затем код автоматически генерируется для каждой платформы GeneXus использует предварительно протестированные библиотеки кода и отладка кода пользователем не требуется после генерации кода. Публикация в облаке, тестирование нативно на устройстве, эмулятор не нужен Собственная IDE Android, iOS (iPhone, iPad), BlackBerry OS и HTML5 при необходимости Нативный формат дистрибутива для каждой платформы и облачный браузер Бесплатная пробная версия, доступны коммерческие и корпоративные лицензии IBM MobileFirst Studio HTML5, CSS3, JavaScript и языки нативных SDK с Native Worklight API ✔ Мобильный браузерный симулятор или интеграция с отладчиком Native SDK Доступен эмулятор с использованием нативных эмуляторов или браузерного симулятора с Cordova Plugin Плагин Eclipse, автономный Eclipse на базе Android, iOS, BlackBerry 6,7, & 10, Windows Phone 7.5 & 8, Windows 8 (настольные компьютеры, планшеты), Adobe AIR, мобильный веб, веб-страница настольного браузера Нативный формат дистрибутива для каждой платформы Бесплатная версия для разработчиков через Eclipse Marketplace, коммерческая лицензия для развертывания Lazarus Object Pascal ✔, отладка в IDE через ActiveSync для Windows CE Использует эмуляторы платформ Lazarus IDE, включая встроенный конструктор GUI и отладчик Скомпилированный язык доступен для Windows CE, Linux-устройств, порт Symbian в разработке Нативный формат дистрибутива для каждой платформы Бесплатный LambdaNative Scheme но можно создавать и тестировать на localhost Eclipse (программное обеспечение) (необязательно) Все нативные двоичные файлы: Android, iOS, BlackBerry 10, Windows, OS X, Linux, OpenBSD, OpenWrt Нативный формат дистрибутива для каждой платформы Бесплатный (лицензия BSD) LiveCode LiveCode ✔ (интегрировано в IDE) ✔ (могут использоваться эмуляторы iOS и Android) ✔ iOS, Android, macOS, Windows, Linux, сервер, HTML5 Упаковка установщика Нативный формат дистрибутива для каждой платформы Бесплатная версия с открытым исходным кодом, доступны коммерческие и корпоративные версии Macromedia Flash Lite ActionScript ✔ В комплекте с IDE Macromedia Flash MX2004/8, Eclipse ✔ Развертывание SIS CAB или OTA IR Bluetooth SWF файлы Различается, бесплатный, но ограниченный MTASC Marmalade C, C++ ✔ ✔ Visual Studio, Xcode Все нативные: Android, BlackBerry, BREW, iOS (iPhone), Maemo, Palm webOS, Samsung bada, Symbian, Windows Mobile 6. x и настольные, OS X Нативный формат дистрибутива для каждой платформы Доступны коммерческие лицензии Meme IDE MemeScript Валидация предоставляется в представлении проблем ✔, Android эмулятор может быть интегрирован Eclipse RCP Android, Windows Mobile Нативный формат дистрибутива для каждой платформы Бесплатный Monaca HTML5, CSS, JavaScript ✔ Предварительный просмотр доступен в облачной IDE и локальном инструменте Облачная IDE, Visual Studio, сторонние IDE/редакторы Android, iOS, windows8.1, 10 Нативный формат дистрибутива для каждой платформы Бесплатный, до 3 проектов. Доступна коммерческая и корпоративная лицензия Mono for Android C# ✔ ✔ Visual Studio 2005 и MonoDevelop Android Нативный формат дистрибутива платформы MonoTouch C# ✔ ✔ Visual Studio 2005 и MonoDevelop iOS Нативный формат дистрибутива платформы MoSync C, C++, Lua, HTML5, CSS, JavaScript ✔ ✔ Eclipse, Visual Studio 2005 и более поздние, MoBuild с текстовыми редакторами Android, iOS (iPhone), Java ME, Moblin, Smartphone 2003, Symbian, Windows Mobile (Pocket PC), Blackberry (экспериментальный) SIS, CAB, JAD, JAR, APK, развертывание OTA Бесплатный, GPL 2.0, бесплатная подписка Indie; доступна коммерческая подписка NetBeans C++, Java ✔ ✔ Java инструменты разработки Android (мобильные и планшеты), Nokia (Symbian, Seria 60 – 40 – 80) и т. д. Бесплатный OpenPlug ActionScript, XML ✔ ✔ Плагин OpenPlug ELIPS для Adobe Flash Builder Android, iOS (iPad, iPhone, iPod Touch), Symbian, Windows Mobile Нативный формат дистрибутива для каждой платформы Бесплатные и коммерческие лицензии доступны OutSystems OutSystems, CSS, JavaScript ✔ Тестирование непосредственно в браузере OutSystems Service Studio Android, iOS, Windows Phone 7 NA Бесплатная версия Community для личного использования или лицензирование по подписке для коммерческого использования PhoneGap и Apache Cordova HTML, CSS, JavaScript ✔ ✔ Большая часть функциональности может быть протестирована непосредственно в браузере. Также возможно запуск нативных эмуляторов на iOS и Android. ✔ Существует множество IDE для инструментов на основе Cordova, таких как Ionic Studio или Appery. io iPhone, Android, Tizen, Windows Phone, BlackBerry, Symbian, Palm, Bada Нативный формат дистрибутива для каждой платформы Apache 2 Qt SDK C++, QML ✔ ✔ Qt Creator Android (предварительный просмотр технологии), iOS (предварительный просмотр технологии), Symbian, Maemo, MeeGo, Linux, Windows, OS X Нативный формат дистрибутива для каждой платформы Доступны бесплатные и коммерческие лицензии Rhomobile Ruby с функциями интерфейса HTML, компилированными через интерпретатор в нативные приложения ✔ N/A, приложения могут работать в Win32 runner или в эмуляторах устройств для поддерживаемых платформ. Xcode или Eclipse, по запросу RhoHub версия включает полную IDE ✔, поддерживает Android 1.6+, iOS 3.0+ (iPhone, iPad), Windows Mobile 6.1 Professional, Windows Mobile 6.0 Standard, BlackBerry 4.6, 4.7, 5.0, 6.0 (поддерживаются 4.2 и 4.5, но доступ к базе данных очень медленный на этих устройствах), развертывание Symbian OTA, iOS через App store, SIS, CAB, APK, COD Rhodes является бесплатным и открытым исходным кодом под лицензией MIT, RhoSync находится под GPL или коммерческой лицензией, доступна коммерческая поддержка. Подписка на RhoHub RubyMotion Ruby ✔ ✔ Любой текстовый редактор. В качестве IDE, RubyMine. Android, iOS Нативный формат дистрибутива платформы RubyMotion является коммерческим продуктом. Sencha Touch HTML, CSS, JavaScript ✔ ✔ Sencha Architect 2 Android, iOS (iPhone, iPad, iPod touch), Kindle, BlackBerry, Bada Доставка по сети, или гибридная через нативные оболочки для каждой платформы GPLv3, бесплатный для коммерческого использования, платный для OEM и встроенных систем Smartface WYSIWYG редактор дизайна с редактором кода JavaScript ✔ ✔ Smartface IDE и SDK ✔ Android, iOS (iPhone, iPad, iPod touch), Kindle, Gear, Google Glass Нативный формат дистрибутива для каждой платформы Community license и коммерческие лицензии доступны Stencyl Drag and drop редактор на основе Scratch, Objective C ✔ ✔ Xcode iOS (iPad, iPhone, iPod Touch) Нативный формат дистрибутива для каждой платформы Бесплатные и коммерческие лицензии для разработки Telerik Platform, and App...
Система программного обеспечения
Для создания рабочей платформы для разработки мобильных приложений необходимо множество компонентов системного уровня. Платформа Язык программирования Отладчики доступны Эмулятор доступен Интегрированная среда разработки доступна Кроссплатформенное развертывание Варианты упаковки установщика Стоимость инструментов разработки Adobe AIR ActionScript, HTML, CSS, JavaScript ✔ ✔ Flash Builder, Flash Professional, IntelliJ IDEA Android, iOS (iPhone, iPad, iPod touch), BlackBerry Нативный формат распространения каждой платформы Flash Builder, Flash Professional, IntelliJ IDEA Доступны коммерческие лицензии Adobe AIR SDK (инструмент командной строки) Бесплатный BREW C; API предоставляются на C с интерфейсом в стиле C++ Поддержка отладки для нативного целевого кода ARM. Можно использовать Visual Studio для отладки x86-кода тестирования Нет эмулятора для целевого ARM-кода, есть симулятор для x86-кода тестирования Visual Studio 6.0, Visual Studio 2003, Visual Studio 2005 Компиляция для конкретной версии BREW, доступной на устройстве OTA Обычно требуются связанные с разработкой платежи для сертификации Brew-приложений VeriSign – годовой взнос за получение статуса сертифицированного разработчика. Realview ARM компилятор для BREW (доступен бесплатный GNU C/C++, но с ограниченной функциональностью и поддержкой). Плата за тестирование TRUE BREW при распространении приложения. Firefox OS HTML5, CSS, JavaScript ✔ Нет, но доступен симулятор. Firefox, Firebug – веб-браузеры для других платформ Firefox Marketplace, Web URL Разработка требует Mozilla Firefox и надстройку-симулятор NET Compact Framework C#, VB. NET, Basic4ppc ✔ Бесплатный эмулятор, доступен исходный код, также поставляется с IDE Visual Studio 2008, 2005, 2003, Basic4ppc IDE Windows Mobile, Windows CE, устройства на базе Symbian через сторонние инструменты Развертывание OTA, CAB-файлы, ActiveSync Большинство инструментов бесплатны, но для визуальных дизайнеров требуются коммерческие версии Visual Studio OpenFL Haxe (похож на Actionscript и Java) ✔ ✔ IntelliJ IDEA, FlashDevelop Android, iOS (iPhone, iPad, iPod touch), BlackBerry Playbook, WebOS, HTML5, Flash, Windows (exe), Linux Нативный формат распространения каждой платформы Бесплатный Palm OS C, C++, Pascal ✔ OS 1.0–4.1: бесплатный эмулятор от PalmSource (Access); OS 5.0: 5.4 – специфичные для устройства симуляторы от Palm (palmOne) Palm OS Development System (Eclipse), CodeWarrior, PocketStudio, HB++, Satellite Forms Palm OS handhelds или Windows Mobile с эмулятором StyleTap PRC-файлы, PalmSource Installer (.psi) Бесплатный (POSE или GCC для Palm OS) или коммерческий (CodeWarrior) или различные коммерческие фреймворки быстрой разработки Python Python ✔ Надстройка к Nokia Emulator Несколько, включая плагины для Eclipse Интерпретируемый язык доступен нативно только на Nokia Series60 (и настольных компьютерах), хотя существуют порты на другие мобильные платформы, включая Palm OS Развертывание Sis с помощью py2sis или использование Python Runtime Бесплатный Symbian C++ ✔ Бесплатный эмулятор Множество вариантов Компиляция для целевой платформы Развертывание SIS Доступны коммерческие и бесплатные инструменты Tizen На основе веб-технологий: HTML5, CSS, JavaScript Нативный: C, C++ ✔ Бесплатный эмулятор Tizen SDK Веб-приложение, доступное в веб-браузере Tizen через App Store, Web URL Разработка требует Windows, OS X или Ubuntu Desktop Ubuntu Touch На основе веб-технологий: HTML5, CSS, JavaScript Нативный: QML, C++, C ✔ ✔ Ubuntu SDK HTML5-приложение, доступное в веб-браузере. Ubuntu Touch через App Store, Web URL Разработка требует Ubuntu Desktop 12.04 или выше, Бесплатный webOS JavaScript, CSS, HTML, C и C++ через PDK ✔ Бесплатный эмулятор Eclipse webOS, только Palm Развертывание OTA, webOS через App Store, Web URL, Precentral, ipk Бесплатный Windows Mobile C, C++ ✔ Бесплатный эмулятор (доступен исходный код), также поставляется с IDE Visual Studio 2010, 2008, 2005, eMbedded VC++ (бесплатный), Satellite Forms Windows Mobile, Windows CE Развертывание OTA, CAB-файлы, ActiveSync Бесплатные инструменты командной строки или eMbedded VC++, или Visual Studio (Standard edition или выше) Windows Phone C#, Visual Basic, C, C++ ✔ Бесплатный эмулятор, также поставляется с IDE Visual Studio 2012, Visual Studio 2010 Развертывание Windows Phone OTA, XAP-файлы
Критерии выбора платформы разработки обычно включают целевые мобильные платформы, существующую инфраструктуру и навыки разработки. При ориентации на несколько платформ с помощью кроссплатформенной разработки также важно учитывать влияние инструмента на пользовательский опыт. Производительность – еще один важный критерий, поскольку исследования мобильных приложений показывают сильную корреляцию между производительностью приложений и удовлетворенностью пользователей. Наряду с производительностью и другими критериями, доступность технологии и требования проекта могут склонить выбор в пользу нативной или кроссплатформенной среды. Для облегчения выбора между нативными и кроссплатформенными средами были опубликованы некоторые рекомендации и сравнительные тесты. Как правило, кроссплатформенные среды могут использоваться повторно на нескольких платформах, используя нативный контейнер при использовании HTML, CSS и JavaScript для пользовательского интерфейса. В отличие от этого, нативные среды ориентированы на одну платформу для каждой из этих сред. Например, разработка Android происходит в IDE Eclipse с использованием плагинов Android Developer Tools (ADT), разработка Apple iOS происходит в IDE Xcode с использованием Objective-C и/или Swift, Windows и BlackBerry имеют собственные среды разработки.
Принципы разработки для создания успешных мобильных приложений
Согласно отраслевому отчету о приложениях за 2020 год, 46% пользователей мобильных приложений заявили, что прекратили использование или удалили приложение из-за низкой производительности. Эксперты в области дизайна рекомендуют следующие принципы для создания успешных и эффективных мобильных приложений:
Экраны без лишних элементов: Обеспечивают быстрое и простое взаимодействие, позволяя пользователям сосредоточиться на одной конкретной задаче, а не быть перегруженными множеством функций и действий. Эксперты по дизайну настоятельно рекомендуют реализовывать одну задачу на экране и советуют разбивать длинные формы на страницы и последовательно отображать новые задачи или поля, чтобы минимизировать визуальный шум. Снижение когнитивной нагрузки: Обеспечивает плавный пользовательский путь и сохраняет естественный ход работы в приложении. Эксперты по дизайну предлагают использовать автозаполнение, проверку орфографии, подсказки при вводе текста и выпадающие списки для снижения когнитивной нагрузки. Также эксперты по дизайну рекомендуют сохранять состояние приложения при временном выходе и повторном входе пользователя, чтобы он мог продолжить работу с того места, где остановился. Простая навигация: Примерно 11% пользователей удалили приложения из-за сложного интерфейса.