Python kullanarak yerel iPhone uygulamaları yazabilir miyim? [kapalı]


93

PyObjC'yi kullanarak OS X için Cocoa uygulamaları yazmak için Python'u kullanabilirsiniz. Python kullanarak yerel iPhone uygulamaları yazabilir miyim ve eğer öyleyse, nasıl?


36
iPhone geliştiricileri bu soruyu güncelliğini yitirmiş (fazla yerelleştirilmiş) olarak işaretliyor ve bu sorunu çözmeye yönelik girişimler de sorunun hala doğru olduğuna dair şikayetler çekiyor. Öyleyse, bir arama sonucunda buradaysanız, bu cevabın '08'den geldiği ve doğru bir cevabı olmayabilir.

1
Daha fazla açıklamak gerekirse: Apple bir zamanlar sözleşmesinde izin verilen programlama dilleri C, C ++, Objective-C ve Javascript'i özel olarak listeleyen bir bölüme sahipti. Bu, birçok kafa karışıklığına, şüpheye ve korkuya neden oldu. Sonunda Apple dilleri adlandırmayı bıraktı. Bu yerinde olsa bile, bir şekilde Lua komut dosyası kullanan çeşitli uygulamaların mağazada, yayınlanıyor veya geliştirme aşamasında olduğunu biliyorum.
LearnCocos2D

Yanıtlar:


37

Şu anda değil, şu anda iPhone SDK'ya erişmek için kullanılabilen diller C / C ++, Objective C ve Swift'dir.

İleride bunun değişmemesi için teknik bir neden yok ama kısa vadede bunun olması için nefesini tutmam.

Bununla birlikte, Objective-C ve Swift gerçekten çok korkutucu değil ...

2016 düzenlemesi

NativeScript çerçeveli Javascript artık kullanılabilir.


32
Objective-C'de çok özellikli bir iPhone uygulaması ve PyObjC'de çok özellikli bir Mac uygulaması yazdım ve deneyime dayanarak, Objective-C'nin özellikle veri yapıları için sözdizimi (diziler ve sözlükler) Python'unkinden önemli ölçüde daha hantal ve sıkıcıdır. Apple, PyObjC'yi destekleyene kadar iPhone uygulamamda daha fazla geliştirme yapmayı reddettim. Algoritmalarımın yukarıdan aşağıya akışını geliştirmeye çalışırken, Objective-C'nin nispeten ayrıntılı ve sıkıcı sözdizimi inanılmaz derecede dikkatimi dağıtıyor.
Chris Redford

1
@Dave Verwer: Bu yanıt hala güncel mi?
bukzor


2
@cobbal: Öyleyse bu konu oldukça yanıltıcı .. Düzeltmenin doğru yolu nedir?
bukzor

5
@Max PyObjC'yi bir Mac uygulaması oluşturmak için kullandınız ve bu nedenle Python ile yazılmış Apple programları ile Objective-C ile yazılmış Apple programları arasındaki okunabilirliği karşılaştırdınız mı? Değilse, bu yargı için bir dayanağınız yok.
Chris Redford

53

Jay Freeman'ın (Saurik) mükemmel çalışması nedeniyle iPhone'da da PyObjC'yi kullanabilirsiniz. Python'da iPhone Uygulamalarına bakın .

Bunun şu anda jailbreak yapılmış bir iPhone gerektirdiğini unutmayın.


24

Görünüşe göre bu, geliştiricilerin yapmasına izin verilen bir şey: iOS Geliştirici Sözleşmesi dün değiştirildi ve uygulamanıza bir Python yorumcusu yerleştirmeyi yasal hale getirecek şekilde değiştirilmiş görünüyor:

BÖLÜM 3.3.2 - TERCÜMANLAR

Eski:

3.3.2 Bir Uygulama, bir eklenti mimarisinin kullanılması, diğer çerçevelerin, diğer API'lerin çağrılması veya başka bir yol dahil ancak bunlarla sınırlı olmamak üzere, başka bir çalıştırılabilir kodu hiçbir şekilde yükleyemez veya başlatamaz. Apple tarafından yazılı olarak aksi onaylanmadıkça, Apple'ın Belgelenen API'leri ve yerleşik yorumlayıcı (lar) tarafından yorumlanan ve çalıştırılan kod haricinde bir Uygulamada yorumlanmış kod indirilemez veya kullanılamaz. Yukarıdakilere bakılmaksızın, Apple'ın önceden yazılı onayı ile, bir Uygulama, söz konusu kullanım yalnızca Uygulamanın amaçlanan ve reklamı yapılan amacına uygun küçük özellikler veya işlevsellik sağlamak için ise, gömülü yorumlanmış kodu sınırlı bir şekilde kullanabilir.

Yeni:

3.3.2 Bir Uygulama yürütülebilir kodu indiremez veya kuramaz. Yorumlanan kod, bir Uygulamada yalnızca tüm komut dosyaları, kod ve yorumlayıcılar Uygulama içinde paketlenmişse ve indirilmemişse kullanılabilir. Yukarıdakilerin tek istisnası, Apple'ın yerleşik WebKit çerçevesi tarafından indirilen ve çalıştırılan komut dosyaları ve koddur.



