В этой статье я расскажу вам о некоторых наиболее популярных фреймворках, которые помогут вам разрабатывать программы для компьютеров под управлением Windows/MacOS/Linux. Если вы опытный программист, то вряд ли найдете для себя что-то новое в этой статье.
Скорее для новичков, которые ищут простое решение своей проблемы — быстрое написание хорошей (насколько это возможно) кроссплатформенной программы.
Что такое кроссплатформенная разработка?
Что вообще такое кроссплатформенная разработка? Если вам нужно, чтобы ваше приложение работало сразу на нескольких операционных системах с минимальными затратами человеческих ресурсов, то, скорее всего, вы к этому прибегнете.Вы разрабатываете одну программу, пишете один код, и она работает на всех поддерживаемых платформах.
Комфортный! Но стоит различать кроссплатформенность и нативность.
Короче говоря, кроссплатформенность — это способность программного обеспечения работать с несколькими аппаратными платформами или операционными системами.
Нативные программы, в свою очередь, пишутся для работы на конкретной аппаратной или программной платформе.
Отсюда можно сделать вывод: если ваша программа будет работать с железом, то, скорее всего, даже в кроссплатформенной программе вам придется писать нативный функционал под конкретную платформу.
В чем преимущество кроссплатформенной разработки? Во-первых, вам нужно вовлекать меньше людей (не обязательно содержать разработчика DotNet, разработчика Swift/objective C и все, что с ними связано), во-вторых, вы охватываете большее количество устройств -> будет больше людей возможность использовать вашу программу.
Также этот принцип не лишен недостатков — плохая нативность, оптимизация также будет хуже, чем у той же программы, написанной под конкретную платформу.
Но иногда бывает так, что очень нужно, чтобы ваше приложение поддерживало несколько платформ, а разрабатывать под каждую возможность нет возможности.
Тогда на помощь приходят уже созданные Frameworks и технологии разработки кроссплатформенных графических интерфейсов.
Вот некоторые из них:
Электрон Дж.
С.
Недавно я написал статью о том, как написать «Hello World» в Electron JS. Комментарии вызвали дискуссию о плюсах и минусах этой технологии.
До сих пор многие разработчики спорят, использовать ли Electron в своих проектах или нет. Electron JS — это JavaScript-фреймворк, позволяющий написать полноценную программу с использованием веб-технологий — HTML и CSS, JS. Electron JS — это движок Chromium, в котором выполняется весь ваш код. У Electron есть один, но довольно серьезный недостаток — высокое потребление памяти, как физической, так и оперативной.
Всем давно известно, насколько энергоемок Chrome, а мы все еще хотим добавить в него свой код. Но если посмотреть с другой стороны: сегодня на Electron написаны многие популярные приложения — Slack, Skype, Discord, VSCode, Atom, Postman, Insomnia и т. д. А учитывая постоянный рост мощности компьютеров, он становится все реже и реже.
услышать от пользователей, что «ваш хром съел всю мою память».
Высокое потребление памяти не будет играть большой роли, если продукт хорош в своей области, код написан правильно и процессы распределены.
Официальный сайт плюсы
- Использование наработок из Интернета
- Просто найдите (или «обучите») специалиста
- Качественная (и русифицированная) документация
- Поддержка сообщества и GitHub
- Высокое потребление памяти (физической и оперативной)
- Легко написать плохой код
- Плохая нативность
NW.JS
Как и Electron, NW.JS позволяет создавать кроссплатформенные приложения с использованием веб-технологий.
Сегодня NW.JS спонсируется Intel и разрабатывается сообществом.
У NW.JS нет такого богатого списка проектов, как у Electron, но это по-прежнему очень хороший фреймворк для создания кроссплатформенных приложений.
Как и Electron, NW.JS несет в себе движок Chromium и все вытекающие из него проблемы.
NW.JS по принципу очень похож на Electron, но различия все же есть.
Я могу порекомендовать вам Эта статья для справки.
плюсы
- Использование наработок из Интернета
- Просто найдите (или «обучите») специалиста
- Качественная (и русифицированная) документация
- Поддержка сообщества и GitHub
- Высокое потребление памяти (физической и оперативной)
- Легко написать плохой код
- Плохая нативность
Кт/КМЛ
Qt — очень мощный набор инструментов для создания кроссплатформенных приложений на C++ и Python (а также Ruby, PHP, C# и т. д., но они, напротив, поддерживаются сообществом).
Qt — уже достаточно старый фреймворк, но он продолжает активно развиваться и на нем пишутся такие программы, как 2ГИС для Android, Kaspersky Internet Security, Virtual Box, Skype, VLC Media Player, Opera и другие.
Среда рабочего стола KDE, известная многим пользователям Linux, также написана с использованием Qt. У Qt есть среда разработки — Qt Creator, в состав которой входит Qt Designer, с помощью которого можно создать графический интерфейс.
Визуальное создание интерфейса позволяет легко и просто создавать интерфейс, перетаскивая на форму различные виджеты (выпадающие списки, кнопки, переключатели).
Qt имеет обширную документацию, активную поддержку сообщества и множество других преимуществ.
Официальный сайт плюсы
- Редактор визуального интерфейса
- Огромное количество модулей, включенных в фреймворк
- Поддержка большого количества языков программирования (официально только Python и C++, остальные поддерживаются сообществом) -> хорошая нативность с грамотным кодом
- Низкий барьер входа
- Большой вес приложения
- Высокая стоимость коммерческой лицензии
ГТК
GTK, наряду с Qt, является одной из самых популярных библиотек для кроссплатформенной разработки элементов интерфейса для X Window Systems. Разработан Gnome Foundation и GNU. С использованием этой библиотеки написаны многие среды рабочего стола и оконные менеджеры (Gnome, xfce MATE, Cinnamon, AfterStep, Marco и многие другие), а также программы, например: Chromium, FireFox, MonoDevelop, Gimp и другие.
GTK написан на C, но существуют оболочки для многих языков программирования (C, C++, Python, Java и других).
В Gtk есть дизайнер для разработки визуального интерфейса — Glade. Официальный сайт
плюсы
- Поддерживает большое количество языков
- Большое и активное сообщество
- Множество популярных проектов и примеров
- Визуальный редактор
Минусы
- Критических недостатков не обнаружено (если у вас есть «проблемы» с Gtk, вы можете написать об этом в комментариях)
Авалония
Достаточно молодой и активно развивающийся фреймворк для кроссплатформенной разработки, разработанный Стивен Кирк и поддерживается Фонд .
NET
и сообщество.Avalonia позволяет создавать интерфейсы на основе XAML. Сама Авалония основана на WPF/UWP. Код написан на C#.
Благодаря XAML Avalonia позволяет создавать гибкие и стилизованные интерфейсы.
Имеет хорошую документацию, хоть и невелик, но имеет очень дружелюбное русскоязычное сообщество.
Официальный сайт плюсы
- Хорошая нативность (+поддержка системных украшательств)
- Активное и дружное сообщество, как русскоязычное, так и англоязычное (чаты, форумы)
- Заимствование и сходство с WPF (Если вы работали с WPF, вам будет легко разобраться в Авалонии, а если возникнут трудности, код, написанный для WPF, скорее всего, подойдет вам и в Авалонии)
- Стили (стили в Авалонии похожи на CSS, что упрощает написание этих самых стилей)
- Небольшое сообщество (хоть и дружелюбное, но в силу молодости проекта всё ещё очень маленькое сообщество разработчиков)
- Небольшое количество проектов (вы можете застрять в том, что никто не решил проблему, стоящую перед вами)
WxWidgets/WxPython
wxWidgets (ранее известный как wxWindows ) — это кроссплатформенная библиотека инструментов с открытым исходным кодом для разработки кроссплатформенных приложений на уровне исходного кода, особенно для создания графических пользовательских интерфейсов (GUI).
Он предназначен для большего, чем просто создание графических интерфейсов.
Также имеется набор классов для работы с графическими изображениями, HTML, XML документами, архивами, файловыми системами, процессами, подсистемами печати, мультимедиа, сетями, классы для организации многопоточности, отладки, отправки дампов и многие другие инструменты.
Имеет оболочку для языка Python — WxPython. С использованием этой библиотеки были написаны такие программы, как FileZilla, AudaCity, BitTorrent и другие.
Официальный сайт Минусы
- Мало актуальной информации в Интернете
- Не очень активное сообщество
- Простое написание интерфейса
- поддержка разных языков программирования
Ткинтер
Tkinter, кроссплатформенная графическая библиотека, управляемая событиями, разработанная Гвидо ван Россумом (создателем языка Python), позволяет вам написать простой, но функциональный интерфейс для вашего проекта Python. По сути, Tkinter — это пакет Python, предназначенный для работы с библиотекой Tk. Библиотека Tk содержит компоненты графического пользовательского интерфейса (GUI), написанные на языке программирования Tcl, и имеются реализации для разных языков (в качестве примера приведен Tkinter).
Официальный сайт Минусы
- Примитивные интерфейсы
- Для одного языка (но само Тк существует для разных языков)
- Простое написание интерфейса
- Позволяет быстро написать простой графический интерфейс для вашей программы Python.
Нижняя граница
В этой статье я рассказал не обо всех фреймворках, а о самых популярных, активно поддерживаемых и подходящих для совершенно разных проектов и задач.Призываю вас рассказать в комментариях о своем опыте работы с различными фреймворками (но только теми, которые есть в статье), о том, какие плюсы и минусы вы видите в кроссплатформенной разработке? Теги: #Разработка для Linux #Разработка для Windows #Разработка для MacOS #nw.js #Визуальное программирование #GUI #Qt #кроссплатформенность #tkinter #avalononiaui #кроссплатформенность #electron js
-
Процесс Компьютерных Рождественских Огней
19 Oct, 24 -
Мечты Роберта Бойля Сбываются. Часть 3
19 Oct, 24 -
Slideshare Отказался От Flash Для Html5
19 Oct, 24 -
Как Сделать Лед Мгновенно!
19 Oct, 24 -
Отчет Agilecamp 2013
19 Oct, 24 -
Версия Под Ie
19 Oct, 24 -
Мне Нужна Строка Из Api, Точка, Точка
19 Oct, 24