Как написать десктопное приложение на python

Хранение данных и ресурсов в приложениях на nw.js

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

Эту задачу можно разделить на 2 части:

1) Хранение структурированных данных 2) Хранение локальных статических ресурсов (фото, видео и других файлов)

Хранение структурированных данных

На сегодняшний день в арсенале разработчика есть несколько встроенных браузерных API. Все они есть в Chromium, который является частью nw.js

Хранение локальных статических ресурсов

  • Windows
  • Linux
  • OSX

где – это поле, заданное в package.json

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

Особенности Falkon

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

Это очень важное преимущество, особенно перед Chrome, в котором над работой блокировщиков рекламы нависла серьезная угроза

Интерфейс Falkon можно сделать прозрачным

От классического браузера Opera 12.x, поддержка которого прекращена после перехода на движок Blink, Falkon досталась «Экспресс-панель», страница быстрого доступа к наиболее часто посещаемым сайтам.

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

Сергей Пимков, Selectel: Какие IaaS-решения нужны бизнесу в 2022 году
Облачные сервисы

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

Также в Falcon реализована возможность приватного веб-серфинга – в этом режиме браузер не пишет историю посещений и не сохраняет файлы Cookie. В одной из последних версий разработчики добавили возможность импорта закладок из Firefox и Chrome.

Сборка приложения

Для сборки десктопного приложения на Python нам понадобится pyinstaller.

Чтобы в сборку добавились все необходимые ресурсы, создадим файл spec:

Настройки файла spec

Параметр datas можно использовать для того, чтобы включить файл в приложение. Это список кортежей, каждый из которых обязательно должен иметь target path(откуда брать файлы) и destination path(где будет находится приложение). destination path должен быть относительным. Чтобы расположить все ресурсы в одной папке с exe-файлами используйте пустую строку.

Измените параметр datas, на путь к вашей папке с UI:

Параметр console установим в false, потому что у нас не консольное приложение.

Параметр name внутри вызова Exe, это имя исполняемого файла. name внутри вызова Collect, это имя папки в которой появится готовое приложение. Имена создаются на основании файла для которого мы создали spec — main.py.

Теперь можно запустить сборку:

В папке dist появится папка main. Для запуска программы достаточно запустить файл main.exe.

Так будет выглядеть содержимое папки с десктопным приложением на Python:

Какой лучший браузер с низкой оперативной памятью для моих устройств Android ?

Ничто не сравнится с Google Go, если вы ищете удобный и легкий мобильный браузер для своего Android.

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

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

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

Дополнительные возможности:

  • Камера поиска и перевода
  • 40 % экономии данных
  • Размер файла 6,75 МБ

⇒ Получите Google Go

Opera Mini — один из самых быстрых и легких браузеров. Вы получаете более низкое энергопотребление, более быстрый просмотр, полезные функции и многое другое.

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

Недостатком является его загрузка. По сравнению с другими легкими браузерами эта функция работает немного медленнее.

Opera Mini — отличный браузер с эффективным использованием оперативной памяти, который можно сделать еще быстрее, отключив определенные функции.

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

Дополнительные возможности:

  • Улучшенное резервное копирование данных
  • встроенный блокировщик рекламы
  • умный загрузчик

⇒ Получить Opera Mini

Pure Browser — это новый легкий браузер со многими важными функциями, которые очень востребованы в наши дни.

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

С включенным ночным режимом Pure Browser просмотр фильмов онлайн становится более приятным.

Браузер строг в отношении блокировки рекламы и конфиденциальности, он не регистрирует никаких пользовательских данных и защищает ваши данные и конфиденциальность в Интернете.

Дополнительные возможности:

  • Размер файла 3 МБ
  • быстрый загрузчик видео
  • молниеносный просмотр

⇒ Получить чистый браузер

Через браузер — это простой и минималистичный браузер, который вы можете использовать для экономии оперативной памяти на вашем устройстве. Android.

Большинство интернет-браузеров заполняют свои домашние страницы информацией, которая не всегда имеет смысл для пользователей. Но в браузере Via вы видите только строку поиска на главной странице; никакая другая нерелевантная информация отображаться не будет.

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

Самая важная особенность этого браузера в том, что он поддерживает плагины. Он содержит два встроенных плагина, первый из которых — сканер QR-кода, а второй — менеджер загрузок.

Дополнительные возможности:

  • Размер файла 553 КБ
  • резервное копирование данных
  • ночной режим

