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?
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?
Yanıtlar:
Ş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.
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.
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.
Evet yapabilirsin. Kodunuzu tinypy'de (Python ile sınırlandırılmıştır) yazarsınız, ardından tinypy'yi C ++ 'ya dönüştürmek için kullanırsınız ve son olarak bunu XCode ile yerel bir iPhone uygulamasında derlersiniz. Phil Hassey, Elephants adlı bir oyun yayınladı! bu yaklaşımı kullanarak. İşte daha fazla ayrıntı,
http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/
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 .
İOS Geliştirici Sözleşmesinin güncellenmesi, geliştirici yönergelerine uyduğunuz sürece istediğiniz her şeyi kullanabileceğiniz anlamına gelir. Geliştiricilerin iOS geliştirme için kullanabileceklerini kısıtlayan Bölüm 3.3.1 tamamen kaldırılmıştır.
Kaynak: http://daringfireball.net/2010/09/app_store_guidelines
Pythonista , Python komut dosyalarınızı bağımsız iOS uygulamaları oluşturan Xcode projeleri olarak dışa aktarmanıza olanak tanıyan bir Xcode'a Aktar özelliğine sahiptir.
https://github.com/ColdGrub1384/Pyto da araştırmaya değer.
İ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.
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 .
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.
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.
İ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 .
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.