Menggunakan PyObjC , Anda dapat menggunakan Python untuk menulis aplikasi Cocoa untuk OS X. Dapatkah saya menulis aplikasi iPhone asli menggunakan Python dan jika ya, bagaimana?
Menggunakan PyObjC , Anda dapat menggunakan Python untuk menulis aplikasi Cocoa untuk OS X. Dapatkah saya menulis aplikasi iPhone asli menggunakan Python dan jika ya, bagaimana?
Jawaban:
Tidak saat ini, saat ini satu-satunya bahasa yang tersedia untuk mengakses iPhone SDK adalah C / C ++, Objective C dan Swift.
Tidak ada alasan teknis mengapa hal ini tidak dapat berubah di masa mendatang, tetapi saya tidak akan menahan napas Anda karena hal ini terjadi dalam jangka pendek.
Meski begitu, Objective-C dan Swift sebenarnya tidak terlalu menakutkan ...
2016 edit
Javascript dengan kerangka NativeScript tersedia untuk digunakan sekarang.
Anda juga dapat menggunakan PyObjC di iPhone, karena karya luar biasa dari Jay Freeman (saurik). Lihat Aplikasi iPhone dengan Python .
Perhatikan bahwa ini membutuhkan iPhone yang sudah di-jailbreak saat ini.
Tampaknya ini sekarang adalah sesuatu yang diizinkan untuk dilakukan oleh pengembang: Perjanjian Pengembang iOS telah diubah kemarin dan tampaknya telah diubah sedemikian rupa untuk membuat penyematan penerjemah Python dalam aplikasi Anda legal:
BAGIAN 3.3.2 - PENAFSIR
Tua:
3.3.2 Aplikasi tidak boleh menginstal sendiri atau meluncurkan kode lain yang dapat dijalankan dengan cara apa pun, termasuk namun tidak terbatas pada penggunaan arsitektur plug-in, memanggil kerangka kerja lain, API lain, atau sebaliknya. Kecuali jika disetujui oleh Apple secara tertulis, tidak ada kode yang ditafsirkan dapat diunduh atau digunakan dalam Aplikasi kecuali untuk kode yang diinterpretasikan dan dijalankan oleh API Terdokumentasi Apple dan interpreter internal. Sekalipun demikian, dengan persetujuan tertulis sebelumnya dari Apple, Aplikasi dapat menggunakan kode interpretasi yang disematkan dengan cara terbatas jika penggunaan tersebut semata-mata untuk menyediakan fitur atau fungsionalitas kecil yang konsisten dengan tujuan yang dimaksudkan dan diiklankan dari Aplikasi.
Baru:
3.3.2 Aplikasi tidak boleh mengunduh atau menginstal kode yang dapat dijalankan. Kode yang ditafsirkan hanya dapat digunakan dalam Aplikasi jika semua skrip, kode, dan juru bahasa dikemas dalam Aplikasi dan tidak diunduh. Satu-satunya pengecualian untuk hal tersebut di atas adalah skrip dan kode yang diunduh dan dijalankan oleh kerangka kerja WebKit bawaan Apple.
Ya kamu bisa. Anda menulis kode Anda dalam tinypy (yang dibatasi Python), lalu menggunakan tinypy untuk mengubahnya menjadi C ++, dan terakhir mengkompilasinya dengan XCode menjadi aplikasi iPhone asli. Phil Hassey telah menerbitkan game berjudul Elephants! menggunakan pendekatan ini. Berikut detail selengkapnya,
http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/
Ya, saat ini Anda dapat mengembangkan aplikasi untuk iOS dengan Python.
Ada dua kerangka kerja yang mungkin ingin Anda periksa : Kivy dan PyMob .
Harap pertimbangkan jawaban atas pertanyaan ini juga, karena jawaban tersebut lebih mutakhir daripada yang ini.
Pembaruan pada Perjanjian Pengembang iOS berarti Anda dapat menggunakan apa pun yang Anda suka, selama Anda memenuhi pedoman pengembang. Bagian 3.3.1, yang membatasi apa yang dapat digunakan pengembang untuk pengembangan iOS, telah dihapus seluruhnya.
Sumber: http://daringfireball.net/2010/09/app_store_guidelines
Pythonista memiliki fitur Ekspor ke Xcode yang memungkinkan Anda mengekspor skrip Python sebagai proyek Xcode yang membuat aplikasi iOS mandiri.
https://github.com/ColdGrub1384/Pyto juga layak untuk dilihat.
Perjanjian iPhone SDK juga agak kabur tentang apakah Anda bahkan diizinkan untuk menjalankan bahasa skrip (di luar Javascript WebView). Saya membaca bahwa tidak apa-apa - selama tidak ada skrip yang Anda jalankan diunduh dari jaringan (jadi skrip pra-instal dan yang diedit pengguna tampaknya baik-baik saja).
IANAL dll.
Pembaruan 2019:
Meskipun pengembangan Python-iOS relatif belum matang dan kemungkinan akan mencegah (afaik) aplikasi Anda memiliki UI asli dan fungsionalitas yang dapat dicapai dalam bahasa pengembangan yang didukung Apple, Apple sekarang tampaknya mengizinkan penyematan interpreter Python di Native Swift / Obj-C aplikasi.
Ini mendukung pengimporan pustaka Python dan menjalankan skrip Python (bahkan dengan argumen baris perintah yang disediakan) langsung dari kode Native Swift / Obj-C Anda.
Perusahaan saya sebenarnya membungkus infrastruktur kami (aslinya ditulis dengan Python) dalam aplikasi iOS asli! Ini bekerja dengan sangat baik dan komunikasi antar bagian dapat dengan mudah dicapai melalui model klien-server.
Ini adalah pustaka yang bagus dari Beeware dengan template cookiecutter jika Anda ingin mencoba dan menjalankan skrip Python di aplikasi iOS Anda: https://github.com/beeware/Python-Apple-support/tree/3.6 .
Secara teknis, selama kode yang ditafsirkan TIDAK diunduh (tidak termasuk JavaScript), aplikasi dapat disetujui. Framework Rhomobiles "Rhodes" melakukan hal itu, menggabungkan Ruby seluler, versi Rails yang ringan, dan aplikasi Anda untuk didistribusikan melalui app-store. Karena penerjemah dan kode yang diinterpretasikan dikemas ke dalam aplikasi akhir - Apple tidak merasa keberatan.
http://rhomobile.com/products/rhodes/
Bahkan setelah rilis pers Apple terbaru - aplikasi rhodes (ruby seluler) masih dapat digunakan di App Store. Saya akan sulit percaya bahwa tinyPy atau pyObjC tidak akan menemukan tempat jika ada komunitas pengembang yang bersedia.
Anda dapat melakukan ini dengan PyObjC, tentu saja dengan telepon yang sudah di-jailbreak. Tetapi jika Anda ingin memasukkannya ke App Store, mereka tidak akan mengizinkannya karena "menafsirkan kode". Namun, Anda mungkin dapat menggunakan Shed Skin , meskipun saya tidak mengetahui ada orang yang melakukan ini. Saya tidak bisa memikirkan alasan bagus untuk melakukan ini, karena Anda kehilangan pengetikan dinamis, dan mungkin juga menggunakan ObjC.
Satu-satunya bahasa "eksternal" yang signifikan untuk pengembangan iPhone yang saya ketahui dengan dukungan semi-signifikan dalam hal kerangka kerja dan kompatibilitas adalah MonoTouch , lingkungan C # /. NET untuk dikembangkan di iPhone.
Saya pikir itu tidak mungkin sebelumnya tetapi saya baru-baru ini mendengar tentang PyMob, yang tampaknya menarik karena aplikasinya ditulis dengan Python dan keluaran akhirnya adalah kode sumber asli di berbagai platform (Obj-C untuk iOS, Java untuk Android dll). Ini tentu cukup unik. Halaman web ini menjelaskannya lebih detail.
Saya belum mencobanya, tetapi akan segera melihatnya.