⇒ Получить через браузер

Брать; наш полный список браузеров, экономящих оперативную память для ваших устройств Android.

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

Все еще есть проблемы? Исправьте их с помощью этого инструмента:

В этом месяце Restoro скачали 0 читателей.

Вступление

Тема красивых интерфейсов была и будет актуальна всегда. Кто-то использует для создания графических приложений C#, кто-то использует Java, кто-то уходит в дебри C++, ну а кто-то извращается с Python, используя tkinter или PyQT. Существуют различные технологии, позволяющие совмещать красоту графических дизайнов, создаваемых на HTML, CSS и JS с гибкостью в реализации логики приложения, которую может дать другой язык. Так вот, для тех, кто пишет на самом лучшем языке программирования Python, есть возможность писать красивые интерфейсы на HTML, CSS и JS и прикручивать к ним логику на Python.

В этой статья я хочу показать на небольшом примере, как же все таки создать простое и красивое десктопное приложение на HTML, CSS, JS и Python. В качестве библиотеки для связи всех компонентов будем использовать EEL.

Первое десктопное приложение на HTML, JS и Electron

Веб-приложения становятся все более мощными с каждым годом, но остается еще место для классических приложений, обладающих полным доступом к оборудованию компьютера. Сегодня вы можете создать десктопное приложения при помощи хорошо знакомых вам HTML, JS и Node.js, упаковать его в исполняемый файл и пользоваться им на Windows, OS X и Linux.

Существуют два самых популярных проекта с открытым исходным кодом, позволяющих сделать это. Это NW.js и Electron, последний мы и будем рассматривать сегодня. Мы собираемся переписать версию, которую делали на NW.js, так что вы сможете еще и сравнить их между собой.

Начинаем работу с Electron

Программы, которые создаются при помощи Electron это просто веб сайты, которые открываются во встроенном браузере Chromium. В дополнение к стандартным API HTML5 эти сайты могут использовать полный набор модулей Node.js и специальных модулей Electron, которые позволяют получить доступ к операционной системе.

Глядя на структуру файлов вы никогда бы не догадались что это десктопное приложение, а не просто веб сайт.

Мы рассмотрим наиболее интересные файлы и то как они работают минутой позже, а пока давайте заглянем под капот.

Запуск приложения

Поскольку приложение Electron это просто Node.js приложение, вам нужно установить npm. Сделать это довольно просто.

Откройте терминал и выполните в директории проекта следующую команду:

Это создаст папку node_modules, содержащую все необходимые зависимости для приложения. Затем, введите в терминале следующее:

Приложение должно открыться в новом окне, обратите внимание, что оно имеет только верхнее меню и больше ничего

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

Когда оно будет упаковано, пользователь будет запускать его как обычно — двойным кликом по иконке.

Как это сделано

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

package.json

Если вы уже работали с Node.js, то у вас уже имеется представление как это все работает

Важно отметить команду npm start которая запускает приложение. Когда мы вызываем эту команду в консоли, то просим electron запустить файл main.js

Этот файл содержит маленький скрипт, который открывает окно приложения, определяет некоторые параметры и обработчики событий.

main.js

Давайте взглянем на то, что мы делаем в методе ready . Сначала мы определяем окно браузера и устанавливаем его первоначальный размер. Затем мы загружаем в него файл index.html, который работает точно так же, как если бы мы открыли его в браузере.

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

index.html

Здесь у нас html-код, ссылки на необходимые стили, js библиотеки и скрипты. Заметили что jQuery подключен странным способом? См. этот issue, чтобы узнать почему подключение происходит именно так.

Наконец, собственно сам JavaScript код нашего приложения. В нем мы подключаемся к RSS ленте, получаем последние статьи и показываем их. Если мы попытаемся провернуть такую операцию в окружении браузера, то ничего не получится. Канал находится на другом домене и получение данных с него запрещено. Однако в Electron такого ограничения нет, мы можем получить необходимую информацию при помощи AJAX-запроса.

Есть одна классная вещь, в приведенном выше коде, она заключается в том, что в одном файле можно одновременно использовать:

  • JavaScript библиотеки — jQuery и jQuery Flipster для создания карусели.
  • Собственный модули Electron — оболочку, которая предоставляет API для desktop-задач. В нашем случае открытие url в браузере по умолчанию.
  • Node.js модули — Модуль OS для доступа к информации о системе, Pretty Bytes для форматирования.

С их помощью наше приложение готово к работе!