21

Evet, günümüzde Python'da iOS için uygulamalar geliştirebilirsiniz.

Kontrol etmek isteyebileceğiniz iki çerçeve vardır: Kivy ve PyMob .

Bundan daha güncel oldukları için lütfen bu sorunun yanıtlarını da düşünün .


Kivy ve PyMob yerel uygulamalar oluşturmuyor
Serjik

"Yerli" tanımınıza bağlıdır. Soru, OSX için python uygulaması yazmayı, şimdi iOS için yazabildiğiniz gibi belirli bir dereceye kadar kapsayan bir tanımı ifade ediyor.
Filipe Correia



4

İPhone SDK sözleşmesi, komut dosyası dillerini çalıştırmanıza izin verilip verilmeyeceği konusunda da oldukça belirsizdir (bir WebView Javascript'inin dışında). Benim okumam sorun değil - yürüttüğünüz komut dosyalarından hiçbiri ağdan indirilmediği sürece (bu nedenle önceden yüklenmiş ve kullanıcı tarafından düzenlenen komut dosyaları sorunsuz görünüyor).

IANAL vb.


3

BeeWare , yerel iOS ve Android uygulamaları yazmak için açık kaynaklı bir çerçevedir.


hala geliştirme aşamasında ve sorunlu
ikel

3

2019 Güncellemesi:

Python-iOS geliştirme nispeten olgunlaşmamış ve muhtemelen uygulamanızın Apple destekli bir geliştirme dilinde elde edilebilecek yerel kullanıcı arayüzüne ve işlevselliğe sahip olmasını engelleyecek (afaik) olsa da, Apple artık Python yorumlayıcılarının Yerel Swift / Obj-C'ye yerleştirilmesine izin veriyor gibi görünüyor. uygulamalar.

Bu, Python kitaplıklarını içe aktarmayı ve Python komut dosyalarını (sağlanan komut satırı argümanlarıyla bile) doğrudan Yerel Swift / Obj-C kodunuzdan çalıştırmayı destekler.

Şirketim aslında altyapımızı (orijinal olarak Python ile yazılmış) yerel bir iOS uygulamasına sarıyor! Çok iyi çalışıyor ve parçalar arasındaki iletişim bir istemci-sunucu modeli aracılığıyla kolayca sağlanabilir.

İOS uygulamanızda Python komut dosyalarını denemek ve çalıştırmak istiyorsanız, Beeware tarafından hazırlanan güzel bir kitaplık, bir cookiecutter şablonu: https://github.com/beeware/Python-Apple-support/tree/3.6 .


1

Teknik olarak, yorumlanan kod ISN'T indirildiği sürece (JavaScript hariç), uygulama onaylanabilir. Rhomobiles "Rhodes" çerçevesi tam da bunu yapar; mobil Ruby, hafif bir Rails sürümü ve uygulamanızı uygulama mağazası aracılığıyla dağıtmak üzere bir araya getirir. Hem yorumlayıcı hem de yorumlanan kod son uygulamada paketlendiğinden - Apple bunu sakıncalı bulmuyor.

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

Apple'ın en son basın bülteninden sonra bile - rhodes uygulamaları (mobil yakut) uygulama mağazasında hala geçerli. İstekli bir geliştirici topluluğu varsa tinyPy veya pyObjC'nin bir yer bulamayacağına inanmakta zorlanıyorum.


0

Bunu PyObjC ile, elbette jailbreak'li bir telefonla yapabilirsiniz. Ancak bunu App Store'a almak istiyorsanız, "kodu yorumladığı" için buna izin vermezler. Ancak bunu yapan birinin farkında olmasam da Shed Skin'i kullanabilirsiniz . Dinamik yazmayı kaybettiğiniz için bunu yapmak için iyi bir neden düşünemiyorum ve ObjC'yi de kullanabilirsiniz.


-1

İPhone geliştirme için çerçeveler ve uyumluluk açısından yarı önemli destekle bildiğim tek önemli "harici" dil, iPhone üzerinde geliştirme için bir C # /. NET ortamı olan MonoTouch'tur .


Evet, ancak yeni iPhone Geliştirici Anlaşması ile Mono Touch'ın ne olacağını beklemeli ve görmeliyiz.
TalkingCode

1
@Holli: Şimdi yeni geliştirici anlaşması MonoTouch'ı net bir hale getiriyor
Dan McClain

-1

Daha önce mümkün olmadığını düşünüyorum ama son zamanlarda ilginç görünen PyMob'u duydum, çünkü uygulamalar Python'da yazılıyor ve son çıktılar çeşitli platformlarda yerel kaynak kodları (iOS için Obj-C, Android için Java vb.). Bu kesinlikle oldukça benzersiz. Bu web sayfası bunu daha ayrıntılı olarak açıklamaktadır.

Henüz bir şans vermedim, ama yakında bir göz atacağım.


Görünüşe göre bu ticari bir proje olarak başlatılacak. Şu andan itibaren (28-Eylül-12) site şöyle diyor: "Sınırlı bir Beta programı için müşteri kabul ediyoruz. Lütfen sormak için bizimle iletişime geçin" ve hepsi bu kadar.
ccpizza
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.