Android 앱을 완전히 파이썬으로 만드는 방법은 무엇입니까? [닫은]


104

Play 스토어를 통해 배포 할 (보다 간단한) 안드로이드 앱을 개발하고 싶습니다. 나는 파이썬으로 완전히하고 싶습니다. 그러나 온라인 연구는 저를 깨우치지 못했습니다. 대부분의 댓글은 구식 (> 1 년이되었고 그 이후로 파이썬이 더 잘 통합 될 수 있다고 생각합니다) 또는 안드로이드 에서 파이썬 실행 에 대해 이야기합니다 (예 : 여기 ).

따라서 질문에 대한 정보를 찾고 있습니다.

  • 파이썬으로 완전히 앱을 개발하는 것이 가능합니까? 그렇게하는 도구는 무엇입니까? (예를 들어 Kivy가 권장됩니까?)
  • 그렇다면 :이를 구현하기위한 최상의 소프트웨어 환경은 무엇입니까? (안드로이드 스튜디오 사용에 실패했지만 거기에서 파이썬 코드를 실행하는 방법을 찾지 못했습니다.)

저는 앱 개발에 익숙하지 않으며 아직 알지 못하는 Jave 등이 아닌 Python에서이 작업을 수행하는 모든 리드에 대해 높이 평가할 것입니다.

미리 도와 주셔서 감사합니다.


과거에는 kivy와 그들의 buildozer 프로그램을 사용했습니다. 여기에 문서가 있습니다. kivy.org/docs/guide/packaging-android.html
es

기본적으로 Java 또는 Kotlin을 사용해야하지만 다른 사람들이 PyMob 또는 Kivy와 같은 Python과 함께 사용할 수있는 타사 "앱 빌더"또는 프레임 워크가 있다고 지적했습니다.
Dominik Schmidt

6
저는 Kivy를 사용하여 Python으로 완전히 개발 된 Android 게임을 만들었습니다. Google Play에서 사용할 수있는 CoinTex라고합니다 : play.google.com/store/apps/details?id=coin.tex.cointexreactfast . 게임의 소스 코드는 GitHub : github.com/ahmedfgad/CoinTex 에서 확인할 수 있습니다 . 또한 Python을 사용하여 Android 앱을 구축하기 위해 올해 출판 될 책을 썼습니다. 아마존에서 여기에 해당 : 그것은 "와 Pyjnius, Plyer 및 Buildozer 아메드 Fawzy 갓 안드로이드 스튜디오와 Kivy를 사용하여 파이썬에서 건물 안드로이드 애플 리케이션을"이라는 제목 amazon.com/dp/1484250303 .
Ahmed Gad

1
답변을 게시 할 수는 없지만 여기하는 것은 해결책이 될 것 같다 : 다른 기술이 안드로이드 웹킷과 다시 결합 할 수있는 Necessitas Qt는 포트를 사용 PySide 기반 QML GUI를하고 Py4A / SL4A 기반의 접근 방식을 포함, 시연 될 예정 -Python 웹 프레임 워크를 사용합니다.
Basj

답변:


111

첫 번째 질문에 대답하려면 : 예 순수한 파이썬 안드로이드 응용 프로그램을 개발 가능하다 난 당신이 사용하는 것이 좋습니다이를 달성하기 위해, BeeWare 단지입니다, 파이썬 도구 제품군을 함께 잘 일을하고 개발하는 데 사용할 수 있음 파이썬의 플랫폼 네이티브 애플리케이션.

체크 아웃 이 비디오를 완벽하게 설명하고 그것의 응용 프로그램을 보여줍니다 BeeWare의 창조자에 의해

작동 원리

Android에서 선호하는 구현 언어는 Java입니다. 따라서 Python으로 Android 애플리케이션을 작성하려면 Java Virtual Machine에서 Python 코드를 실행할 수있는 방법이 있어야합니다. 이것이 VOC가하는 일 입니다. VOC 는 트랜스 파일러입니다. Python 소스 코드를 가져 와서 CPython Bytecode로 컴파일 한 다음 해당 바이트 코드를 Java 호환 바이트 코드로 트랜스 파일합니다. 최종 결과는 Python 소스 코드 파일이 Android 애플리케이션으로 패키징 할 수있는 Java .class 파일로 직접 컴파일된다는 것입니다.

VOC를 사용하면 네이티브 Java 개체가 Python 개체 인 것처럼 액세스하고, Python 클래스로 Java 인터페이스를 구현하고, Python 클래스로 Java 클래스를 하위 클래스로 구현할 수 있습니다. 이를 사용하여 네이티브 Android API에 대해 직접 Android 애플리케이션을 작성할 수 있습니다.

기본 Android 애플리케이션을 작성한 후에는 Briefcase 를 사용 하여 Python 코드를 Android 애플리케이션으로 패키징 할 수 있습니다 .

서류 가방 은 Python 프로젝트를 독립형 기본 애플리케이션으로 변환하는 도구입니다. 다음을 위해 프로젝트를 패키지화 할 수 있습니다.

  • 윈도우
  • 리눅스
  • iPhone / iPad
  • 기계적 인조 인간
  • AppleTV
  • tvOS.

BeeWare 제품군을 사용하여 Python으로 작성된 이 기본 Android Tic Tac Toe 앱을 확인할 수 있습니다 . GitHub에서

BeeWare 도구 외에도 애플리케이션을 테스트하려면 JDK 및 Android SDK가 설치되어 있어야합니다.

그리고 두 번째 질문에 대답 : 좋은 환경이 당신은 내가 당신이 시도 제안 좋은 파이썬 IDE를 찾고 있다면 당신은 텍스트 편집기 및 명령 줄 또는 IDE이라고해도 편안 아무것도 할 수있다 Pycharm를 , 그것을 가지고 무료로 제공되는 커뮤니티 에디션이며 같은 회사에서 만든 사실로 인해 안드로이드 스튜디오와 비슷한 환경을 가지고 있습니다.

