Skip to content
IRC-CodingIRC-Coding
LinuxDesktop приложенияElectronPythonJavaFXGNOMEGUI DevelopmentПрограммированиеЯзык программирования

Разработка графических приложений на Linux

Руководство по созданию Desktop-приложений на Linux с Python, JavaScript, Electron, Java и C++.

S

schutzgeist

4 min read
Разработка графических приложений на Linux

Разработка графических десктопных приложений на Linux

Источник: Python3 Tutorial

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

Как реализовать такой проект?

  • Может быть, расширение для Chrome или Firefox?
  • Приложение для Gnome?
  • Полноценное десктопное приложение?

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

Если ты тоже хочешь написать несколько программ, вот несколько соображений для правильного выбора:

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

Языки программирования для графической десктопной разработки на Linux

C++ с Qt

  • Qt — это широко используемый фреймворк для разработки кроссплатформенных графических интерфейсов (GUI).
  • C++ в сочетании с Qt — сильный выбор для мощных и сложных графических приложений на Linux.

Однако молодые разработчики редко пишут на C++, обычно начинают с Python и подобных языков.

Python с Tkinter или PyQt

  • Python популярен благодаря простоте и читаемости.
  • Tkinter входит в стандартную библиотеку Python и предоставляет простой способ создания GUI.
  • PyQt — это привязка Python к фреймворку Qt, которая предлагает больше функциональности.

Java с Swing или JavaFX

  • Java — еще один хороший выбор для разработки GUI-приложений.
  • Swing и JavaFX — две популярные библиотеки Java для создания графических интерфейсов.

Swing выглядит устаревшим, а JavaFX — красивая альтернатива, но реализация требует больше усилий.

C# с Mono и GTK#

Если ты опытен в C#, можешь использовать Mono, кроссплатформенную реализацию .NET Framework от Microsoft, вместе с GTK# для разработки GUI-приложений на Linux.

Логично задаться вопросом: почему C# на Linux? Специалисты по разработке приложений часто начинают с C#, то же касается многих учебных программ. Microsoft снова на вершине, знание C# должно быть в списке todo для любого разработчика.

JavaScript с Electron

Для веб-разработчиков Electron может быть отличным выбором. Это позволяет создавать десктопные приложения с использованием веб-технологий: JavaScript, HTML и CSS.

Vala с GTK+

Vala — язык программирования, разработанный специально для платформы GNOME. Он использует GTK+ для разработки GUI и подходит, если ты сосредоточен на среде GNOME.

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

Я сам колеблюсь между JavaScript с Electron и Python с Qt Framework.

Десктопные приложения с JavaScript/Electron против Python с Qt Framework: плюсы и минусы

JavaScript с Electron

Плюсы:

Кроссплатформенная разработка

Electron позволяет разрабатывать десктопные приложения для Windows, Linux и macOS, используя одни и те же веб-технологии (HTML, CSS, JavaScript).

Современные веб-технологии

Разработчики могут использовать современные веб-фреймворки и библиотеки, что часто ускоряет и упрощает разработку.

Мощное сообщество и ресурсы

Electron поддерживается большим сообществом и предлагает множество ресурсов и плагинов.

Интеграция с Node.js

Electron-приложения могут использовать Node.js, что дает доступ к обширной экосистеме NPM-пакетов.

Минусы:

Потребление памяти

Electron-приложения часто критикуют за высокое потребление памяти и размер.

Производительность

Хотя они могут быть мощными, Electron-приложения могут быть медленнее нативных приложений.

Безопасность

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

Python с Tkinter/PyQt

Плюсы:

Простота и скорость с Tkinter

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

Богатые UI-компоненты с PyQt

PyQt предлагает обширный набор UI-компонентов и хорошо подходит для сложных приложений.

Экосистема Python

Доступ к обширной экосистеме библиотек Python для различных применений.

Низкое потребление памяти

По сравнению с Electron, GUI-приложения на базе Python часто требуют меньше памяти.

Минусы:

Кроссплатформенные вызовы

Хотя Tkinter и PyQt кроссплатформенны, могут возникнуть сложности с внешним видом и поведением на разных операционных системах.

Старые технологии

Особенно Tkinter может выглядеть устаревшим и не предлагает современные возможности, доступные в веб-технологиях.

Кривая обучения для PyQt

PyQt может иметь крутую кривую обучения, особенно для разработчиков, не знакомых с Qt.

Учебник: список задач на JavaScript и Electron под Linux

Хочу показать тебе шаги разработки такого скрипта, чтобы ты понял объем работы.

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

Для создания списка задач на Linux с JavaScript и Electron выполни эти шаги:

Установи Node.js и npm

  • Electron-приложения разрабатываются с помощью Node.js. Убедись, что Node.js и npm установлены в твоей системе Linux. Их можно загрузить с nodejs.org.

Инициализируй новый Node.js проект

  • Откройте терминал. Создай новую папку для проекта и перейди в неё (mkdir meine-todo-app && cd meine-todo-app). Выполни npm init -y, чтобы создать новый файл package.json.

Установи Electron

Выполни в директории проекта npm install electron —save-dev, чтобы установить Electron локально в твой проект.

Создай главный файл

  • Создай файл main.js. Это будет точка входа для твоего Electron-приложения. В main.js инициализируешь окно Electron и определяешь поведение приложения.

Разработай графический интерфейс:

  • Создай HTML-файл (например, index.html), который будет служить интерфейсом твоего списка задач. Добавь интерактивные элементы для добавления и удаления задач.

Реализуй функциональность с JavaScript:

  • Напиши JavaScript-код (в файле или встроенный в HTML), чтобы обеспечить добавление и удаление элементов списка.

Добавь скрипт запуска в package.json:

  • Отредактируй файл package.json, чтобы определить скрипт для запуска Electron-приложения. Например: “start”: “electron .”.

Протестируй приложение:

  • Выполни npm start в терминале, чтобы запустить и протестировать твой Electron-список задач.

Расширяй и совершенствуй:

  • Добавь дополнительные функции и улучши дизайн и пользовательский опыт.

Вот простой пример структуры твоего main.js-файла:

const { app, BrowserWindow } = require('electron');

function createWindow() {
    let win = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            nodeIntegration: true
        }
    });

    win.loadFile('index.html');
}

app.whenReady().then(createWindow);

И простой пример твоего index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Мой список задач</title>
</head>
<body>
    <h1>Мой список задач</h1>
    <input type="text" id="todoInput">
    <button id="addTodo">Добавить</button>
    <ul id="todoList"></ul>

    <script>
        // JavaScript-код для добавления и удаления задач
    </script>
</body>
</html>

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

Назад к блогу
Share:

Nächster Artikel in Уроки

Weiterlesen
Курс Game Development E-Degree

Похожие статьи