Есть еще одна важная вещь, которую нужно сделать чтобы ваше приложение попало к конечному пользователю. Вы должны упаковать его в исполняемый файл, который будут запускать двойным щелчком. Необходимо будет собрать отдельный дистрибутив для каждой из систем: Windows, OS X, Linux. В этом нам поможет Electron Packager.

Создание приложения

Electron можно установить через NPM или загрузить из интернета. Чтобы упростить работу, мы интегрировали конструктор приложений Electron прямо в App Manager.

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

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

None
Не устанавливайте никаких двоичных файлов. Используйте утилиту NPM и инструкции , чтобы продолжить создание вашего приложения.
Windows (64-bit)
Windows 7 или более поздняя версия, 64 бит.
macOS (64-bit)
macOS 10.10 (Yosemite) или более поздняя версия, Intel Macs.
macOS App Store (64-bit)
Уменьшенная версия для Mac App Store. Работает на macOS 10.10 (Yosemite) или более поздней версии, Intel Mac.
Linux (64-bit)
Linux, 64 bit, такие как Ubuntu, Fedora, OpenSuse, или Arch.
Windows (ARM)
Windows 10 на устройствах с 64-разрядными процессорами ARM.
macOS (ARM)
macOS 11 (Big Sur) или более поздняя версия, компьютеры Apple Silicon (также известный как M1) Mac.
macOS App Store (ARM)
Уменьшенная версия для Mac App Store. Работает на macOS 11 (Big Sur) или более поздней версии, компьютерах Apple Silicon (также известных как M1).
Linux (ARM)
Linux на 64-битных устройствах ARM.
Windows (32-bit)
Windows 7 или более поздняя версия, 32 bit.
Linux (32-bit)
Linux, 32 bit версия.

Из-за ограничений архитектуры ОС Windows невозможно создавать приложения для macOS на этой системе. Вместо этого используйте macOS или Linux.

Когда ваше приложение будет готово, скачайте его, а затем распакуйте zip-архив в какой-нибудь каталог.

Разрабатываем ПО

Для Android существует полноценная среда разработки приложений AIDE. Конечно, возможностей по сравнению с Eclipse или Android Studio не слишком много, но достаточно для того, чтобы с нуля написать любое приложение или что угодно поменять в уже созданном проекте (это вопрос только времени и знаний). Поддерживаются языки Java и С/C++, есть отладчик, подсветка синтаксиса, продвинутая система подсказок при вводе, проверка на ошибки в реальном времени. В приложении присутствует редактор графического интерфейса. Он не очень удобен, но довольно функционален. AIDE умеет работать с проектами, созданными в Android Studio и Eclipse. Но есть и недостатки: не всякий код нормально компилируется, компилятор не понимает кириллицу.

Существует также премиум-версия. Она включает в себя некоторые полезные для опытных разработчиков функции: сохранение проекта более чем из пяти файлов, автоматический запуск без необходимости подтверждения, поддержка Git и прямой публикации APK в маркете. За дополнительную плату можно разблокировать доступ к урокам по программированию (курс посвящен языку Java и разработке приложений под Android, в том числе Android Wear). Обучение программированию ведется с помощью самого приложения. Задания очень простые, но на английском.

AIDE

Есть и версия AIDE для разработки веб-приложений — AIDE Web. Интерфейс почти полностью идентичен AIDE. Набирать код так же удобно благодаря обширному инструментарию.

В iOS программировать на C и C++ можно с помощью IDE CppCode. Тут есть и менеджер файлов, и редактор с подсветкой синтаксиса, а также простенький отладчик и компилятор. Для работы с JavaScript удобно пользоваться JavaScript Anywhere. Тут все стандартно: слева — панель документов, справа — панель для редактирования кода. Три вкладки: HTML, CSS и JS. А еще есть интеграция с Dropbox и менеджер загрузки изображений.

Преимущества приложений

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

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

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

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

Теперь, когда вы поняли важность веб-приложения, давайте посмотрим, как вы можете превратить веб-сайт в веб-приложение на популярных платформах, один за другим

Почему браузер опера сильно грузит память?

Браузер Opera потребляет много оперативной памяти — решение Причиной того, что браузер Opera потребляет много оперативной памяти, может быть и перегруженность лишними плагинами, и засоренность кэша браузера, а также заражение системы вирусами.

Как уменьшить потребление оперативной памяти браузером Opera?

