
Χρησιμοποιώντας [PyObjC](http://pyobjc.sourceforge.net/) , μπορείτε να χρησιμοποιήσετε την Python για τη δημιουργία εφαρμογών για το κακάο για το OS X. Μπορώ να γράψω μητρική εφαρμογές για iPhone χρησιμοποιώντας Python και αν ναι, πώς;

 
Μπορώ να γράψω εγγενείς εφαρμογές iPhone χρησιμοποιώντας Python
===============================================================



Δεν είναι επί του παρόντος, προς το παρόν οι μόνες διαθέσιμες γλώσσες για να αποκτήσετε πρόσβαση στο iPhone SDK είναι C / C ++, Objective C και Swift.


Δεν υπάρχει κανένας τεχνικός λόγος για τον οποίο αυτό δεν θα μπορούσε να αλλάξει στο μέλλον, αλλά εγώ δεν θα κρατάτε την αναπνοή σας για να συμβεί αυτό σε σύντομο χρονικό διάστημα.


Τούτου λεχθέντος, Objective-C και Swift πραγματικά δεν είναι πολύ τρομακτικό ...



> 
> 2016 επεξεργασία
> ================
> 
> 
> Η Javascript με το πλαίσιο NativeScript είναι διαθέσιμη για χρήση σήμερα.
> 
> 
> 

 

Μπορείτε να χρησιμοποιήσετε PyObjC για το iPhone, καθώς, χάρη στην πολύ καλή δουλειά από τον Jay Freeman (Saurik). Δείτε [iPhone Εφαρμογές στην Python](http://www.saurik.com/id/5) .


Σημειώστε ότι αυτό απαιτεί ένα jailbroken iPhone αυτή τη στιγμή.

 

Η συμφωνία iPhone SDK είναι επίσης μάλλον ασαφής σχετικά με το αν έχετε ακόμα τη δυνατότητα να τρέχει scripting γλώσσες (εκτός Javascript προβολή ιστού του). ανάγνωση μου είναι ότι είναι ΟΚ - εφ 'όσον κανένα από τα σενάρια που εκτελούν τα κατεβάσει από το δίκτυο (έτσι προ-εγκατεστημένο και το χρήστη επεξεργασία σεναρίων φαίνεται να είναι ΟΚ).


IANAL κλπ κλπ

 

Μπορείτε να το κάνετε αυτό με PyObjC, με ένα jailbroken τηλέφωνο, φυσικά. Αλλά αν θέλετε να το πάρετε στο App Store, δεν θα το επιτρέψουν, διότι «ερμηνεύει κώδικα.» Ωστόσο, ίσως να μπορείτε να χρησιμοποιήσετε [ρίξει το δέρμα](http://code.google.com/p/shedskin/) , αν και δεν γνωρίζω να κάνει κανείς αυτό. Δεν μπορώ να σκεφτώ κανένα καλό λόγο για να γίνει αυτό όμως, όπως μπορείτε να χάσει τη δυναμική δακτυλογράφηση, και θα μπορούσε κάλλιστα να χρησιμοποιήσει ObjC.

 

Η μόνη σημαντική «εξωτερική» γλώσσα για το iPhone ανάπτυξης που γνωρίζω με ημι-σημαντική υποστήριξη από πλευράς των πλαισίων και τη συμβατότητα είναι [MonoTouch](http://monotouch.net/) , ένα C # /. NET περιβάλλον για την ανάπτυξη για το iPhone.

 

Ναι μπορείς. Μπορείτε να γράψετε τον κωδικό σας tinypy (η οποία περιορίζεται Python), στη συνέχεια, χρησιμοποιήστε tinypy να το μετατρέψετε σε C ++, και, τέλος, την κατάρτιση αυτή με το Xcode σε μια εγγενή εφαρμογή iPhone. Phil Hassey έχει δημοσιεύσει ένα παιχνίδι που ονομάζεται ελέφαντες! χρησιμοποιώντας αυτή την προσέγγιση. Εδώ θα βρείτε περισσότερες λεπτομέρειες,


<http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/>

 

Μια ενημέρωση της συμφωνίας για προγραμματιστές iOS που σημαίνει ότι μπορείτε να χρησιμοποιήσετε ό, τι θέλετε, εφ 'όσον πληρούν τις κατευθυντήριες γραμμές για την ανάπτυξη. Ενότητα 3.3.1, η οποία περιορίζεται τι προγραμματιστές θα μπορούσαν να χρησιμοποιήσουν για την ανάπτυξη iOS, έχει τελείως απομακρυνθεί.


Πηγή: <http://daringfireball.net/2010/09/app_store_guidelines>

 

Τεχνικά, εφ 'όσον η ερμηνεία κώδικας ΔΕΝ κατεβάσει (με εξαίρεση το JavaScript), η εφαρμογή μπορεί να εγκριθεί. Rhomobiles πλαίσιο «Ρόδος» κάνει ακριβώς αυτό, ομαδοποίηση κινητό Ruby, μια ελαφριά έκδοση του Rails, και η εφαρμογή σας για διανομή μέσω του app κατάστημα. Επειδή τόσο ο διερμηνέας και η ερμηνεία κώδικα συσκευάζονται στην τελική εφαρμογή - Η Apple δεν θεωρούν ότι είναι ανάρμοστο.


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


Ακόμη και μετά την τελευταία έκδοση μήλο Τύπου - Ρόδος εφαρμογές (κινητό ρουμπίνι) εξακολουθούν να είναι βιώσιμη στην εφαρμογή του καταστήματος. Θα είναι δύσκολο να πιστέψει κανείς ότι tinyPy ή PyObjC δεν θα βρει μια θέση αν υπάρχει πρόθυμος κοινότητα των προγραμματιστών.

 

Φαίνεται ότι αυτό είναι τώρα οι προγραμματιστές κάτι που επιτρέπεται να κάνουν: η συμφωνία για προγραμματιστές iOS άλλαξε χθες και φαίνεται να έχει ammended με τέτοιο τρόπο ώστε να ενσωματώνουν μια interpretter Python στην εφαρμογή σας νομική:


**ΤΜΗΜΑ 3.3.2 - ΔΙΕΡΜΗΝΕΙΣ**


**Παλαιός:**



> 
> 3.3.2 Η εφαρμογή δεν μπορεί να εγκατασταθεί ή να ξεκινήσουν άλλες εκτελέσιμο κώδικα, με οποιοδήποτε μέσο, ​​συμπεριλαμβανομένων, χωρίς περιορισμό, μέσω της χρήσης ενός plug-in αρχιτεκτονική, καλώντας άλλα πλαίσια, άλλα APIs ή με άλλο τρόπο. Εκτός εάν άλλως εγκριθεί από την Apple εγγράφως, δεν ερμηνεύεται κώδικας μπορεί να κατεβάσει ή να χρησιμοποιηθούν σε μια εφαρμογή εκτός από κώδικα που ερμηνεύεται και εκτελείται από την Apple για Τεκμηριωμένη APIs και ενσωματωμένο διερμηνέα (s). Παρά τα ανωτέρω, με προηγούμενη έγγραφη συγκατάθεση της Apple, μια εφαρμογή μπορεί να χρησιμοποιούν ενσωματωμένο ερμηνεύεται κώδικα σε ένα περιορισμένο τρόπο, εάν μια τέτοια χρήση είναι αποκλειστικά για την παροχή δευτερεύουσες λειτουργίες ή λειτουργίες που συνάδουν με το σκοπό και διαφημίζονται σκοπό της εφαρμογής.
> 
> 
> 


**Νέος:**



> 
> 3.3.2 Η εφαρμογή δεν μπορεί να κατεβάσετε ή να εγκαταστήσετε εκτελέσιμο κώδικα. Ερμηνεύθηκε κωδικός μπορεί να χρησιμοποιηθεί μόνο σε μια εφαρμογή, αν όλα τα σενάρια, κωδικό και διερμηνείς συσκευάζονται στην εφαρμογή και να μην κατεβάσει. Η μόνη εξαίρεση στον παραπάνω είναι σενάρια και κωδικό κατεβάσει και να τρέξει με ενσωματωμένο πλαίσιο WebKit της Apple.
> 
> 
> 

 

Νομίζω ότι δεν ήταν δυνατόν νωρίτερα, αλλά άκουσα πρόσφατα για PyMob, η οποία φαίνεται ενδιαφέρουσα, διότι οι εφαρμογές γραμμένο σε Python και οι τελικές έξοδοι είναι η μητρική τους κωδικούς πηγή σε διάφορες πλατφόρμες (Στόχος-C για iOS, Java για το Android, κλπ). Αυτό είναι σίγουρα αρκετά μοναδική. [Αυτή η](http://pyzia.com/technology.html) ιστοσελίδα εξηγεί με περισσότερες λεπτομέρειες.


Δεν έχω δώσει έναν πυροβολισμό ακόμα, αλλά θα ρίξουμε μια ματιά σύντομα.

 

Ναι, σήμερα μπορείτε να αναπτύξετε εφαρμογές για iOS στην Python. 


Υπάρχουν δύο πλαίσια που μπορεί να θέλετε να την ολοκλήρωση της παραγγελίας: [Kivy](http://kivy.org/) και [PyMob](http://pyzia.com/technology.html) .


Παρακαλούμε να εξετάσει τις απαντήσεις σε [αυτή την ερώτηση](https://stackoverflow.com/questions/10664196/is-it-possible-to-use-python-to-write-cross-platform-apps-for-both-ios-and-andro) πάρα πολύ, καθώς είναι πιο up-to-ημερομηνία από αυτό.

 

[Pythonista](http://omz-software.com/pythonista) έχει Εξαγωγή σε Xcode που σας επιτρέπει να εξάγετε τα σενάρια Python σας σχέδια Xcode που χτίζουν αυτόνομο iOS apps.

 

[BeeWare](https://pybee.org) είναι ένα ανοικτό πλαίσιο πηγή για τη σύνταξη μητρική iOS & Android apps.

 

**2019 Ενημέρωση:**


Ενώ η ανάπτυξη Python-iOS είναι σχετικά ανώριμη και κατά πάσα πιθανότητα θα αποτρέψει (afaik) της εφαρμογής σας από το να έχουν μητρική UI και τη λειτουργικότητα που θα μπορούσε να επιτευχθεί σε ένα Apple-υποστηριζόμενη γλώσσα της ανάπτυξης, η Apple φαίνεται τώρα να επιτρέψει την ενσωμάτωση των διερμηνέων Python σε Native Swift / obj-C εφαρμογών.


Αυτό υποστηρίζει την εισαγωγή των βιβλιοθηκών Python και τη λειτουργία Python scripts (ακόμη και με τον παρεχόμενο επιχειρήματα της γραμμής εντολών) απ 'ευθείας από ιθαγενείς Swift / κωδικό σας Στόχου-C.


Η εταιρεία μου είναι στην πραγματικότητα το τύλιγμα των υποδομών μας (αρχικά γραμμένο σε Python) σε μια εγγενή εφαρμογή iOS! Λειτουργεί πολύ καλά και η επικοινωνία μεταξύ των μερών μπορεί να επιτευχθεί εύκολα με ένα μοντέλο client-server.


Εδώ είναι μια ωραία βιβλιοθήκη με Beeware με ένα πρότυπο cookiecutter, αν θέλετε να δοκιμάσετε και να τρέξει Python scripts στο iOS app σας: <https://github.com/beeware/Python-Apple-support/tree/3.6> .

 