О себе Реферат Научные труды Индивидуальный раздел
Назад в библиотеку

Разработка кроссплатформенного приложения для получения информации о логических дисках

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

Источник: Шрамов Е.В. Разработка кроссплатформенного приложения для получения информации о логических дисках / Е.В. Шрамов, О.Ю. Чередникова // Материалы научно-технической конференции «Донбасс будщего глазами молодых учёных - 2024»

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

Ключевые слова: кроссплатформенность, приложение, фреймворк, диск , функция, Python.

Abstract. Development of a cross-platform application for obtaining information about logical disks. The paper considers methods for developing cross-platform applications, selects the optimal framework for developing this application, describes the functionality of the framework, and description of the algorithm for obtaining information about logical disks.

Keywords: cross-platform, application, framework, disk, function, Python.

Общая постановка проблемы и анализ последних исследований

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

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

Разработка кроссплатформенных приложений включает в себя несколько подходов и технологий. Вот основные способы:

  1. Гибридные приложения(рисунок 1):
    Гибридные приложения
    Рисунок 1 – Гибридные приложения
    • Используют HTML, CSS и JavaScript веб-технологии для создания приложений, которые работают внутри веб интерфейса.
  2. Фреймворки для кроссплатформенной разработки:
    • React Native: Позволяет создавать мобильные приложения с использованием JavaScript и React. Приложения компилируются в нативный код, что обеспечивает доступ к нативным API и высокую производительность.
    • Flutter: Платформа компании Microsoft. Используется стандартный для Enterprise-разработки язык программирования С#, кроссплатформенная среда разработки — Visual Studio. На выходе — нативные приложения для iOS, Android и Windows[1].
    • Xamarin: Использует C# и .NET для разработки приложений под iOS и Android. Xamarin позволяет писать общий код для нескольких мобильных платформ, обеспечивая доступ к необходимым компонентам и нативным API.
    • Qt: - Фреймворк для разработки кроссплатформенных приложений на C++ и Python. Qt предоставляет инструменты для создания графических интерфейсов и поддерживает различные мобильные и компьютерные платформы.
  3. Веб-приложения(рисунок 2):
    Веб-приложения
    Рисунок 2 – Веб-приложения
    • Создание адаптивных веб-приложений с использованием фреймворков Angular, Vue.js или React, которые работают в браузерах на различных устройствах.
  4. Системы на основе виртуальных машин:
    • Использование платформ, таких как Java с JavaFX или Kotlin Multiplatform, которые позволяют писать код один раз и запускать его на разных платформах.

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

Фреймворк PyQt

PyQt — это версия библиотек классов Qt для языка Python, а так же набор инструментального программного обеспечения для создания кроссплатформенных приложений с графическим интерфейсом (GUI)[2]. Ключевыми аспектами Qt являются: кроссплатформенность - Qt позволяет разработчикам писать код один раз и запускать его на различных операционных системах без значительных изменений; модульность - Qt состоит из множества модулей, включая: QtCore, QtGui, QtWidgets, QtQuick, QtNetwork; встроенные инструменты разработки - в комплекте с Qt поставляется Qt Creator — интегрированная среда разработки (IDE), которая упрощает процесс создания приложений.

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

Модули Qt
Рисунок 3 – Модули Qt

Фреймворк PyQt

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

  1. Установка необходимых кроссплатформенных библиотек PyQt6, PyQt6-tools, shutil – для высокоуровневых операций над файлами, psutil – для получения данных о системе, в нашем случае о дисках, sys - для работы с системными функциями, а так же os – для взаимодействия с операционной системы. А так же выполняем их импорт.
  2. Создаем класс DiskLister, который наследуется от QWidget – основного класса для графического интерфейса
  3. Инициализируем пользовательский интерфейс, где с помощью QVBoxLayout, QLabel и QListWidget(рисунок 4) определяем структуру.
    Использование класса QListWidget
    Рисунок 4 – Использование класса QListWidget
  4. Вызываем метод list_disks(), в котором в переменную disk_inf c помощью метода disk_partitions()(рисунок 5) записываем все подключенные разделы диска в виде списка именованных кортежей[3].
    Вызов метода disk_partitions()
    Рисунок 5 – Вызов метода disk_partitions()

Затем перебираем каждый кортеж, который соответствует активному логическому диску, в переменные записываем имя диска, его тип, а так же с помощью метода disk_usage() рассчитываем статистику использования диска(рисунок 6).

Расчет статистики использования диска
Рисунок 6 – Расчет статистики использования диска

Добавляем все полученные сведения в список disk_list класса QListWidget.

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

Пример:

Выведем список логических дисков на устройстве с ОС Windows(рисунок 7).

Вывод списка логических дисков в ОС Windows
Рисунок 7 – Вывод списка логических дисков в ОС Windows

Запустим приложение на другом устройстве с ОС Linux(рисунок 8).

Вывод списка логических дисков в ОС Linux
Рисунок 8 – Вывод списка логических дисков в ОС Linux

Заключение

Разработка кроссплатформенного приложения для получения информации о логических дисках представляет собой интересную и полезную задачу, которая была реализована в рамках данного проекта. Использование PyQt и Python позволило добиться возможности запускать приложение на различных операционных системах, приложение обладает интуитивно понятным интерфейсом, а так же актуальной информацией об активных логических дисках. Дальнейшие шаги исследований и разработки приложения включают в себя более углубленное изучение файловой системы ext ОС Linux, добавление более расширенного функционала, а так же оптимизация текущего.

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

  1. Кросс-платформенная разработка мобильных приложений [Электронный ресурс], Режим доступа: https://practicum.yandex.ru/blog/krossplatformennaya-razrabotka-mobilnyh-prilozheniy/
  2. Qt [Электронный ресурс], Режим доступа: https://blog.skillfactory.ru/glossary/qt/
  3. Psutil documentation [Электронный ресурс], Режим доступа: https://psutil.readthedocs.io/en/latest/index.html