Открываем вкладку. Нажимаем на иконку расширения в правом верхнем углу и выбираем:Suspend this tab. Вкладка перешла в спящий режим и больше не нагружает оперативную память. По умолчанию:если на протяжении часа ничего не происходит на вкладке, то она автоматически перейдет в спящий режим.

Почему браузер жрет много оперативки?

Google Chrome требует много места в оперативной памяти из-за особенности своей работы — все дело в многопроцессном режиме. При обработке данных браузер разделяет каждую страницу, плагин и расширение на отдельный процесс, поэтому программа во время работы занимает больший объем оперативной памяти.

Почему так сильно тормозит Opera?

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

Что значит недостаточно памяти в опере?

Браузеру Opera может не хватать памяти по причине перегруженности кэша. Для его очистки проделаем следующие шаги: В меню Opera выберем команду «История», затем в подменю команду «Очистить историю посещений» либо нажмем клавиши Ctrl + Shift + Del. Появится окно «Очистить историю посещений».

Какой браузер тратит меньше оперативной памяти?

Самым экономичным в плане потребления памяти оказался UC Browser, а самым прожорливым — Edge. Впрочем, браузер от Microsoft потреблял максимальный объём памяти недолго — спустя несколько секунд после загрузки вкладок начал выгружать их из памяти, из-за чего потребление памяти упало более чем в 5 раз — до 200 МБ.

Какой браузер использует меньше всего оперативной памяти?

При открытии одной вкладки

Если открыть браузер со всего одной вкладкой, то загрузка будет варьироваться от 40 до 300 МБ в зависимости от наполнения сайта и браузера. Меньше всего оперативки потребляют Safari и Internet Explorer. Двумя самыми тяжёлыми браузерами в этом тесте становятся Opera и Mozilla Firefox.

Как снизить загрузку оперативной памяти Windows 10?

Как максимально эффективно использовать вашу оперативную память

  1. Перезагрузите ваш компьютер …
  2. Обновите ваше ПО …
  3. Попробуйте другой браузер …
  4. Очистите ваш кэш …
  5. Удалите расширения браузера …
  6. Проверьте память и очистите процессы …
  7. Остановите работу фоновых приложений …
  8. Уберите визуальные эффекты

Какой браузер лучше использовать?

Google Chrome — самый лучший и быстрый браузер для ПК с Windows. Яндекс. Браузер — самый популярный браузер в России Mozilla Firefox — самый легкий браузер для слабых ПК

Как снизить потребление памяти браузером Google Chrome?

Как уменьшить аппетиты Chrome?

  1. Используйте минимум расширений.
  2. Установите дефолтную тему оформления.
  3. Отключите подключаемые модули.
  4. Оптимизируйте скрытые настройки.
  5. Используйте специальное расширение для выгрузки фоновых вкладок из памяти.

Что делать если лагает Opera GX?

Что делать, если виснет браузер Opera:

  1. Завершить работу браузера через диспетчер задач Windows. …
  2. Очистить кэш Opera. …
  3. Экономить ресурсы. …
  4. Обновить браузер. …
  5. Обновить драйвера на видеокарту. …
  6. Отключить расширения. …
  7. Проверить ПК на вирусы. …
  8. Выполнить восстановление Windows.

Как ускорить браузер Opera

  1. Отключаем расширения
  2. Чистим кэш
  3. Включение режима «Турбо»

Как очистить кэш в опере?

Печать Как очистить кэш в Opera 12 и выше? В боковом меню браузера выбрать пункт «Настройки» или нажать Alt+P. В левой части открывшегося меню нужно выбрать «Безопасность» и выбрать пункт «Очистить историю посещений». Отметить флажок «Очистить кэш» и убедиться, что прочие флажки сняты.

Что делать если браузеру Опера не хватает памяти?

Что делать, если браузеру Опера не хватает памяти?

  1. Очистка кэша браузера
  2. Отключение расширений
  3. Проверка на вирусы
  4. Восстановление файлов ОС

Почему пишет что не хватает памяти в браузере?

Почему страница браузера была перезагружена из-за нехватки памяти? Причина перезагрузки страницы — нехватка оперативной памяти компьютера (ОЗУ). Чаще всего ошибка появляется на компьютерах с небольшим её значением (2-4 Гб), либо в перегруженных фоновой работой программ системой.

Пишем код

Теперь у нас есть файл design.py с нужной частью дизайна нашего приложения и мы начинать работу над созданием его логики.

Используем дизайн

