Многие годы технологии развивались преимущественно эволюционно, но в последние 5-10 лет ситуация изменилась: начали появляться новинки техники — по большей части мобильной, — подрывающие устои индустрии. Не в последнюю очередь это связано с возрастающей популярностью открытых стандартов и Open Source, но еще большее влияние на появление новых типов устройств оказало усовершенствование техпроцессов: компоненты гаджетов становятся все миниатюрнее, и это создает предпосылки для экспериментов производителей с форм-факторами.

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

Независимый эксперт Роб Бемфорс склоняется к мысли, что теперь чтобы оставаться на плаву инженеры вынуждены ориентироваться на вкусы и запросы клиентов, тогда как раньше они не заглядывали дальше API. С одной стороны, разнообразие форм-факторов усложняет жизнь разработчиков, с другой — открывает перед ними новые возможности. Эксперт на портале ComputerWeekly советует, какие инструменты и платформы лучше применять, а также рассуждает о перспективах мобильной разработки.

Смартфоны и планшеты

Первое, что нужно учитывать разработчикам — это размеры экрана мобильных девайсов и, соответственно, накладываемые этим ограничения. Впрочем, в последнее время многие из них удалось обойти при помощи профилей и спецификаций, которые включают User Agent Profile (применяется для приложений, осуществляющих доступ к веб-сайтам, таким как браузеры, поисковики) и HTML. Постепенно вытесняя Java и Flash, эти спецификации стали квинтэссенцией унифицированных средств разработки. Впрочем, несмотря на возраст, Java по-прежнему остается важным элементом кросс-платформенного инструментария.

Помимо размеров экраны могут отличаться разрешениями (плотностью пикселов), которые уже «дозрели» до такой степени, что мобильные устройства могут показывать фото и видео высокой четкости и 4K. Учитывая, что приложения требуется приспосабливать под разные размеры экранов, разработчики мобильных ОС создали модели для подстройки софта.

Так, Google придумала для Android свою независимую от пикселов единицу измерения, которая называется DIP — это около 160 не зависящих от плотности пикселов на дюйм. DIP можно конвертировать в пикселы с помощью масштабного множителя (2x, 3x и так далее). Apple применяет схожую модель.

Обеспечение согласованности (консистентности) кодовой базы также требует повышенного внимания. Для решения этой задачи можно применять решения как уже известных компаний, так и новичков. Среди самых популярных: PhoneGap и Apache Cordova. PhoneGap — это Open Source-инструментарий, позволяющий разрабатывать мобильные приложения на HTML, JavaScript и CSS под различные платформы (практически без изменения кода). В их число входят iOS и Android. Движок PhoneGap расширяет API браузера и добавляет возможности доступа к акселерометру, камере, компасу, списку контактов, записи и прослушивания аудиофайлов, предоставляет доступ к файловой системе, позволяет работать с HTML5-хранилищами localStorage, Web SQL и т. п. Apache Cordova — это по сути PhoneGap, но дополненный инфраструктурой Adobe, включая ionic, Telerik, Framework7 и Evothings.

При выборе решения для кросс-компиляции можно обратить внимание на Microsoft Xamarin, RubyMotion или Appcelerator — все эти продукты служат для преобразования кода в нативный для целевых мобильных устройств. Xamarin позволяет создавать одну единую логику приложения с применением C# и .NET сразу для Android, iOS и Windows. RubyMotion становится все более популярным инструментом для разработки под iOS. Применяющие его разработчики получают такие преимущества, как интеллектуальное автодополнение кода, тестирование и отладка с использованием графического интерфейса. Приложения в среде Appcelerator разрабатываются с использованием веб-технологий, что позволяет взаимодействовать с веб-службами и упрощает процесс разработки, а также экономит время для обмена информацией через удаленную связь.

Несмотря на то, что классический десктоп вот уже который год сдает свои позиции под натиском мобильных девайсов, разработчикам следует иметь ввиду, что приложения должны качественно работать как на настольных, так и на мобильных платформах. Для обеспечения этих задач можно обратиться к полнофункциональным платформам для разработки корпоративных приложений, таким как Kony AppPlatform, Pega Application Mobility Platform (ранее Antenna) и SAP Mobile.

Носимые устройства

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

На это указывает появление на рынке сложных устройств, таких как Samsung Gear S с поддержкой голосовой телефонии, наличием адаптеров для беспроводного соединения и GPS. Носимые устройства работают на уровне приложений как компаньоны смартфонов. Разработчики, которые интересуются разработкой под смарт-часы Samsung, могут ориентироваться на Tizen Studio. Это интегрированная среда разработки, созданная на базе платформы Eclipse, и включающая специальный визуальный наладчик интерфейсов. В состав также входит набор эмуляторов Tizen-устройств (смартфона, телевизора, «умных» часов), инструменты для разработки приложений на Си/С++ , компоненты системных приложений и драйверов, утилиты.

Разработчики на .Net могут воспользоваться инструментами Visual Studio. Эта среда разработки включает редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и много другое.

Преимуществом Android Studio является то, что она позволяет создавать софт для всех Android-устройств, в том числе смарт-устройств на базе новейшей версии Wear 2.0, и тестировать их без привлечения эмулятора. Не так давно Google расширила возможности Wear 2.0, позволив загружать приложения напрямую через Google Play Store. Также появилась возможность подключать носимые устройств на базе Android Wear к устройствам на iOS (iPhone).

В арсенале разработчиков приложений для смарт-часов Apple имеется комплект (SDK) watchOS 4, расширение WatchKit и интерактивная среда разработки Xcode. Apple также запустила программу для оказания содействия разработчикам корпоративных приложений, которая включает рекомендации и руководства для ускоренной сборки программ.

