ISO БПИ – БГПА - БНТУ

Университет

Одно окно

Услуги

Обучение иностранных граждан

Работодателям

Вакансии

УНИВЕРСИТЕТ

Новости - Конференция МИДО

Дорофеев Н.В. РАЗРАБОТКА КРОССПЛАТФОРМЕННОГО МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ОБРАБОТКИ ИЗОБРАЖЕНИЙ

 

УДК 621.9.048.7

 

Разработка кроссплатформенного мобильного приложения для обработки изображений

Дорофеев Н.В.

e-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript

1 ВВЕДЕНИЕ

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

1. 1 Среды выполнения

Android, iOS и Windows Mobile поддерживают стандартные бинарные файлы приложений как на персональных компьютерах с кодом выполняющимся на процессоре определенного формата (в основном используется архитектура ARM). Windows Mobile может быть скомпилирована для архитектуры x86 для отладки на ПК без эмуляции процессора, а также поддерживает формат Portable Executable (PE) связанный с .NET Framework. Windows Mobile, Android, HP webOS и iOS предоставляют бесплатные SDK и интегрированные среды разработки для разработчиков.

1.2 Кроссплатформенность

Кроссплатформенное (межплатформенное) программное обеспечение — программное обеспечение, работающее более чем на одной аппаратной платформе и/или операционной системе. Типичным примером является программное обеспечение, предназначенное для работы в операционных системах Linux, Mac OS и Windows одновременно.

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

Не менее важны для кроссплатформенности стандартизованные библиотеки времени выполнения. В частности, стандартом стала библиотека языка Си.

1.3 Кроссплатформенный пользовательский интерфейс

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

1. Единый стиль, общий для всех ОС. Программы выглядят одинаково под всеми ОС. Так работают интерфейсные библиотеки Java наподобие Swing.

• Плюс: можно жёстко расставлять элементы управления на манер Delphi; оригинальный стиль.

• Минус: системе приходится иметь свои экранные шрифты; стиль отличается от стиля ОС.

2. Самоадаптирующийся интерфейс, подстраивающий сетку под реальные размеры элементов управления. Типичные примеры — wxWidgets, XUL.

• Плюс: стандартный стиль ОС, очень быстрый и «скинующийся» под Windows XP, Vista и 7, 8; некоторая автоматизация локализации.

• Минус: чтобы собрать самоадаптирующуюся сетку, требуется квалифицированный программист; затруднена плотная компоновка.

3. Гибридный подход реализован в GTK+.

• Плюс: шрифты можно брать из системы, а не «тащить» свои; некоторая автоматизация локализации.

• Минус: берёт все недостатки от первых двух подходов. Стиль отличается от стиля ОС; затруднена плотная компоновка.

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

1.4 Магазины приложений

Различные инициативы существуют от мобильных операторов и от производителей. Разработчики приложений могут предлагать и публиковать свои программы в магазинах приложений, с возможностью зарабатывать от распределения доходов по продажам. Самым известными являются App Store Apple, где только одобренные приложения могут распространяться и запускаться на iOS устройствах (также известно как walled garden), и Android Market Google, приложения в котором работают на Android OS.

2 МУЛЬТИТАЧ (MULTI-TOUCH)

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

Мультитач позволяет не только определить взаимное расположение нескольких точек касания в каждый момент времени, но и определить пару координат для каждой точки касания, независимо от их положения относительно друг друга и границ сенсорной панели. Правильное распознавание всех точек касания увеличивает возможности интерфейса сенсорной системы ввода. Круг решаемых задач при использовании функции мультитач зависит от скорости, эффективности и интуитивности её применения.

2.1 Использование мультитач в обработке изображений.

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

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

2.2 Жесты мультикасаний

• Сдвинуть пальцы — мельче;

• Раздвинуть пальцы — крупнее;

• Двигать несколькими пальцами — прокрутка;

• Поворот двумя пальцами — поворот объекта/изображения.

2.3 Реализация мультитач

Наиболее популярной формой мультикасаемых устройств являются мобильные устройства (Samsung Galaxy, большинство современных моделей смартфонов HTC, iPhone, iPad, iPod touch), мультикасаемые столы (например: Microsoft PixelSense (ранее назывался Microsoft Surface) и мультикасаемые стены. Имеются также и реализации сферических мультикасаемых экранов (Microsoft Sphere Project, Мультикасаемый ГЛОБУС).

В попытке сделать дорогие технологии более доступными любители также опубликовали способы построения DIYмультикасаемых-экранов.

3 РЕЖИМ «ДВА ОКНА»

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

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

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

Возможности режима «Два активных окна» в полной мере раскрываются на дисплее Full HD с диагональю 5,7 дюйма. Крупный дисплей позволяет работать эффективнее и быстрее. Раньше требовалось переходить с одного экрана на другой, чтобы решить какую-либо задачу, но сейчас режим «Два активных окна» позволяет одновременно выполнять две задачи, например смотреть веб-сайт и переписываться с другом. Иными словами — два приложения работают параллельно на одном экране. Кроме того, разделительная полоса между приложениями поддерживает режим перемещения, что позволяет легко переносить текст или снимок изображения с одного окна в другое.

ЛИТЕРАТУРА

1. «Объектно-ориентированное программирование в C++. 4-е издание» (Роберт Лафоре)

2. «Объектно-ориентированное программирование на С++» (Айра Пол)

3. «Отладка в С++. Руководство для разработчиков» (К.Х. Паппас, У.Х. Мюррей III)

4. WinCity.RU - город компьютерной документации.