Опубликован: 06.05.2014 | Доступ: свободный | Студентов: 2169 / 274 | Длительность: 10:33:00
Лекция 4:

Принципы переноса ранее разработанных приложений на смартфон

Аннотация: Существует огромное количество приложений, хорошо зарекомендовавших себя на десктопах, но при этом не имеющих мобильных аналогов. Лекция посвящена возможностям переноса уже существующего приложения для работы на смартфоне. Рассматриваются общие принципы портирования приложений, особенности разработки интерфейсов с учетом возможностей смартфона, особенности портирования ресурсов и сложности, возникающие при переносе приложений на другую платформу. Также приведен обзор программных средств, облегчающих портирование, в котором особое внимание уделяется среде Intel XDK. Для наиболее удобного изучения материала данной темы настоятельно рекомендуется предварительно пройти курс Введение в разработку приложений для ОС Android. Скриншоты приложений взяты из магазина приложений Google Play или сделаны самостоятельно с использованием смартфона Мегафон SP-A20i Mint на платформе Intel Medfield.

Общие принципы портирования приложений

Презентацию к лекции Вы можете скачать здесь.

Портирование приложений

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

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

Необходимость в портировании возникает обычно из-за различий в системе команд процессора, различий между способами взаимодействия операционной системы и программ (API — Application Program Interface), принципиальных различий в архитектуре вычислительных систем, либо по причине некоторых несовместимостей или даже полного отсутствия используемого языка программирования в целевом окружении.

Международные стандарты значительно упрощают портирование. Они описывают среду исполнения программ таким образом, что различия между платформами становятся минимальными. Часто портирование программ между платформами, реализующими один и тот же стандарт (такой как POSIX.1), сводится к перекомпиляции программы на новой платформе. Существует также всё расширяющийся набор инструментов, облегчающих портирование, например, таких как GCC, предоставляющий неизменный язык программирования на различных платформах.

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

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

На рис. 7.1 представлен пример портированной программы.

Главное окно популярного приложения Adobe Reader, предназначенного для просмотра файлов в формате *.pdf. Слева версия для ПК на базе Windows, справа Android

Рис. 7.1. Главное окно популярного приложения Adobe Reader, предназначенного для просмотра файлов в формате *.pdf. Слева версия для ПК на базе Windows, справа Android

Технические особенности смартфонов, влияющие на работу приложений

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

К особенностям смартфонов, требующим особого внимания при разработке приложений, относятся:

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

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

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

Особенности портирования приложений на мобильные платформы

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

Разработка мобильного приложения "с нуля" состоит из нескольких важных этапов:

  • Постановка задачи.
  • Создание прототипа (бумажного или приложения-заглушки).
  • Определение системных требований и выбор инструмента.
  • Работа над графикой и дизайном приложения и разработка приложения (эти процессы обычно выполняются разными людьми и идут параллельно).
  • Тестирование и оптимизация.
  • Подготовка и публикация приложения в магазине.
  • Сбор аналитики и получение обратной связи.
  • Исправление недочетов и выпуск обновлений.

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

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

При выборе платформы разработки приложения необходимо сначала определиться с ее типом. Существуют три варианта: родная (нативная), Web и гибридная.

Родные (нативные) платформы позволяют создавать приложения, которые замечательно выглядят и воспринимаются, а также обеспечивают сравнительно высокую производительность. Оборотная сторона разработки родных приложений ? для каждой платформы нужно писать свой код. Портирование нативных приложений наиболее сложное.

Мобильные Web-приложения обычно пишут на HTML5, CSS и JavaScript. Их можно написать один раз и запускать на разных платформах, но такие приложения могут уступать родным по внешнему виду, восприятию и производительности. Портирование не представляет особых сложностей.

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

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

Сергей Горбунов
Сергей Горбунов
Украина, Киев