Python을 사용하여 네이티브 iPhone 앱을 작성할 수 있습니까?


91

사용 PyObjC를 네이티브 아이폰 파이썬 만일 그렇다면, 방법을 사용하여 프로그램을 작성, 당신은 OS X에서 할 수 있습니까 코코아 응용 프로그램을 작성할 수 Python을 사용할 수 있습니까?


36
iPhone 개발자들은이 질문을 구식 (너무 현지화 됨)으로 표시하고 있으며이 문제를 해결하려는 시도도 여전히 옳다는 불만을 제기하고 있습니다. 따라서 검색 결과 여기에있는 경우이 답변은 '08 년의 답변이며 정답이 아닐 수 있습니다.

1
더 자세히 설명하자면 : Apple은 계약서에 허용 가능한 프로그래밍 언어 C, C ++, Objective-C 및 Javascript를 구체적으로 나열한 섹션이있었습니다. 이것은 많은 혼란, 의심 및 두려움의 원인이었습니다. 결국 Apple은 언어 이름 지정을 중단했습니다. 나는 이것이 제자리에있는 동안에도 Lua 스크립팅을 어떤 식 으로든 사용하는 다양한 앱이 스토어에 있고, 게시되거나, 개발 중에 있다는 사실을 알고 있습니다.
LearnCocos2D

답변:


37

현재는 아니지만 현재 iPhone SDK에 액세스 할 수있는 유일한 언어는 C / C ++, Objective C 및 Swift입니다.

이것이 미래에 바뀔 수없는 기술적 이유는 없지만 단기간에 이런 일이 일어나기 위해 숨을 참지 않을 것입니다.

즉, Objective-C와 Swift는 실제로 너무 무섭지 않습니다.

2016 년 편집

이제 NativeScript 프레임 워크가있는 Javascript를 사용할 수 있습니다.


32
저는 Objective-C에서 다기능 iPhone 앱을 작성하고 PyObjC에서 다기능 Mac 앱을 작성했으며 경험을 바탕으로 특히 Objective-C의 데이터 구조 구문 (예 : 배열 및 사전)은 Python보다 훨씬 더 번거롭고 지루합니다. 기본적으로 Apple이 PyObjC에 대한 지원을 포함 할 때까지 iPhone 앱에서 추가 개발을 거부했습니다. Objective-C의 비교적 장황하고 지루한 구문은 알고리즘의 하향식 흐름을 개발하려고 할 때 엄청나게 산만합니다.
Chris Redford

1
@Dave Verwer :이 답변이 여전히 최신입니까?
bukzor


2
@cobbal : 그렇다면이 스레드는 꽤 오해의 소지가 있습니다 .. 수정하는 올바른 방법은 무엇입니까?
bukzor

5
@Max PyObjC를 사용하여 Mac 응용 프로그램을 만든 다음 Python으로 작성된 Apple 프로그램과 Objective-C로 작성된 Apple 프로그램 간의 가독성을 비교해 보셨습니까? 그렇지 않다면 그 판단에 대한 근거가 없습니다.
Chris Redford 2011 년


24

이제 개발자가 할 수있는 일인 것 같습니다. iOS 개발자 계약이 어제 변경되었으며 애플리케이션에 Python 인터프리터를 합법적으로 삽입하는 방식으로 수정 된 것으로 보입니다.

섹션 3.3.2 — 통역사

낡은:

3.3.2 응용 프로그램은 플러그인 아키텍처 사용, 다른 프레임 워크, 기타 API 호출 등을 포함하되 이에 국한되지 않는 방식을 포함하여 다른 실행 코드를 자체적으로 설치하거나 실행할 수 없습니다. Apple이 서면으로 달리 승인하지 않는 한, Apple의 Documented API 및 내장 인터프리터가 해석하고 실행하는 코드를 제외하고 해석 된 코드를 애플리케이션에서 다운로드하거나 사용할 수 없습니다. 전술 한 내용에도 불구하고, Apple의 사전 서면 동의하에, 응용 프로그램의 의도 및 광고 목적과 일치하는 사소한 특징이나 기능을 제공하기위한 용도로만 사용하는 경우 응용 프로그램은 제한된 방식으로 내장 된 해석 코드를 사용할 수 있습니다.

새로운:

3.3.2 응용 프로그램은 실행 코드를 다운로드하거나 설치할 수 없습니다. 해석 된 코드는 모든 스크립트, 코드 및 인터프리터가 응용 프로그램에 패키지되어 있고 다운로드되지 않은 경우 응용 프로그램에서만 사용할 수 있습니다. 앞서 말한 것에 대한 유일한 예외는 Apple의 내장 WebKit 프레임 워크에 의해 다운로드되고 실행되는 스크립트와 코드입니다.



21

예, 요즘에는 Python으로 iOS 용 앱을 개발할 수 있습니다.

체크 아웃 할 수있는 프레임 워크는 KivyPyMob 두 가지 입니다.

