[kivy (python)] [Python] 파이썬 키비(kivy) 앱 개발 - 설치와 예제 앱 분석

파이썬 키비 앱 만들기

- 설치와 예제 앱 분석 -


키비란?

키비(kivy) : 크로스 플랫폼 사용자 인터페이스의 신속한 개발을 위한 오픈 소스 파이썬 라이브러리다.

키비 응용 프로그램을 사용하면 리눅스, 윈도우에 사용하는 GUI 프로그램뿐 아니라 안드로이드, IOS 용도로 개발할 수 있다.

그래픽 : 네이티브 위젯이 아닌 OpenGL ES 2를 통해 렌더링되어 운영체제 전반에 걸쳐 모양이 균일하다.

라이센스 : MIT 라이센스 아래 무료로 사용할 수 있고 전문적으로 지원을 받는다.

키비 용어

운영체제 : 하드웨어와 소프트웨어를 관리하는 필수 시스템 소프트웨어

왜 필수인가? -> 핸드폰에서 게임할 때 안드로이드라는 운영체제가 있어야 폰이 켜지고 게임을 설치할 수 있다.

키비(kivy) : 크로스 플랫폼 사용자 인터페이스의 신속한 개발을 위한 오픈 소스 파이썬 라이브러리다.

키비 그래픽 : 네이티브 위젯이 아닌 OpenGL ES 2를 통해 렌더링되어 운영체제 전반에 걸쳐 모양이 균일하다.

키비 라이센스 : MIT 라이센스 아래 무료로 사용할 수 있고 전문적으로 지원을 받는다.

파이썬 키비 라이브러리는 아직 타 앱 애플리케이션 개발에 비해 꾸준히 비주류적인 라이브러리지만 GUI 개발 기반으로 APK 파일을 만들어 서비스할 수 있다는 면에서 파이썬의 다양한 분야 확장을 보여준다.

참고 사이트

키비 공식 문서 :

- 메인 페이지, https://kivy.org/doc/stable/

- 가이드 문서, https://kivy.org/doc/stable/guide/basic.html

공식 문서 기반 유튜브 키비 튜토리얼 강의 : https://www.youtube.com/watch?v=bMHK6NDVlCM

키비 설치

Windows 운영체제

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

pip install --upgrade pip wheel setuptools pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew pip install kivy.deps.gstreamer --extra-index-url https://kivy.org/downloads/packages/simple/ pip install kivy pip install kivy-examples

Linux 운영체제 (데비안 / 우분투)

sudo apt-get update //패키지 업데이트 //키비 저장소로 다운로드 sudo add-apt-repository ppa:kivy-team/kivy //위 명령어가 안되면 다음 명령 실행 sudo git clone https://github.com/kivy/kivy //파이썬 kivy 패키지 다운로드 sudo apt-get install python-kivy //파이썬 kivy 예제 다운로드 sudo apt-get install python-kivy-examples
 

키비 기본 예제 앱

다음은 공식 문서에서 제공하는 기본 예제 앱 애플리케이션 코드다. 키비로 애플리케이션 파일을 구성할 때는 class 단위로 kivy 라이브러리를 가져와 사용한다.

""" main.py """ import kivy kivy.require('1.0.6') # require로 사용 키비 버전 지정 from kivy.app import App from kivy.uix.label import Label class MyApp(App): def build(self): return Label(text='Hello world') # 라벨 if __name__ == '__main__': MyApp().run()

코드를 실행하면 로그 메시지를 출력하고 코드에 맞는 결과 창을 띄운다. 로그를 보면 다음 내용을 포함한다.

- 로그 저장 위치

- 각 모듈 버전 로드 성공 메시지

- 앱 시작 메시지

[INFO ] [Logger ] Record log in C:\Users\dsz08\.kivy\logs\kivy_20-08-07_2.txt [INFO ] [deps ] Successfully imported "kivy_deps.gstreamer" 0.1.17 <중략> [INFO ] [GL ] Texture max units <32> [INFO ] [Window ] auto add sdl2 input provider [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked [INFO ] [Base ] Start application main loop [INFO ] [GL ] NPOT texture support is available

기본 예제 앱은 'Hello World' 텍스트가 담긴 라벨 하나를 반환하는 것이 전부다.

다양한 키비 예제

kivy-examples 를 pip로 설치했거나 (https://pypi.org/project/Kivy-examples/

pip install Kivy-examples

git으로 다운로드 받으면 다음 예제들을 볼 수 있다. (https://github.com/kivy/kivy/tree/master/examples)

 

examples 폴더(디렉터리)에 존재하는 다양한 폴더들에 키비 예제가 있다. 다음은 튜토리얼 폴더의 pong 폴더에 있는 핑퐁게임이다.

키비 앱 사례

공식 사이트의 갤러리 항목에서 진행 프로젝트와 해당 프로젝트의 깃허브 소스코드가 있으며 구글 플레이스토어에서 kivy를 입력하면 여러 키비 앱이 있다.

키비 앱 라이프 사이클

다음 그림은 키비의 라이프 사이클을 나타낸 순서도다. 사전 준비 후 파이썬을 통해 앱이 시작되면 build 후 on_start()로 시작되며 앱의 함수들이 동작한다.

키비 앱 라이프 사이클

(출처 : https://kivy.org/doc/stable/guide/basic.html)

[출처] https://m.blog.naver.com/PostView.naver?blogId=dsz08082&logNo=222054174112&navType=by

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
64 [python][자료구조] "pdf 취소선 검출" How to identify strike-out text from PDF files using Python 졸리운_곰 2024.07.18 544
63 [python][자료구조] 오픈 소스 Python PDF 파서 라이브러리 file 졸리운_곰 2024.07.16 444
62 [python][자료구조] 벡터화 | Vectorization file 졸리운_곰 2023.12.21 330
61 [python][자료구조] Python의 Loop? NO! , Python의 Vectorization? OK!!! file 졸리운_곰 2023.12.21 473
60 [python][자료구조] Python - MySQL 데이터 추가, 삭제, 업데이트 졸리운_곰 2023.05.13 488
59 [python][자료구조] Python의 JSON - 문자열을 JSON으로 변환하는 방법 졸리운_곰 2023.05.06 456
58 [python][자료구조] [Python] Logging to MongoDB (로그 남기기) file 졸리운_곰 2023.03.24 428
57 [python][자료구조] [스파르타 웹 개발 종합] 파이썬으로 크롤링하고 DB에 저장하기(request, bs4, mongoDB 패키지 사용) 졸리운_곰 2023.03.12 461
56 [python][자료구조] [MongoDB] Document Query(조회) – find() 메소드 졸리운_곰 2023.03.08 315
55 [python][자료구조] Python(flask)으로 mongoDB 제어하기 – pymongo file 졸리운_곰 2023.03.08 604
54 [python][자료구조] django sqlite3 MySQL로 전환하기 file 졸리운_곰 2023.03.02 409
53 [python][자료구조] django에서 db.sqlite3 데이터를 mysql로 옮기기 졸리운_곰 2023.03.02 427
52 [python][자료구조] Python - JSON 파일 읽고 쓰는 방법 졸리운_곰 2023.02.04 480
51 [python][자료구조] [인코딩] 유니코드 인코딩 처리 (특히 json 입출력 시) 졸리운_곰 2023.02.04 363
50 [python][자료구조] Dropbox API 사용하기 (with python) 졸리운_곰 2022.12.03 306
49 [Python][자료구조] SQLAlchemy Tutorial(한글) - 2 졸리운_곰 2022.12.03 393
48 [Python]][자료구조] SQLAlchemy Tutorial(한글) - 1 졸리운_곰 2022.12.03 275
47 [python][자료구조] python anaconda 에서 mysql 접속 졸리운_곰 2022.01.25 657
46 [python 자료구조] 림코딩의 파이썬으로 csv 다루기 강좌 (읽기,쓰기,수정,추가) 졸리운_곰 2022.01.16 521
45 python - 읽은 후 kafka 메시지를 삭제하는 방법 졸리운_곰 2021.07.13 900
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED