[Программирование, Разработка под MacOS, Разработка под Linux, Разработка под Windows] Фреймворки для кроссплатформенной разработки десктопных программ с GUI

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
17-Ноя-2020 03:31

В этой статье я расскажу вам о некоторых самых популярных фреймворках, которые помогут вам при разработке программ для компьютеров под управлением Windows/MacOS/Linux. Если вы опытный программист, то вряд-ли найдете в этой статье чтото новое для себя. Она скорее для новичков, которые ищут простое решение своей проблемы - быстрое написание хорошей (на сколько это возможно) кроссплатформенной программы.
Что такое кроссплатформенная разработка?Что вообще из себя представляет кросплатформенная разработка? Если вам нужно, что бы ваше приложение работало сразу на нескольких операционых системах с минимальным затратом человекоресурса, то скорее всего вы прибегнете именно к этому. Вы разрабатываете одну программу, пишете один код, а он запускается на всех поддерживаемых платформах. Удобно! Но стоит различать Кросплатформенность и нативность.Если вкраце, то кроссплатформенность - это способность програмного обеспечения работать с несколькими аппаратными платформами или операционными системами. Нативные программы в свою очередь пишутся для работы на оределенной аппаратной или програмной платформе. Из этого можно сделать вывод: если ваша программа будет работать с железом, то скорее всего даже в кросплатформенной программе вам придется прописывать нативный функционал для конкретной платформы. В чем же преимущество кроссплатформенной разработки? Во первых вам нужно задействовать меньше людей (не нужно содеожать DotNet разработчика, Swift/objective C разработчика и всех к ним прилогающихся), во вторых вы охватываете большее количество устройств -> больше людей смогут пользоваться вашей программой. Так-же подобный принцип не лишен недостатков - плохая нативность, оптимизация тоже будет хуже, чем у такой-же программы написанной под конкретную платформу. Но иногда бывает такое, что вам очень нужно, что бы ваше приложение поддерживало несколько платформ, но разрабатывать под каждую возможности нет. Тогда на помощь приходят уже созданные Фреймворки и технологии для разработки кроссплатформенных GUI. Вот некоторые из них:1. Electron JS
Недавно я написал статью о том как на Electron JS написть "Hello World". В комментариях поднялась дискуссия о "за и против" этой технологии. До сих пор очень многие разработчики ведут споры относительно того, стоит ли использовать Electron в своих проектах или нет. Electron JS - это JavaScript фреймворк, позволяющий вам написать полноценную программу используя Web Технологии - HTML & CSS, JS. Electron JS представляет из себя движок Chromium в котором и исполняется весь ваш код. У Electron'a есть один, но достаточно серьезный недостаток - большое потребление памяти. Как физической, так и оперативной. Всем давно известно, какой прожорливый Chrome, а мы на него еще своего кода хотим навесить. Но если посмотреть с другой стороны: сегодня многие популярные приложениянаписаны на Electron'e - Slack, Skype, Discord, VSCode, Atom, Postman, Insomnia и т.д. А с учетом непрекращающегося роста мощности компьютеров все реже приходится слышать от пользователей, что «ваш хром съел всю мою память». Высокое потребление памяти не будет играть большой роли если продукт будет хорош в своей сфере, будет грамотно написан код и распределены процессы. Официальный сайтПлюсы
  • Использование наработок из Web
  • Просто найти (или "воспитать") специалиста
  • Качественная (и русифицированная) документация
  • Поддержка сообщества и GitHub
Минусы
  • Высокое потребление памяти (физическая и ОЗУ)
  • Легко написать плохой код
  • Плохая нативность
2. Qt/QML
Qt - очень мощный набор инструментов для создания кроcсплатформенных приложений на языке С++ и Python (а также Ruby, PHP, C# и др. но они в отличии поддерживаются сообществом). Qt уже достаточно старый фреймворк, но он продолжает активно развиваться и на нем написаны такие программы как: 2ГИС для Android, Kaspersky Internet Security, Virtual Box, Skype, VLC Media Player, Opera и другие. Известное многим  линукс-юзерам окружение рабочего стола KDE тоже написанной с использованием Qt. Qt имеет среду разработки - Qt Creator, которая включает в себя Qt Designer с помощью которого можно создавать графический интерфейс. Визуальное создание интерфейса позволяет легко и просто создавать интерфейс, перетаскивая различные виджеты (выпадающие списки, кнопки, переключатели) на форму. Qt имеет обширную документацию, активную поддержку сообщества и множество других преимуществ.Официальный сайтПлюсы
  • Визуальный редактор интерфейса
  • Огромное количество модулей в составе фреймворка
  • Поддержка большого количества языков программирования (официально только Python и C++, остальные поддерживаются сообществом) -> хорошая нативность при грамотном коде
  • Низкий порог вхождения
Минусы
  • Большой вес приложения
  • Иногда возникают проблеммы с компиляцией под windows
3. Avalonia
Достаточно молодой и активно развивающийся фреймворк для кроссплатформенной разработки, разработанный и поддерживаемый компанией Microsoft и сообществом. Avalonia позволяет создавать интерфесы на основе XAML. Сама Avalonia основана на WPF/UWP. Код пишется на языке C#. Благодаря XAML Avalonia позволяет создавать гибкие и стилизованные интерфесы. Имеет хорошую документацию, хоть и не большое, но очень приветливое рускоязычное сообщество. Официальный сайтПлюсы
  • Хорошая нативность (+поддержка системных декораций)
  • Активное и приветливое сообщество, как русскоязычное, так и англоязычное (чаты, форумы)
  • Заимствование и сходство с WPF (Если вы работали с WPF вам будет легко разобраться с Авалонией, и при возникновении трудностей, код написанные для WPF скорее всего заработает у вас на авалонии)
  • Стили (стили в Авалонии имеют сходство с CSS, что упрощает написание этих самых стилей)
Минусы
  • Маленькое сообщество (хоть и приветливое, но в силу молодости проекта, еще очень не многочисленное сообщество разработчиков)
  • Маленькое количество проектов (вы можете застрять с тем, что никто не решал такую задачу, которая встала перед вами)
ИтогВ этой статье я рассказал далеко не о всех фреймворках (как минимум NW.JS, GTK+, TK/Kivy для Python, и многие другие), но о самых популярных, активно поддерживаемых и подходящих для абсолютно разных проектов и задач. Призываю вас в комментариях рассказать о своем опыте работы с различными фреймворками (но только с теми, что есть в статье), о том какие плюсы и минусы в идете в кроссплатформенной разработке?
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_programmirovanie (Программирование), #_razrabotka_pod_macos (Разработка под MacOS), #_razrabotka_pod_linux (Разработка под Linux), #_razrabotka_pod_windows (Разработка под Windows), #_electron, #_qt, #_krossplatformennost (кроссплатформенность), #_avalonia, #_krossplatformennaja_razrabotka (кроссплатформенная разработка), #_krossplatformennost (кросс-платформенность), #_programmirovanie (
Программирование
)
, #_razrabotka_pod_macos (
Разработка под MacOS
)
, #_razrabotka_pod_linux (
Разработка под Linux
)
, #_razrabotka_pod_windows (
Разработка под Windows
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 22-Ноя 11:02
Часовой пояс: UTC + 5