Для Python GUI приложения понадобятся следующие модули:

Также нам нужен код дизайна, который мы создали ранее, поэтому его мы тоже импортируем:

В этом классе мы будем взаимодействовать с элементами интерфейса, добавлять соединения и всё остальное, что нам потребуется. Но для начала нам нужно инициализировать класс при запуске кода. С этим мы разберёмся в функции main() :

И чтобы выполнить эту функцию, мы воспользуемся привычной конструкцией:

В итоге main.py выглядит таким образом:

Но нажатие на кнопку ничего не даёт, поэтому нам придётся с этим разобраться.

Добавляем функциональность в наше Python GUI приложение

Начнём с кнопки Выберите папку. Привязать к функции событие вроде нажатия на кнопку можно следующим образом:

Для открытия диалога выбора папки мы можем использовать встроенный метод QtWidgets.QFileDialog.getExistingDirectory :

Для отображения содержимого директории нам нужно импортировать os :

И получить список содержимого следующим образом:

В итоге функция browse_folder должна выглядеть так:

Теперь, если запустить приложение, нажать на кнопку и выбрать директорию, мы увидим:

Так выглядит весь код нашего Python GUI приложения:

Это были основы использования Qt Designer и PyQt для разработки Python GUI приложения. Теперь вы можете спокойно изменять дизайн приложения и использовать команду pyuic5 без страха потерять написанный код.

Создаём основное окно и указываем название приложения

После импорта библиотеки в Python загрузим её методы:

Первая строка позволяет нам загрузить все методы Tkinter и использовать их в коде без ссылки на их наименование. Второй строкой мы явно импортируем метод messagebox, который будем использовать для вывода всплывающего окна с результатом. Это удобно, так как метод потребуется нам несколько раз.

Теперь создадим окно нашего приложения. Для этого воспользуемся модулем Tk. Приложение назовём «Калькулятор индекса массы тела (ИМТ)»:

После запуска кода ничего не произойдёт. Это не ошибка. На самом деле код выполнился и окно закрылось. Необходимо явно указать, что окно приложения не должно закрываться до тех пор, пока пользователь сам не сделает этого. Для этого к коду добавим функцию window.mainloop(), указывающую на запуск цикла событий:

Запустив код, увидим экран приложения:


Скриншот: Tkinter / Skillbox Media

Мы не указали размер окна, поэтому название приложения не помещается в него полностью. Исправим это с помощью метода geometry:

Теперь название приложения видно полностью:

Почему браузера может быть мало?

Похожие подходы и их недостатки

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

  • И другие…

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

С nw.js все намного проще. Если вы разрабатываете веб-приложения и имеете немного опыта работы с node.js, то уже через несколько часов вы поймете как писать и собирать десктопные приложения под mac, windows и linux.

Основная идея. Зачем “скрещивать” Chromium c node.js?

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

Для того, чтобы понять всю мощь идеи nw.js, давайте коротко рассмотрим основные составляющие nwjs.

Chromium – браузер с открытым исходным кодом, который разрабатывается силами Google, Opera Software, Яндекс, NVIDIA и других компаний. В качестве движка для отображения веб-страниц в Chromium используется Blink (форк Webkit). В качестве движка для обработки JavaScript используется v8.

node.js(io.js) – это JavaScript runtime на основе движка v8, изначально используемого в Chromium. Он написан на С++ и работает на уровне протоколов прикладного уровня, где ему доступны множество различных API операционных систем, таких как файловая система и сетевые взаимодействия. В силу этого, node чаще всего используется для построения системных приложений и серверов.

Основной идеей nw.js является объединение Chromium и node.js в единый контекст, используя один и тот же v8. Если сказать точнее, node.js использует v8 Chromium-a. Т.е. при помощи Chromium мы можем создать графический интерфейс на основе html, css, js, как и в любом веб-браузере. Но, в отличие от обычного браузера, nw.js позволяет из этого же контекста вызывать функции node.js для работы с системными API операционной системы.

Давайте разберем простейший пример. При помощи модуля fs для io.js мы будем следить за изменениями какого-нибудь файла в системе. В случае, если файл изменился, отобразим его содержимое в div-e c id=”log”.

js

Как мы видим, здесь нет сервера и клиента, нет ajax, нет сокетов, нет http, нет обмена данными по сети. Как мы говорили, вся прелесть nwjs заключается в возможности работы с node.js из контекста Chromium.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Zoom-Obi
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: