Kivy

개요
Kivy(키비)는 파이썬으로 작성된 오픈소스 멀티터치 애플리케이션 프레임워크다. Windows, macOS, Linux는 물론 Android·iOS·Raspberry Pi와 같은 임베디드 플랫폼까지 다양한 운영체제에서 동일한 코드베이스로 동작하도록 설계되었다. GUI 위젯, 그래픽 엔진, 입력 처리, 멀티스레드 지원 등을 제공하며, 특히 터치·제스처 기반 인터페이스를 손쉽게 구현할 수 있다. Kivy는 MIT 라이선스로 배포돼 상업·비상업 프로젝트 모두 자유롭게 사용할 수 있다.

역사

  • 2011년 4월, 프랑스의 개발자 Mathieu Virbel이 “Kivy”라는 이름으로 최초 공개하였다.
  • 2012년 1월, Kivy Project가 공식적인 오픈소스 프로젝트로 전환되면서 커뮤니티 기반 개발이 본격화되었다.
  • 2017년 버전 1.10부터는 Python 3 전용으로 전환했으며, 이후 지속적인 업데이트를 통해 Android SDK·iOS Xcode와의 통합을 강화하였다.

주요 특징

구분 설명
멀티터치·제스처 지원 터치, 핀치, 스와이프 등 다양한 제스처를 기본 위젯과 이벤트 시스템에서 제공
크로스‑플랫폼 동일한 파이썬 코드가 Windows·macOS·Linux·Android·iOS·Raspberry Pi 등에서 실행
GPU 가속 그래픽 OpenGL ES2 기반 렌더링 엔진을 사용해 고성능 2D/3D 그래픽 구현
KV 언어 UI 레이아웃을 선언적으로 기술할 수 있는 전용 DSL(KV language) 제공
모듈식 구조 kivy.core, kivy.uix, kivy.graphics 등으로 기능이 구분돼 필요 부분만 선택적으로 사용 가능
플러그인·애드온 KivyMD(머티리얼 디자인), KivEnt(게임 엔진), Kivy Garden(공동 저장소) 등 다양한 확장 모듈 존재

구조 및 핵심 구성요소

  1. Core – 입력(키보드, 마우스, 터치), 윈도우 관리, 로깅, 설정 등 프레임워크 전반에 필요한 저수준 기능.
  2. GraphicsCanvas, Instruction, Shader 등 OpenGL ES2 기반 그래픽 명령어 집합.
  3. UIX (User Interface X) – 버튼, 슬라이더, 텍스트입력, 리스트뷰 등 재사용 가능한 위젯 컬렉션.
  4. KV Language.kv 파일에 UI 레이아웃과 속성을 선언함으로써 파이썬 코드와 분리된 디자인 구현 가능.
  5. App 클래스 – 애플리케이션 진입점으로 build() 메서드에서 루트 위젯을 반환한다.

활용 사례

  • 모바일 앱 – 교육용 인터랙티브 도구, 데이터 시각화 앱, IoT 대시보드 등.
  • 데스크톱 도구 – 프로토타입 UI, 과학·공학 시뮬레이션 인터페이스, 멀티미디어 플레이어.
  • 임베디드 시스템 – Raspberry Pi 기반 터치 키오스크, 스마트 미러, 로봇 제어 패널.
  • 게임 개발 – 간단한 2D 게임 제작에 KivEnt와 결합해 사용.

라이선스
MIT License(오픈소스 허가) – 소스 코드 수정·재배포, 상업적 이용 모두 자유롭고, 저작권 고지만 유지하면 된다.

주요 참고 문헌·링크

  • 공식 홈페이지: https://kivy.org
  • GitHub 저장소: https://github.com/kivy/kivy
  • Kivy Documentation (영문): https://kivy.org/doc/stable/
  • Kivy Garden (확장 모듈 저장소): https://github.com/kivy-garden/kivy-garden

요약 – Kivy는 파이썬 기반의 멀티터치 친화적인 크로스‑플랫폼 GUI 프레임워크로, 오픈소스 커뮤니티와 풍부한 확장성을 바탕으로 모바일·데스크톱·임베디드 환경 전반에 걸친 다양한 애플리케이션 개발에 활용되고 있다.

둘러보기

더 찾아볼 만한 주제