GN⁺: Kivy - 크로스 플랫폼 Python UI 프레임워크
(kivy.org)- 데스크톱, 모바일 및 임베디드 플랫폼을 포함한 크로스 플랫폼에서 작동하는 GUI 앱을 개발하기 위한 오픈 소스 Python 프레임워크
- 빠르고 쉬운 인터랙션 디자인과 신속한 프로토타이핑을 가능하게 하는 동시에 코드를 재사용 및 배포할 수 있도록 하는 것이 목표
- 사용하기 쉽고, 단일 코드베이스로 여러 플랫폼에 앱을 배포할 수 있음
- 맥, Linux(라즈베리 파이 OS 포함), BSD, 윈도우, iOS, 안드로이드
- 모든 Kivy 위젯은 멀티터치를 지원
- Python과 Cython으로 작성되었으며 OpenGL ES 2.0 기반
- 비즈니스 친화적(MIT 라이센스) 100% 무료로 사용 가능하며, 전문적으로 개발, 지원, 유지 관리됨
- 10년된 프레임워크로 풍부한 에코시스템이 존재
- Buildozer: 모바일 기기를 포함한 여러 플랫폼에 설치할 수 있도록 Python 애플리케이션을 바이너리 패키지로 변환하는 개발 도구
- Plyer: 다양한 플랫폼(Android, iOS, macOS, Linux 및 Windows)의 하드웨어 기능에 액세스하기 위한 플랫폼 독립적인 Python API
- PyJNIus: JNI(Java Native Interface)를 사용하여 Java 클래스에 액세스하기 위한 Python 라이브러리
- Pyobjus: Objective-C 런타임 리플렉션을 사용하여 Objective-C 클래스에 Python 클래스로 액세스하기 위한 Python 모듈
- Python for Android: Python 앱을 Android 기기에서 실행할 수 있는 바이너리로 패키징하는 개발 도구
- Kivy iOS: iOS에서 Kivy 애플리케이션을 실행하는 데 필요한 라이브러리를 컴파일하고 Xcode 프로젝트 생성을 관리하는 툴체인
- Audiostream: 마이크 및 스피커에 직접 액세스할 수 있는 라이브러리
- KivEnt: Kivy용 엔티티 기반 게임 엔진
- Oscpy: 오픈 사운드 제어(OSC) 네트워크 프로토콜의 Python 구현
- Garden: 사용자들이 만들고 유지 관리하는 위젯 및 라이브러리
Hacker News 의견
-
Kivy와 관련된 다양한 프로젝트가 있으며, python-for-android와 Plyer 같은 도구들이 있음
- python-for-android: Android용 Python 프로젝트 컴파일 도구
- Plyer: 크로스 플랫폼 API 제공 도구 (알림, 하드웨어, 파일 선택기 등)
-
KivyMD는 Kivy 위에 Material Design을 구현한 도구임
-
Kivy 팀은 친절하며, PyCon이나 FOSDEM에서 만난 경험이 있음
-
Kivy 프레임워크는 사용하기 좋으며, kv라는 설명 언어가 매우 유용함
-
크로스 컴파일은 어려울 수 있으며, 앱 로딩 시간이 길지만 작동함
-
Qt 같은 큰 프레임워크에 비해 몇 가지 기능이 부족하며, WebView가 없고 접근성이 좋지 않음
-
전반적으로 매우 좋은 프로젝트이지만 더 많이 알려지지 않아 아쉬움
-
2024년 기준으로 Kivy 갤러리의 스크린샷은 매력적이지 않음
-
Electron이 현재까지는 "데스크탑" UI의 왕으로 보임
-
접근성에 대한 언급이 사이트에 없으며, 아직 구현되지 않은 것으로 보임
-
Kivy는 사용자 대면 앱에 적합하지 않음
-
새로운 UI 프레임워크들이 접근성 기능에서 부족한 점이 실망스러움
-
Kivy의 랜딩 페이지는 프레임워크 자체보다 자금 지원에 대해 더 많이 언급함
-
UI를 보여주는 이미지가 하나뿐이며, 스타일이 스톡 사진처럼 보임
-
갤러리는 상단 링크를 통해 접근 가능함
-
JavaFX도 여전히 훌륭하며, 50MB 힙으로 잘 작동하는 앱을 가짐
-
네이티브 OS 설치 프로그램도 제공하지만 웹 지원은 없음
-
Kivy는 2014년에 첫 오픈 소스 기여를 하게 만든 프로젝트임
-
Vim에 Kivy 파일 지원을 제출했으며, Bram Moolenaar와 이메일로 패치 디프를 통해 작업했음
-
Bram Moolenaar에게 애도의 뜻을 표함
-
Katrain은 Kivy를 사용하며, 롤링 릴리스 배포판에서 패키징과 업그레이드가 문제임
-
pip로 설치할 때 부분적으로 작동함
-
패키징 관점에서 Kivy는 좋지 않음
-
flet이라는 크로스 플랫폼 Python 프레임워크가 흥미로움
- Flutter로 구동되며, Flutter/Dart 튜토리얼을 Flet로 번역 가능함
- 사용해본 적은 없지만, 활발한 커뮤니티가 있으며, 인기 있는 언어로 멋진 앱을 작성할 수 있음
-
Kivy가 더 널리 사용되기 위해서는 Python의 데이터 과학/머신 러닝 분야와 연결되어야 함
-
단일 언어 생태계 내에서 데이터 중심 크로스 플랫폼 앱을 구축하는 것이 여러 API와 런타임을 사용하는 것보다 덜 복잡함
-
단일 언어 접근 방식이 유용한 앱 유형은 탐색적 데이터 과학 작업이 아님
-
고성능 인터랙티브 그래픽이 필요한 작업도 아님
-
알고리즘과 관련 도구를 비기술 사용자에게 제공하는 작업에서 Kivy가 단순성과 빠른 프로토타이핑으로 이점을 가질 수 있음
-
Swift와 SwiftUI로 iOS 앱을 작성한 경험이 있음
-
Kivy로 iOS 앱을 작성하고 앱 스토어에 올린 경험이 있는 사람의 경험을 공유 요청함