Puis-je écrire des applications iPhone natives en utilisant Python [fermé]


91

En utilisant PyObjC , vous pouvez utiliser Python pour écrire des applications Cocoa pour OS X. Puis-je écrire des applications iPhone natives en utilisant Python et si oui, comment?


36
Les développeurs iPhone signalent cette question comme étant obsolète (trop localisée), et les tentatives de résolution de ce problème suscitent également des plaintes selon lesquelles elle est toujours correcte. Donc, si vous êtes ici à la suite d'une recherche, sachez que cette réponse est de 08 et peut ne pas avoir de réponse correcte.

1
Pour expliquer plus en détail: Apple avait une fois une section dans son accord qui listait spécifiquement les langages de programmation autorisés C, C ++, Objective-C et Javascript. Cela a suscité beaucoup de confusion, de doutes et de peur. Finalement, Apple a cessé de nommer les langues. Je sais pertinemment que même pendant que cela était en place, une variété d'applications étaient sur le magasin, en cours de publication ou en développement qui utilisaient le script Lua d'une manière ou d'une autre.
LearnCocos2D

Réponses:


37

Pas actuellement, les seuls langages actuellement disponibles pour accéder au SDK iPhone sont C / C ++, Objective C et Swift.

Il n'y a aucune raison technique pour laquelle cela ne pourrait pas changer à l'avenir, mais je ne retiendrais pas votre souffle pour que cela se produise à court terme.

Cela dit, Objective-C et Swift ne sont vraiment pas trop effrayants ...

2016 Modifier

Javascript avec le framework NativeScript est maintenant disponible.


32
J'ai écrit une application iPhone multifonction en Objective-C et une application Mac multifonction en PyObjC, et je dois dire que, sur la base de l'expérience, la syntaxe d'Objective-C pour les structures de données en particulier (comme les tableaux et dictionnaires) est nettement plus encombrant et fastidieux que celui de Python. J'ai fondamentalement refusé de poursuivre le développement de mon application iPhone jusqu'à ce qu'Apple inclue la prise en charge de PyObjC. La syntaxe relativement verbeuse et fastidieuse d'Objective-C me distrait incroyablement lorsque j'essaie de développer le flux descendant de mes algorithmes.
Chris Redford

1
@Dave Verwer: cette réponse est-elle toujours d'actualité?
bukzor


2
@cobbal: Alors ce fil est assez trompeur. Quelle est la bonne façon de le faire corriger?
bukzor le

5
@Max Avez-vous utilisé PyObjC pour créer une application Mac et donc comparé la lisibilité entre les programmes Apple écrits en Python et les programmes Apple écrits en Objective-C? Sinon, vous n'avez aucune base pour ce jugement.
Chris Redford le

53

Vous pouvez également utiliser PyObjC sur l'iPhone, grâce à l'excellent travail de Jay Freeman (saurik). Voir Applications iPhone en Python .

Notez que cela nécessite un iPhone jailbreaké pour le moment.


24

Il semble que c'est maintenant quelque chose que les développeurs sont autorisés à faire: le contrat de développeur iOS a été modifié hier et semble avoir été modifié de manière à rendre légal l'intégration d'un interpréteur Python dans votre application:

SECTION 3.3.2 - INTERPRÈTES

Vieux:

3.3.2 Une Application ne peut pas elle-même installer ou lancer un autre code exécutable par quelque moyen que ce soit, y compris sans limitation par l'utilisation d'une architecture de plug-in, en appelant d'autres frameworks, d'autres API ou autrement. Sauf approbation écrite contraire d'Apple, aucun code interprété ne peut être téléchargé ou utilisé dans une application, à l'exception du code qui est interprété et exécuté par les API documentées d'Apple et les interpréteurs intégrés. Nonobstant ce qui précède, avec le consentement écrit préalable d'Apple, une Application peut utiliser du code interprété intégré de manière limitée si une telle utilisation est uniquement destinée à fournir des fonctionnalités mineures ou des fonctionnalités compatibles avec l'objectif prévu et annoncé de l'Application.

Nouveau:

3.3.2 Une application ne peut pas télécharger ni installer de code exécutable. Le code interprété ne peut être utilisé dans une application que si tous les scripts, codes et interpréteurs sont intégrés dans l'application et non téléchargés. La seule exception à ce qui précède concerne les scripts et le code téléchargés et exécutés par le framework WebKit intégré d'Apple.



21

Oui, de nos jours, vous pouvez développer des applications pour iOS en Python.

Il existe deux frameworks que vous voudrez peut-être vérifier : Kivy et PyMob .

Veuillez également considérer les réponses à cette question , car elles sont plus à jour que celle-ci.


Kivy et PyMob ne génèrent pas d'applications natives
Serjik

Dépend de votre définition de «natif». La question implique une définition qui couvre l'écriture d'applications python pour OSX, dans une certaine mesure de la même manière que vous pouvez maintenant les écrire pour iOS.
Filipe Correia

19

Une mise à jour du contrat de développeur iOS signifie que vous pouvez utiliser ce que vous voulez, à condition de respecter les directives du développeur. La section 3.3.1, qui limitait ce que les développeurs pouvaient utiliser pour le développement iOS, a été entièrement supprimée.

Source: http://daringfireball.net/2010/09/app_store_guidelines


2
Heureusement, cette langue a été supprimée de la version 3.3.1 !!
Dan McClain


4

L'accord du SDK iPhone est également assez vague quant à savoir si vous êtes même autorisé à exécuter des langages de script (en dehors du Javascript d'une WebView). Ma lecture est que c'est OK - tant qu'aucun des scripts que vous exécutez n'est téléchargé à partir du réseau (donc les scripts pré-installés et modifiés par l'utilisateur semblent être OK).

IANAL etc. etc.


3

BeeWare est un framework open source pour la création d'applications iOS et Android natives.


il est toujours en développement et problématique
ikel

3

Mise à jour 2019:

Alors que le développement Python-iOS est relativement immature et empêchera probablement (afaik) votre application d'avoir une interface utilisateur native et des fonctionnalités qui pourraient être obtenues dans un langage de développement pris en charge par Apple, Apple semble maintenant autoriser l'intégration d'interpréteurs Python dans Native Swift / Obj-C applications.

Cela prend en charge l'importation de bibliothèques Python et l'exécution de scripts Python (même avec les arguments de ligne de commande fournis) directement à partir de votre code Swift / Obj-C natif.

Mon entreprise enveloppe actuellement notre infrastructure (initialement écrite en Python) dans une application iOS native! Cela fonctionne très bien et la communication entre les pièces peut être facilement réalisée via un modèle client-serveur.

Voici une belle bibliothèque de Beeware avec un modèle de cookiecutter si vous voulez essayer d'exécuter des scripts Python dans votre application iOS: https://github.com/beeware/Python-Apple-support/tree/3.6 .


1

Techniquement, tant que le code interprété N'EST PAS téléchargé (hors JavaScript), l'application peut être approuvée. C'est exactement ce que fait le framework Rhomobiles "Rhodes", regroupant Ruby mobile, une version légère de Rails, et votre application pour la distribution via l'App-Store. Parce que l'interpréteur et le code interprété sont intégrés dans l'application finale - Apple ne le trouve pas répréhensible.

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

Même après le dernier communiqué de presse Apple - les applications rhodes (mobile ruby) sont toujours viables sur l'App-Store. J'aurais du mal à croire que tinyPy ou pyObjC ne trouveraient pas de place s'il y avait une communauté de développeurs consentante.


0

Vous pouvez le faire avec PyObjC, avec un téléphone jailbreaké bien sûr. Mais si vous souhaitez l'introduire dans l'App Store, ils ne le permettront pas car il «interprète le code». Cependant, vous pourrez peut-être utiliser Shed Skin , même si je ne connais personne qui fasse cela. Cependant, je ne vois aucune bonne raison de le faire, car vous perdez le typage dynamique et pourriez aussi bien utiliser ObjC.


-1

Le seul langage "externe" significatif pour le développement iPhone que je connaisse avec un support semi-significatif en termes de frameworks et de compatibilité est MonoTouch , un environnement C # / .NET pour le développement sur iPhone.


Oui, mais avec le nouveau contrat de développeur iPhone, nous devons attendre de voir ce que va devenir Mono Touch.
TalkingCode

1
@Holli: Le nouvel accord de développement met MonoTouch au clair
Dan McClain

-1

Je pense que ce n'était pas possible plus tôt mais j'ai récemment entendu parler de PyMob, ce qui semble intéressant car les applications sont écrites en Python et les sorties finales sont des codes sources natifs dans diverses plates-formes (Obj-C pour iOS, Java pour Android, etc.). C'est certainement tout à fait unique. Ce page Web l'explique plus en détail.

Je n'ai pas encore essayé, mais j'y jetterai bientôt un œil.


Apparemment, cela va être lancé en tant que projet commercial. À partir de maintenant (28-Sep-12), le site dit: "Nous acceptons les clients pour un programme bêta limité. Veuillez nous contacter pour en savoir plus" et c'est tout.
ccpizza
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.