이 질문 보다 최신 정보 이므로이 질문에 대한 답변도 고려하십시오 .


Kivy와 PyMob이 네이티브 앱을 생성하지 않음
Serjik

"네이티브"의 정의에 따라 다릅니다. 이 질문은 이제 iOS 용으로 작성할 수있는 것과 동일한 방식으로 OSX 용 Python 애플리케이션 작성을 다루는 정의를 의미합니다.
Filipe Correia 2015



4

iPhone SDK 계약은 스크립팅 언어 (WebView의 Javascript 외부)를 실행할 수 있는지 여부에 대해서도 다소 모호합니다. 내 독서는 괜찮습니다-실행하는 스크립트가 네트워크에서 다운로드되지 않는 한 (따라서 사전 설치되고 사용자가 편집 한 스크립트는 괜찮은 것 같습니다).

IANAL 등


3

BeeWare 는 네이티브 iOS 및 Android 앱 제작을위한 오픈 소스 프레임 워크입니다.


그것은 개발 및 문제에서 여전히
ikel

3

2019 업데이트 :

Python-iOS 개발은 상대적으로 미성숙하고 앱이 Apple에서 지원하는 개발 언어로 구현할 수있는 네이티브 UI 및 기능을 사용하지 못하게 할 가능성이 있지만 (afaik) 이제 Apple은 네이티브 Swift / Obj-C에 Python 인터프리터를 포함 할 수 있습니다. 앱.

이는 Python 라이브러리 가져 오기 및 Python 스크립트 실행 (제공된 명령 줄 인수 포함)을 네이티브 Swift / Obj-C 코드에서 직접 지원합니다.

우리 회사는 실제로 기본 iOS 애플리케이션에서 인프라 (원래 Python으로 작성 됨)를 래핑하고 있습니다! 매우 잘 작동하며 클라이언트-서버 모델을 통해 부품 간의 통신을 쉽게 수행 할 수 있습니다.

다음은 iOS 앱에서 Python 스크립트를 실행하고 싶다면 cookiecutter 템플릿이있는 Beeware의 멋진 라이브러리입니다 : https://github.com/beeware/Python-Apple-support/tree/3.6 .


1

기술적으로 해석 된 코드가 다운로드되지 않는 한 (JavaScript 제외) 앱이 승인 될 수 있습니다. Rhomobiles "Rhodes"프레임 워크는 모바일 Ruby, Rails의 경량 버전 및 앱 스토어를 통한 배포 용 앱을 번들로 제공합니다. 인터프리터와 인터프리터 된 코드가 모두 최종 애플리케이션에 포함되어 있기 때문에 Apple은이를 불쾌하다고 생각하지 않습니다.

http://rhomobile.com/products/rhodes/

최신 Apple 보도 자료 이후에도-Rhodes 앱 (모바일 루비)은 앱 스토어에서 여전히 실행 가능합니다. 기꺼이 개발자 커뮤니티가 있다면 tinyPy 또는 pyObjC가 장소를 찾지 못할 것이라고 믿기가 어렵습니다.


0

물론 탈옥 전화로 PyObjC로 이것을 할 수 있습니다. 하지만 앱 스토어에 들어가고 싶다면 "코드를 해석"하기 때문에 허용하지 않을 것입니다. 그러나 내가 이것을하는 사람을 알지 못하더라도 Shed Skin 을 사용할 수 있습니다 . 동적 타이핑을 잃고 ObjC를 사용하는 것이 좋을 수 있기 때문에 이것을 수행하는 좋은 이유를 생각할 수 없습니다.


-1

프레임 워크 및 호환성 측면에서 약간 중요한 지원을 받고있는 iPhone 개발을위한 유일한 중요한 "외부"언어는 iPhone에서 개발하기위한 C # /. NET 환경 인 MonoTouch 입니다.


예.하지만 새로운 iPhone 개발자 계약을 통해 Mono Touch가 어떻게 될지 기다려야합니다.
TalkingCode 2010

1
@Holli : 이제 새로운 개발 계약은 MonoTouch를 명확하게합니다
Dan McClain

-1

이전에는 불가능하다고 생각했지만 최근에 앱이 Python으로 작성되고 최종 출력이 다양한 플랫폼 (iOS 용 Obj-C, Android 용 Java 등)의 네이티브 소스 코드이기 때문에 흥미로워 보이는 PyMob에 대해 들었습니다. 이것은 확실히 매우 독특합니다. 웹 페이지에서 더 자세히 설명합니다.

아직 시도하지 않았지만 곧 살펴 보겠습니다.


분명히 이것은 상업 프로젝트로 시작될 것입니다. 현재 (28-9 월 -12) 사이트에 "제한된 베타 프로그램에 대한 고객을 받고 있습니다. 문의하려면 당사에 문의하십시오"라고되어 있습니다.
ccpizza 2012 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.