File Reader

Building Cross-Platform Desktop Applications with NW.js and JavaScript

In today’s digital era, there is an increasing demand for cross-platform desktop applications that can run seamlessly on multiple operating systems. One powerful solution for developing such applications is NW.js (previously known as Node-Webkit). NW.js allows developers to build desktop applications using familiar web technologies such as JavaScript, HTML, and CSS. This article will delve into the world of NW.js and explore how JavaScript can be leveraged to create cross-platform desktop applications. We will provide code examples with comments, explanations, and outputs to illustrate the concepts discussed.

Getting Started with NW.js

To begin our journey into building cross-platform desktop applications with NW.js, let’s first understand the basics. NW.js is essentially a combination of Chromium (the open-source project behind Google Chrome) and Node.js. This powerful duo enables developers to utilise the capabilities of both web technologies and native operating system features.

To install NW.js, we need to have Node.js already set up on our system. Once Node.js is installed, we can use the Node Package Manager (npm) to install NW.js globally by running the following command:

With NW.js installed, we can start creating our first cross-platform desktop application.

Creating a Simple Desktop Application

Let’s create a basic desktop application using NW.js. In this example, we’ll display a simple «Hello, World!» message in a window. Create a new directory for your project and follow these steps:

Create an HTML file named index.html with the following code −

Example

Create a file named package.json with the following code −

Open a command prompt or terminal in the project directory and run the following command to launch the application −

The NW.js runtime will launch a new window with the contents of the index.html file. You should see the «Hello, World!» message displayed.

Explanation

In the above example, we start by creating an HTML file with a basic structure. We include a element to display our message. The package.json file serves as the entry point for NW.js applications. It specifies the name of our application and the main HTML file to be loaded.

Читайте также:  Typescript define type in object

Running nw . launches the NW.js runtime, which loads the current directory as an application. The . refers to the current directory. The runtime creates a window and displays the contents of index.html.

Interacting with the Operating System

One of the significant advantages of NW.js is its ability to interact with the underlying operating system. Let’s explore some examples of how JavaScript can be used to access native features.

Reading File Contents

Suppose we want to read the contents of a text file using NW.js. Create a file named file-reader.html with the following code −

Example

          

Explanation

In this example, we create an HTML file with an element of type «file» and a element to display the file content. We use JavaScript to handle the change event on the file input element. When a file is selected, the event listener triggers a function to read the file using the FileReader API. Once the file is read, its content is displayed in the element.

Conclusion

NW.js provides a powerful framework for building cross-platform desktop applications using JavaScript, HTML, and CSS. In this article, we explored the basics of NW.js and demonstrated how JavaScript can be leveraged to create simple desktop applications. We covered topics such as creating a basic application, accessing native features, and interacting with the operating system. With NW.js, developers can harness the power of web technologies and deliver seamless desktop applications that run on multiple platforms.

In conclusion, NW.js opens up a world of possibilities for developers seeking to build cross-platform desktop applications. Its integration of Chromium and Node.js empowers developers to create feature-rich applications that can leverage both web and native functionalities. By using familiar web technologies, developers can take advantage of their existing skill set to build robust, performant, and visually appealing desktop applications.

Источник

5 лучших JavaScript-фреймворков для десктопных приложений

Подпишись на наш канал с тестами по HTML/CSS/JS в Telegram!

Перевод статьи Бианки Плющевской «5 Best JavaScript Frameworks for Desktop Apps».

Десктопные приложения - фреймворки для их создания

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

Как всегда, легче сказать, чем сделать. Занимаясь поиском материала, мы заметили, что существует много путаницы относительно того, как на самом деле построены десктопные приложения на JavaScript, и того, как они работают. Также довольно сложно подобрать правильные инструменты для работы над подобным проектом.

Читайте также:  Java доступ к микрофону

В этой статье мы поближе познакомимся с пятью самыми известными JavaScript-фреймворками для десктопных приложений.

#1 Electron

Electron

Electron это фреймворк с открытым исходным кодом. Изначально он был создан GitHub для редактора Atom, и произошло это в 2013 году. Эта библиотека позволяет вам создавать GUI десктопных приложений с помощью таких веб-технологий как JavaScript, HTML и CSS.

Десктопные приложения, созданные с помощью Electron, ведут себя, как веб-приложения, но могут читать и записывать данные в файловой системе компьютера. На рынке есть много десктопных приложений, построенных на Electron. Например, Skype для Linux или Slack. Если хотите узнать больше о популярных десктопных приложениях, построенных с помощью Electron, почитайте эту статью.

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