도움이 되었기를 바랍니다.


1
나뿐입니까 아니면 VOC가 버려 졌습니까?
기금 모니카의 소송

2
이것은 막 다른 골목입니다 (마지막으로 확인한 시간 : 2018 년 12 월). 이 지나치게 복잡한 솔루션의 하나 이상의 구성 요소가 더 이상 작동하지 않거나 최신 상태를 유지할 수 없습니다.
Berry Tsakala

2
2019 년 업데이트 일 뿐이지 만 Kotlin은 이제 Android 개발에서 선호되는 언어입니다.
DaveTheMinion 19-07-04

3
@Basj 저는 Beeware가 당분간 주변에있을 것이라고 말하고 싶습니다. GitHub 계정을 살펴보면 적극적으로 개발되고 있음을 알 수 있으며 Gitter 채널로 이동하면 다음을 수행 할 수 있습니다. 항상 전체 팀, 특히 제작자 인 Dr Russell (freakyboy)에게 도달하고 커뮤니티는 매우 친절하며 공식 계정에서 Python으로부터 교육 보조금을 받았다고 발표하는 최근 트윗 (2019 년 9 월 26 일) 트윗도있었습니다. 소프트웨어 재단. 나는 특히 당신이 만약 언어로 파이썬처럼, 그것은 당신의 시간 가치가있을 것이라고 생각
maroof 시튜

1
BeeWare는 어떤 경우에도이 단계에서 Android (Java)를 지원하지 않는 것 같습니다.
Mark Anderson

15

웹 사이트에 설명 된대로 BeeWare를 사용해 볼 수 있습니다.

Python으로 앱을 작성하고 풍부한 기본 사용자 인터페이스를 사용하여 iOS, Android, Windows, MacOS, Linux, 웹 및 tvOS에서 출시하세요. 하나의 코드베이스. 여러 앱.

이제 Python으로 Android 앱을 작성하고 싶을뿐만 아니라 나열된 다른 플랫폼 중 하나에서 작업을 수행하려는 경우 나중에 다른 프레임 워크를 배울 필요가 없다는 이점이 있습니다.

다음 은 Android 앱 자습서입니다 .


4
BeeWare로 직접 앱을 만들었습니까?
Berry Tsakala

11

Android의 Python 앱에는 두 가지 주요 경쟁자가 있습니다.

Chaquopy

https://chaquo.com/chaquopy/

이것은 Android 빌드 시스템과 통합되며 모든 Android 기능에 대한 Python API를 제공합니다. "완전한 Android API 및 사용자 인터페이스 툴킷을 직접 사용할 수 있습니다."라는 사이트를 인용하십시오.

Beeware (Toga 위젯 툴킷)

https://pybee.org/

이것은 다중 대상 트랜스 파일러를 제공하고 Android 및 iOS와 같은 많은 대상을 지원합니다. 호스트 인터페이스 호출에 매핑되는 일반 위젯 툴킷 (toga)을 사용합니다.

어느 것?

둘 다 활성 프로젝트이며 github 계정은 상당한 양의 최근 활동을 보여줍니다.

모든 위젯 라이브러리와 마찬가지로 Beeware Toga는 기본 사항을 여러 플랫폼으로 가져 오는 데 좋습니다. 기본 디자인이 있고 다른 플랫폼으로 확장하려는 경우이 방법이 적합합니다.

반면에 Chaquopy는 python API를 Android에 매핑하는 데 훨씬 더 정확합니다. 또한 다른 리소스의 기존 코드를 사용하려는 경우 유용한 Java를 혼합 할 수 있습니다. 엄격한 디자인 목표가 있고 주로 Android를 타겟팅하려는 경우 훨씬 더 나은 리소스입니다.


10

안드로이드, 파이썬!

귀하의 질문 에서이 두 키워드를 함께 보았을 때 Kivy 가 내 마음에 먼저 떠 올랐습니다.

Kivy 로고

Android Studio를 사용하여 Java로 기본 Android 개발을 시작하기 전에 Kivy를 사용해 보았습니다 . 굉장합니다. 제가 알아낼 수있는 몇 가지 이점이 있습니다.


간편한 사용

파이썬 기본을 사용하면 배우는 데 어려움이 없습니다.


좋은 커뮤니티

잘 문서화되어 있으며 훌륭하고 활동적인 커뮤니티가 있습니다.


크로스 플랫폼.

이 단일 프레임 워크로 Android, iOS, Windows, Linux 및 Raspberry Pi 용으로도 개발할 수 있습니다. 오픈 소스.


무료 소프트웨어입니다.

(크로스 플랫폼) 경쟁사 중 적어도 소수는 상용 라이센스를 원할 경우 수수료를 지불하기를 원합니다.


가속 그래픽 지원

OpenGL ES 2 위에 구축 된 Kivy 의 그래픽 엔진은 게임과 같은 빠른 그래픽 렌더링이 필요한 소프트웨어에 적합합니다.



이제 다음 질문으로 넘어가겠습니다. Kivy 용 Android Studio IDE를 사용할 수 없습니다. 다음 은 개발 환경 설정에 대한 자세한 가이드입니다.


4
Windows 지원은 프로덕션 표준 (또는 취미 표준)보다 뒤쳐져 있습니다. 또한 전 세계의 절반이 RTL 지원이 부족하여 사용할 수 없습니다.
Berry Tsakala

Kivy를 떠나 네이티브 개발 도구로 변경 한 이유는 무엇입니까? 몇 가지 단점이 있다고 제안합니다.
igoemon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.