GUI 라이브러리

덤프버전 :


1. 개요
2. 크로스플랫폼
3. 운영체제 종속


1. 개요[편집]


GUI 라이브러리는 GUI 환경에서 실행되는 응용 프로그램의 화면 출력부를 구현하기 위하여 사용되는 라이브러리이다.


2. 크로스플랫폼[편집]


Uno Platform is a free and open-source development platform that allows you to build single codebase applications for Windows, iOS, Android, WebAssembly, macOS, and Linux using C# and XAML. Easily create applications that look and feel native to each platform without having to rewrite the codebase from scratch.
WPF의 현대적 재해석을 기치로 삼는 .NET 기반의 크로스플랫폼 GUI 라이브러리. WPF, Xamarin, .NET MAUI 에서 GUI를 디자인 하듯이 XAML 디스플레이 마크업 언어를 사용하지만 HTML5 와 CSS의 이념과 ReactiveX적인 요소도 받아들여 변형하였기 때문에 완전히 호환되지는 않다. 기본 컴포넌트들은 윈도우, 맥 OS, 리눅스, iOS, 안드로이드, WebAssembly 모두를 대상으로 제공한다. 오픈소스이고 소스 자체는 MIT 라이센스로 제공되며 상업적 지원 라이센스는 별개이다. GitHub 에서 기여할 수 있다.#
C++ Builder는 훌륭한 GUI 개발 환경을 가진 IDE이며, C++를 이용하여 동일한 편의성을 누릴 수 있다. 다만 사용률이 적어 자료를 찾기가 힘들다. 또한, IDE가 한국어팩을 지원하지 않으므로 영어에 익숙하지 않으면 개발하는데 시간이 걸릴 수 있다.
  • nana C++ Library - 현대적인 C++(C++11/14/17) 문법을 사용하는 GUI 라이브러리. Microsoft Windows, Linux(X11), FreeBSD(X11)) 지원.
  • Dear ImGUI - 크로스플랫폼 C++ GUI 라이브러리. 단 Android, DirectX나 OpenGL 등의 별도의 렌더링 라이브러리 안에서만 작동한다.
  • VCL(Visual Component Library) - 오브젝트 파스칼 언어를 사용하는 개발환경인 델파이에서 제공되는 GUI 라이브러리. Microsoft Windows, macOS, Linux 뿐만 아니라 안드로이드, iOS 환경도 지원하며 델파이는 RAD 툴로서 빠르게 강력한 GUI 개발이 가능하다.
  • Electron - 웹 개발 기술인 HTML + CSS + JavaScript(Node.js)로 빠르게 데스크톱 환경을 만들 수 있다. AtomDiscord, Visual Studio Code가 Electron을 사용한다. 단점은 구현 방식이 일단 웹 브라우저 하나를 띄워놓고 시작하는 것이기 때문에 기본 용량이 크고 퍼포먼스가 떨어진다는 점. 필요하다면 프론트엔드에만 Electron을 쓰고, IPC와 FFI 혹은 wasm을 이용해 백엔드는 C/C++ 등으로 대체하는 것도 가능하다. MS가 GitHub를 인수한 이후부터는 Electron을 밀어주고 있다.
  • React: 자바스크립트를 마크업 언어로 개조한 JSX를 쓴다.
  • Qt 라이브러리 홈페이지
    • Qt는 Windows, macOS, Linux를 모두 지원하는 C++ 프레임워크로, 단순한 GUI 라이브러리가 아니라 자체적으로 네트워크, 파일 및 DB 처리, XML 지원, String 클래스 등 방대한 기능들을 가지고 있다.
    • GUI Designer를 제공하며, 윈도 환경에서는 Visual Studio와 연동된다.
    • .NET Framework의 WPF와 비슷한 QtQuick을 제공한다. QML을 시작합니다.
  • Compose Multiplatform: JetBrains에서 만든 GUI 라이브러리이다. Kotlin 기반이다.

2.1. Java[편집]


Java 언어를 위하여 개발된 GUI 라이브러리. 다른 GUI 라이브러리의 Java 언어 바인딩은 여기에 추가하지 않는다.

  • AWT / Swing - Java 런타임 기본 내장 GUI 라이브러리.
  • JavaFX - AWT와 Swing을 대체하기 위해 만들어진 표준 GUI 라이브러리.
  • SWT - 이클립스에서 사용된다. 홈페이지
  • SwingX - Swing을 대체하기 위해 시작된 오픈소스 라이브러리. 다만 2010년부터 개발이 중단되었다.


3. 운영체제 종속[편집]



3.1. Microsoft Windows[편집]


  • Windows API - 윈도우에서 제공되는 기본 API 세트. C언어 함수들을 기반으로, C++ 객체와 COM 개체를 사용할 수 있다.
  • MFC - C++ 라이브러리. Windows API를 기반으로 한다.
  • WTL - MS에서 제공하는 ATL 기반의 경량 GUI 라이브러리. 이쪽은 MFC와 달리 오픈 소스이다.
  • .NET Framework WinForms / WPF
    • .NET Framework 플랫폼에는 Windows Forms와 WPF의 두 가지 GUI 라이브러리가 포함되어 있다.
    • Windows Forms는 쉬운 난이도 덕분에 초보자가 접하기에도 용이하다. 또한 C\#C++과는 비교도 되지 않는 높은 생산성을 자랑하는 언어이며, 기존 윈도용 C/C++ 프로젝트나 라이브러리와의 연동도 수월하므로 일단 핵심 코드는 그대로 둔 채 껍데기부터 차차 교체할 수도 있다.
    • 닷넷 프레임워크로 개발된 프로그램의 대표작이라면 Visual Studio 중 2008 이후의 버전들(WPF로 개발되었다)을 들 수 있을 것이다.


3.2. macOS & iOS[편집]


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-10-26 08:01:51에 나무위키 GUI 라이브러리 문서에서 가져왔습니다.