Если вы – JavaScript-разработчик, вам нужно будет изучить совсем немного относительно простых вещей о том, как работает Electron и его API. Скорее всего вы сумеете создать свое первое десктопное приложение всего за несколько дней.

Electron это состоявшаяся технология с растущим сообществом, благодаря чему может считаться отличным рабочим окружением. Благодаря движку Chromium для UI-рендеринга вы получаете доступ к таким инструментам как Developer Tools и Storage Access.

#2 NW.js

NW.js

Следующим в нашем списке идет NW.js, прежде известный как node-webkit. Он был создан в Центре технологий с открытым исходным кодом компании Intel путем комбинирования фреймворка Node.js и движка Chromium (прежде известного как Webkit).

Благодаря комбинации Node.js и Chromium вы можете создать приложение, которое будет не только загружать локальный вебсайт в окне приложения, но также коннектиться к OS через JavaScript API. Подобное решение позволяет вам контролировать такие параметры как размеры окна, панель инструментов и пункты меню, а также обеспечивает доступ к локальным файлам на компьютере.

NW.js не догматичен; он предоставляет вам свободу выбора фреймворков и библиотек, которые вы хотели бы использовать в своем проекте. Он дает возможность вызывать модули Node.js прямо из DOM, поддерживает все особенности браузера, обеспечивает защиту исходного кода JavaScript. Доступен для Linux, Mac OS и Windows.

#3 AppJS

APPS.js

AppJS это простой, но мощный инструмент. С его помощью можно создавать кросс-платформенные приложения, и для этого вам не придется изучать новые языки. Подобно уже упомянутым библиотекам, для работы с AppJS вам понадобятся только знания HTML, CSS и JavaScript.

Читайте также:  Сортировка массива php кириллица

Если сравнивать AppJS, Electron и NW.js, то AppJS это старейший Node.js-Chromium фреймворк. Но он даже отдаленно не такой зрелый, как его собратья. И поскольку он «выдохся», то может быть не лучшим выбором для новых проектов.

  • JS, HTML5, CSS, SVG, WebGL от Chromium
  • зрелые http/https-сервера и клиентские API – Node
  • файловую систему, DNS, шифрование, подпроцессы, OS APIs – Node
  • виртуальные машины со средой для изолированного выполнения кода – Node
  • инструменты для отображения встроенных привязок C++ к JavaScript – Node

#4 Meteor

Meteor

Meteor рекламирует себя как «быстрейший способ создания JavaScript-приложений» и «платформу с открытым кодом для мобильной, десктопной и веб-разработки». Этот кросс-платформенный фреймворк написан на Node.js.

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

Meteor использует MongoDB, протокол распределенных данных (Distributed Data Protocol) и шаблон публикации-подписки для автоматической рассылки изменений без вмешательства разработчика. В нем есть фронтенд- и бэкенд-модули, включая API, инструменты, пакеты Node.js.

#5 Proton Native

Proton Native

Proton Native выпущен недавно. Он стал доступен на GitHub в начале 2018. Proton Native для разработки десктопных приложений делает примерно то же, что React Native сделал для мобильной. Узнать больше о разнице между React.js, React Native и React VR можно здесь.

Это один из лучших JavaScript-фреймворков для десктопных приложений, поскольку позволяет вам управлять состоянием и без заминок строить кросс-платформенные пользовательские интерфейсы. Его работа отличается от работы Electron, который запускает целый браузер Chromium для управления маленьким GUI. Proton Native, в свою очередь, использует собственные инструменты, занимает меньше места и потребляет меньше ресурсов.

У этого решения есть и другие преимущества: Proton Native использует тот же синтаксис, что и React Native, работает с библиотеками React (включая Redux) и совместим с Node.js.

Итоги

В целом, JavaScript-фреймворки для десктопных приложений можно разделить на три категории:

  1. Фреймворки для создания десктопных приложений на базе веб-браузеров – в их основе лежат Node.js и Chromium (Electron, NW.js, AppJS).
  2. Фреймворки, нуждающиеся в дополнительных инструментах типа Cordova (Meteor).
  3. Фреймворки, использующие исключительно собственные инструменты для создания десктопных приложений (Proton Native).

Выбор зависит только от вас и в основном зависит от типа проекта, над которым вы работаете.

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

Источник

Оцените статью