Свой вклад вносит и Amazon. Компания выпустила Alexa Mobile Accessory Kit, который позволяет смарт-колонкам через Bluetooth подключаться к службе Alexa Voice Service (AVS) через приложение Alexa на устройствах iOS или Android. Для более сложных устройств Amazon выпустила другое эталонное решение — Alexa Premium Far-Field. Компания планирует, что эти инструменты ускорят внедрение ее голосового помощника на наушниках, смартфонах, «умных» часах и фитнес-трекерах разных производителей.

«Умные» колонки

В той или иной форме технологии распознавания голоса появились в 1980-х, но настоящую популярность они обрели только после выхода «умных» колонок. Amazon Echo в 2015 г. стала первым устройством подобного типа, затем свои решения выпустили или готовятся это сделать многие крупные технологические компании. Помимо голосового ассистента Alexa на рынке представлены Apple Siri, Google Assistant (аналог Google Now, но с высокоуровневым искусственным интеллектом), Microsoft Cortana, Samsung Bixby, ИИ-платформа для обработки естественного языка IBM Watson. Устройство всех голосовых ассистентов в целом одинаково: распознавание голосовых команд «на другом конце провода».

Обучение ИИ, улучшение средств распознавания — это еще одна растущая экосистема мобильной разработки. Apple одной из первых выпустила своего ассистента, но слишком медлила с его продвижением и сейчас его перспективы не ясны. К тому же, Siri — это закрытая экосистема, что также не играет в его пользу. В то же время Microsoft прилагает все усилия, чтобы закрепиться на высококонкурентном рынке. Она предлагает разработчикам применять для нативных облачных приложений в Azure такие средства, как Cortana Intelligence Suite.

Google отстает от конкурентов, но по каким-то одной ей известным соображениям не разрешает сторонним производителям встраивать в свои устройства своего ассистента. Не удалось поймать волну и Samsung — ее помощник Bixby работает исключительно с гаджетами самой компании. Пионер рынка Amazon сразу понял, что в одиночку смарт-колонки не раскрутить. Поэтому компания начала договариваться с сервисами и производителями о взаимовыгодном сотрудничестве. Это привело к тому, что Alexa сейчас встречается даже в автомобилях, кофеварках и микроволновках.

Amazon позаботилась и об экосистеме разработки, выпустив Alexa Skills Kit — набор API, инструментов, документации и образцов кода. Компания расширяет навыки помощника Alexa: разработчикам было предоставлены обновленные API, с помощью которых система может быть обучена новым способностям. Число таких загружаемых навыков, разрабатываемых сторонними разработчиками, выросло до семи тысяч. Широта экосистемы и поддержка разработчиков будут иметь решающее значение для выживания той или иной платформы, ее успех будет определяться не только количеством проданных колонок, но и качеством инструментов разработки, шаблонов и стабильностью API.

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

Дополненная реальность

Шлемы, гарнитуры, очки дополненной реальности (AR), а также 3D-смартфоны — это еще одно поле применения мобильных технологий. Недавние достижения технологий Immersive Mode (режим погружения) вывели восприятие цифровой информации на новый уровень. Режим погружения появился в Android 4.4 KitKat. В этом режиме программа показывается пользователю на весь экран, при этом не видны любые системные панели, в том числе и панель навигации, что позволяет полностью погрузиться в контент.

Виды на AR имеют Google (которая вернулась к доработке смарт-очков Glass), Microsoft (HoloLens) и Epson (Moverio). Остальные продукты типа HTC Vive, Oculus Rift и Sony VR ориентированы на виртуальную реальность (VR). Всплеск интереса к VR/AR может быть связан с тем, что существенно усовершенствовались камеры и датчики, а также технологии наложения реальностей. Для разработчиков дизайна и AR-приложений доступен богатый инструментарий: ARToolKit, Augmented Reality SDK Kudan, EON Reality, InfinityAR, SmartCam3D View, Vuforia и др.

AR интересуются и небольшие компании. Например, компания Zappar решила «демократизировать» AR, входной порог в которую для многих пользователей слишком высок. Суть технологии Zappar сводится к тому, что люди в реальном мире отмечают маркерами понравившиеся им объекты, которые затем могут распознаваться камерами смартфонов, вставленных в 30-долл. шлем AR ZapBox. Разработчики могут бесплатно (только в некоммерческих целях) воспользоваться инструментарием ZapWorks Studio.

Однако вместе с развитием таких технологий, как SLAM (Simultaneous Localization and Mapping) и LIDAR (Light Imaging Detection And Ranging), а также с дальнейшим усовершенствованием датчиков, GPS, компасов и акселерометров, которые помимо смартфонов и других мобильных девайсов встраиваются в беспилотные летательные аппараты, автономные транспортные средства, необходимость в маркировках объектов отпадет (правда при этом возрастет потребление компьютерных мощностей). В этой ситуации неоценимую помощь AR оказывают облака, популяризирующие инструменты типа SDK Wikitude AR. Последний предоставляет обширные средства создания новых приложений AR. В дополнение к стандартным возможностям, он включает возможность мгновенного распознавания изображений и объектов, геолокацию и т. д. Проект Wikitude является более открытым для пользователей, чем его конкуренты. Все, что нужно для того, чтобы добавить в базу данных сведения о новом объекте, — залогиниться с помощью аккаунта Google, Twitter или OpenID.

Независимо от того, какие методы разработки применяются на предприятии — Agile или DevOps, — чтобы оставаться в тренде, девелоперам нужно держать нос по ветру, экспериментируя с новыми мобильными и подключенными девайсами.