Новости
12.04.2024
Поздравляем с Днём космонавтики!
08.03.2024
Поздравляем с Международным Женским Днем!
23.02.2024
Поздравляем с Днем Защитника Отечества!
Оплата онлайн
При оплате онлайн будет
удержана комиссия 3,5-5,5%








Способ оплаты:

С банковской карты (3,5%)
Сбербанк онлайн (3,5%)
Со счета в Яндекс.Деньгах (5,5%)
Наличными через терминал (3,5%)

ИНТЕРНЕТ-БРАУЗЕР, КАК СРЕДА ДЛЯ СОЗДАНИЯ ПЛАТФОРМОНЕЗАВИСИМЫХ ПРИЛОЖЕНИЙ

Авторы:
Город:
Санкт-Петербург
ВУЗ:
Дата:
06 марта 2016г.

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

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

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

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

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

Идея использовать среду интернет браузера, в качестве среды для создания приложения весьма целесообразна в виду ряда доводов. Первым из них является то, что одной из основных конкурентных черт браузера является возможность использовать его в различных системах и на различных устройствах. В связи с этим компании-разработчики выделяют колоссальное количество ресурсов на проработку этой области. Можно отметить, что в таком случае браузер выступает в роли программы интерпретатора, но существенно различие состоит в том, что браузер в некотором смысле предоставляет еще и графический контекст. Так можно перейти ко второму доводу. Графический интерфейс веб приложения по сути своей представляет собой веб-страницу, что в свою очередь, что дает разработчикам возможность пользоваться всеми обширными инструментами, созданными за все время существования сети интернет. Например, в библиотеке Qt был создан аналог технологии каскадных таблиц стилей CSS и назван по аналогии QSS.

Но существует и ряд довод против веб-приложений. Среди них ограниченный  доступ к аппаратным ресурсам устройств, который делает простые задачи, типа сохранения фотографий, сложнее, чем они должны быть. Но следует заметить, что развитие происходит и в данном направлении. Так в недавнем времени был получен доступ к ресурсам GPU, что позволило создавать трехмерную графику внутри бразуера. Помимо этого стоит упомянуть о том, что уже давно предпринимаются попытки реализовать оффлайн работу веб-приложений. Для этого была разработано кэширование приложений в HTML5 (AppCache).

Так же среди доводов против нужно сказать об ограничении в выборе языка программирования. Все современные браузеры содержат в себе интерпретатор скриптового языка JavaScript. Именно он обеспечивает большую часть интерактивности веб-страниц. Но так же именно он и обуславливает потери в производительности в сравнении с обычным программным обеспечением, потому как он не компилируется в машинный код, а выполняется “налету”. Но именно это и позволяет переносить JavaScript между платформами, и запускать его в браузере независимо от того, работает ли браузер на ПК с Mac, Windows или Linux PC или смартфоне с Android, iOS и другой операционной системой.

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

Но все же способы обхода ограничений структуры JavaScript постепенно становятся возможными за счет улучшение других веб-технологий, которые предоставляют альтернативные маршруты к более высокой производительности, такие как браузерные приложения. Этот факт привел к появлению так называемых веб- платформ, которые используются как операционные системы – это прежде всего Chrome OS, Mozilla с ориентированной на смартфоны Firefox OS. Google недавно сделал «пакетные приложения» – Chrome Web Apps, которые ведут себя больше как нативные приложения и могут работать в автономном режиме и вне браузера.

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

Работа по стандартизации интерфейсов API для веб-технологий доступа ко многим из функций, доступных на современных устройствах проходит в рамках W3C. Текущая работа в этом году включает в себя: изложение API системного уровня, позволяющего веб-приложению управлять контактами устройства, API обмена сообщениями, новые механизмы для записи, новые триггеры событий, которые могли бы использовать мышь, ручку и сенсорный ввод, новый push-API, позволяющий веб-приложениям получать сообщения в фоновом режиме, новые медиа- запросы для быстрореагирующего веб-дизайна, API для обмена информации с помощью NFC и точный контроль над загрузкой ресурсов в веб-документе.

В октябре прошлого года W3C также основал Рабочую Группу Системных Приложений, целью которой является обеспечение среды выполнения, безопасная модель, и связанные с ними интерфейсы API для создания веб-приложений с возможностями, сопоставимыми с нативными приложениями. С момента своего запуска, группа опубликовала семь спецификаций, затрагивая такие темы, как модель безопасности вне браузера и сырые сокеты. В заключении можно отметить, что идея использования веб-приложения, как кроссплатформенную альтернативу нативным приложениям обладает своими достоинствами и недостатками и должна быть использована с учетом конкретно заданных условий. Но в будущем с развитием веб-технологий, возможен и полный переход в среду веб.

 

Список литературы

1.     Марк Саммерфилд Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++ // Символ-Плюс, High Tech,- 2011,- С.560

2.     Julian Smart, Kevin Hock, Stefan Csomor Cross-Platform GUI Programming with wxWidgets // R.R. Donnelley & Sons in Crawfordsville, Indiana ,- 2005,- С. 744

3.     Luis Corral, Andrea Janes, adas Remencius Potential Advantages and Disadvantages of Multiplatform Development Frameworks–A Vision on Mobile Environments // Elsevier Ltd. ,- 2012, p. 1202–1207

4.     Hermes D. Xamarin Mobile Application Development: Cross-Platform C# and Xamarin.Forms Fundamentals // England: Apress,- 2015,- 432