다음은 Python 프로그램을 안드로이드 앱으로 만드는 과정과 몇가지 빌드 에러를 해결하는 방법을 설명한 글입니다.
개요
Python은 기본적인 데이터 시각화부터 데이터 분석, 게임, 그리고 기계학습이나 인공지능에 이르기까지 많은 것을 쉽게 만들 수 있는 프로그램이라고 생각한다.
그러나 유일한 단점이라면 Python으로 만든 프로그램을 안드로이드나 iOS와 같은 모바일 앱으로 만드는 것이 쉽지 않다는 것이다.
인터넷을 찾아보면 Kybi라는 것이 있는데 개인적으로는 좀 깔끔하지 않고 어려워 보이기도 했다.
그러나 Flutter란 프레임워크를 이용하여 안드로이드 앱을 빌드하는 방법이 있고 이를 소개해보려고 한다.
사실 Flutter는 dart란 언어를 사용하는데 여기서는 python으로 짠 프로그램을 만들어볼 것이다.
그러기 위해서는 Flet이라는 python UI 라이브러리를 이용해야 한다.
필요 프로그램 설치
[ Flutter 설치 ]
먼저 Flutter를 컴퓨터에 설치한다.
Flutter를 설치하는 방법은 여러 블로그에서 찾아볼 수 있으며 설치는 어렵지 않다.
Flutter를 설치하면 명령 프롬프트 창에서 “flutter doctor”를 쳐서 필요한 프로그램들의 설치 여부를 확인할 수 있다.
대부분의 경우, 설치되지 않은 프로그램들이 있기 때문에 이는 꼭 체크해봐야 한다.
위에서 보면, 설치가 되지 않은 프로그램은 X 표시가 뜨고 정상 설치된 프로그램은 녹색 체크 표시가 뜬다.
나의 경우에는 많은 프로그램들, 심지어는 Visual Studio도 설치되어있지 않아서 모두 설치해 주었다.
현재는 위의 그림처럼 Visual Studio에서 무언가가 완벽히 설치되지 않았지만 프로그램 실행에는 문제가 없었다.
[ Android Studio와 Emulator 설치 ]
앞에서 flutter doctor를 통해 필요 프로그램을 모두 설치했다면 Android Studio를 설치했을 것이다.
Android Studio를 통해 Android Emulator를 설치할 수 있는데 이를 설치하길 바란다.
이 Android Emulator를 통해 앱의 실행결과를 쉽게 확인할 수 있기 때문이다.
Android Studio와 Emulator 설치 역시 다른 블로그에 많이 있으니 여기서 얘기하지는 않겠다.
[ Flet 설치 ]
Flet는 “pip install flet”을 통해 설치할 수 있고, 업그레이드는 “pip install flet –upgrade”를 통해 할 수 있다.
Flet을 설치했으면 아래와 같은 Python 프로그램을 작성해 본다.
import flet as ft
def main(page: ft.Page):
page.add(ft.SafeArea(ft.Text("Hello, Flet!")))
ft.app(main)
위의 프로그램은 텍스트를 출력하는 아주 단순한 코드이며 여기서는 python 프로그램을 안드로이드 앱을 만드는 과정을 알아보는 것이므로 python 코드에 대한 설명은 하지 않겠다.
위의 프로그램을 실행해 보면 다음과 같은 결과가 출력된다.
APK 파일 생성
이제 이 python 프로그램을 안드로이드에서 실행 가능한 APK 파일로 생성해 본다.
먼저 앞에서의 python 프로그램 파일의 파일명은 “main.py” 이어야 하고 이 파일을 컴퓨터에 설치된 flet의 해당 폴더로 이동하고 이때에 새로운 프로젝트 폴더를 만들어 그 안에 넣는다.
나의 경우에는 “test”란 이름의 폴더를 만들었으며 경로는 다음과 같다.
C:\Users\ooo\ooo\ooo\site-packages\flet\bin\flet\test
그럼 VS Code의 터미널 창에서 위의 경로로 들어간 후 다음의 명령어로 apk 파일을 생성한다.
flet build apk
그럼 특별한 문제가 없다면 꽤 시간이 지난 후 test 폴더에 build 폴더가 생성되고 그 내부에 apk 파일이 생성된다.
[ apk 빌드 시 발생 문제와 해결책 ]
그러나 여기서 여러 문제가 발생할 수 있다.
나의 경우에도 마찬가지였는데, 그중에는 “git”이 설치되어 있지 않아서 발생하는 문제도 있었고 또한, 무언가 프로그램 간 버전 일치가 되지 않는다는 에러가 발생하는 경우가 있었다.
이런 경우 중 하나는 명령 프롬프트에서 Flutter가 설치된 폴더로 들어가 “flutter pub outdated”를 실행시켜 업데이트가 필요하다.
그리고 에러 메시지 중 다음과 같은 에러 메시지가 발생할 수 있는데 이 경우에는 컴퓨터의 시스템 설정으로 들어가 "개발자 모드"를 활성화해야 한다.
“Please enable Developer Mode in your system settings.
Run start ms-settings:developers to open settings.”
그 외에도 에러가 발생하면 그 에러 메시지를 카피하여 구글에서 찾아보던가 아니면 chatgpt를 활용해도 해결책을 찾을 수 있을 것이다.
APK 파일 확인하기
이제 생성된 APK 파일을 확인하는 방법을 알아보겠다.
물론 이를 자신의 핸드폰에 직접 넣고 확인하는 방법도 있겠지만, 그보다는 앞에서 Android Stuido를 설치하면서 같이 설치한 Emulator를 이용하면 쉽게 결과를 확인할 수 있다.
Android Studio를 열면 아래와 같이 Device Manager를 통해 자신이 설치한 안드로이드 앱 버전을 선택하여 실행시킬 수 있다.
그리고 이를 실행시키면 다음의 그림과 같다.
이렇게 Flutter를 이용하여 python 프로그램을 안드로이드 앱으로 만들고 이를 android emulator를 이용하여 확인하는 방법까지 알아봤다.
사실 이 방법을 공부한 이유가 이전에 Google colab상에서 만들어놓은 로또 번호 생성기를 핸드폰에서 실행시킬 수 있게 하기 위함이었다.
그래서 앞으로 flet 라이브러리를 좀 더 공부하고 최종적으로는 로또 번호 생성 python 프로그램을 핸드폰에서 구동시켜 보겠다.
'Python' 카테고리의 다른 글
Flet을 이용한 로또 1등 번호 생성기 (11) | 2024.09.24 |
---|---|
ChatGPT API를 이용한 간단한 챗봇 만들기 (0) | 2023.07.02 |
머신 러닝을 통한 위협 레이다 신호 분류 (기본) (2) | 2023.02.26 |
로또 번호 생성기 & ChatGPT (0) | 2023.01.07 |
파이썬을 이용한 자동 거래 - RSI Divergence 수익 분석 (8) | 2023.01.01 |
댓글