파이썬은 다재다능한 프로그래밍 언어임에 분명합니다. 웹서버에서 사용하는 백엔드 개발 언어로 사용되기도 하며, 윈도우 프로그램을 만드는 용도로 사용될 수도 있습니다. 또, 안드로이드 어플리케이션(app)을 만들때도 이용할 수 있습니다.
일반적으로 안드로이드 애플리케이션을 만들기 위해서 사용하는 언어는 자바, 코틀린, 플러터가 있습니다. 플러터의 경우 ios에서도 구동될 수 있는 앱을 개발할 수 있기 때문에 활용도가 높을 수 있습니다. 다만, 개발 컴퓨팅 환경이 맥이어야 합니다. 따라서, 자바 vs 코틀린을 사용하게 됩니다.
그런데, 파이썬(python)을 이용해서도 안드로이드 app을 만들어 볼 수 있습니다. 바로 kivy라는 프레임워크를 이용하면 가능합니다.(👉kivy 공식 홈페이지 바로가기)
파이썬, 안드로이드 app 만들기 위해 필요한 것.
kivy는 무료 오픈 소스로 누구나 활용이 가능합니다. 공식홈페이지에서는 후원을 받고 있는데요. 사용자의 후원을 통해 kivy를 운영 유지하게 된다고 알리고 있습니다.
위 사진은 공식 홈페이지 메인 화면에서 볼 수 있는 모습입니다. ‘Get started’라는 버튼을 클릭하면 시작하기부터 각 기능을 사용하는 방법에 대한 문서를 볼 수 있습니다. 안드로이드 스튜디오에서는 앱의 외관을 만들 때, 디자인 툴을 이용할 수 있습니다. kivy에는 아직 그런 기능이 없는 것 같네요. 파이썬 코딩을 통해 원하는 모양과 기능을 구현하면 됩니다.
문서에는 여러 예제를 담고 있습니다. 예를 들어, Gallery of Examples > Circle Example가 있습니다.
'''
Circle Example
==============
This example exercises circle (ellipse) drawing. You should see sliders at the
top of the screen with the Kivy logo below it. The sliders control the
angle start and stop and the height and width scales. There is a button
to reset the sliders. The logo used for the circle's background image is
from the kivy/data directory. The entire example is coded in the
kv language description.
'''
from kivy.app import App
from kivy.lang import Builder
kv = '''
BoxLayout:
orientation: 'vertical'
BoxLayout:
size_hint_y: None
height: sp(100)
BoxLayout:
orientation: 'vertical'
Slider:
id: e1
min: -360.
max: 360.
Label:
text: 'angle_start = {}'.format(e1.value)
BoxLayout:
orientation: 'vertical'
Slider:
id: e2
min: -360.
max: 360.
value: 360
Label:
text: 'angle_end = {}'.format(e2.value)
BoxLayout:
size_hint_y: None
height: sp(100)
BoxLayout:
orientation: 'vertical'
Slider:
id: wm
min: 0
max: 2
value: 1
Label:
text: 'Width mult. = {}'.format(wm.value)
BoxLayout:
orientation: 'vertical'
Slider:
id: hm
min: 0
max: 2
value: 1
Label:
text: 'Height mult. = {}'.format(hm.value)
Button:
text: 'Reset ratios'
on_press: wm.value = 1; hm.value = 1
FloatLayout:
canvas:
Color:
rgb: 1, 1, 1
Ellipse:
pos: 100, 100
size: 200 * wm.value, 201 * hm.value
source: 'data/logo/kivy-icon-512.png'
angle_start: e1.value
angle_end: e2.value
'''
class CircleApp(App):
def build(self):
return Builder.load_string(kv)
CircleApp().run()
공식 문서에서 알려준 예제와 코드를 활용하여 원하는 기능을 구현할 수 있습니다. 또한, 프로그래밍 가이드(Programming Guide)를 통해 위젯, 그래픽, 언어등의 설정을 이어갈 수 있습니다.
끝으로 가장 유용하게 활용할 수 있는 부분은 Tutorials 메뉴가 있습니다. 어떤 한 예시로 사용될 앱을 실제로 만들어보는 과정이 문서로 담겨져 있습니다.
단계별로 따라하기를 진행하면 파이썬 kivy를 이용한 앱만들기 흐름과 활용에 대한 이해도를 높이는데 도움이 될 수 있을 것입니다.