Usando PyObjC , você pode usar Python para escrever aplicativos Cocoa para OS X. Posso escrever aplicativos nativos para iPhone usando Python e, em caso afirmativo, como?
Usando PyObjC , você pode usar Python para escrever aplicativos Cocoa para OS X. Posso escrever aplicativos nativos para iPhone usando Python e, em caso afirmativo, como?
Respostas:
Atualmente não, atualmente as únicas linguagens disponíveis para acessar o iPhone SDK são C / C ++, Objective C e Swift.
Não há nenhuma razão técnica para que isso não possa mudar no futuro, mas eu não prenderia sua respiração para que isso acontecesse a curto prazo.
Dito isso, Objective-C e Swift realmente não são tão assustadores ...
Edição de 2016
Javascript com estrutura NativeScript está disponível para uso agora.
Você pode usar o PyObjC no iPhone também, devido ao excelente trabalho de Jay Freeman (saurik). Consulte Aplicativos para iPhone em Python .
Observe que isso requer um iPhone com jailbreak no momento.
Parece que agora isso é algo que os desenvolvedores têm permissão para fazer: o Contrato de Desenvolvedor iOS foi alterado ontem e parece ter sido alterado de forma a tornar legal a incorporação de um interpretador Python em seu aplicativo:
SEÇÃO 3.3.2 - INTERPRETADORES
Velho:
3.3.2 Um Aplicativo não pode instalar ou iniciar outro código executável por qualquer meio, incluindo, sem limitação, por meio do uso de uma arquitetura de plug-in, chamando outras estruturas, outras APIs ou de outra forma. A menos que seja aprovado de outra forma pela Apple por escrito, nenhum código interpretado pode ser baixado ou usado em um Aplicativo, exceto para código que é interpretado e executado pelas APIs Documentadas da Apple e intérprete (s) integrado (s). Não obstante o acima exposto, com o consentimento prévio por escrito da Apple, um Aplicativo pode usar código interpretado incorporado de forma limitada se tal uso for exclusivamente para fornecer recursos ou funcionalidades menores que sejam consistentes com o propósito pretendido e anunciado do Aplicativo.
Novo:
3.3.2 Um Aplicativo não pode baixar ou instalar código executável. O código interpretado só pode ser usado em um aplicativo se todos os scripts, códigos e interpretadores estiverem empacotados no aplicativo e não forem baixados. A única exceção ao anterior são os scripts e códigos baixados e executados pela estrutura WebKit embutida da Apple.
Sim você pode. Você escreve seu código em tinypy (que é restrito a Python), usa o tinypy para convertê-lo para C ++ e, finalmente, compila isso com XCode em um aplicativo nativo do iPhone. Phil Hassey publicou um jogo chamado Elefantes! usando esta abordagem. Aqui estão mais detalhes,
http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/
Sim, hoje você pode desenvolver aplicativos para iOS em Python.
Existem duas estruturas que você pode querer verificar: Kivy e PyMob .
Considere também as respostas a esta pergunta , pois estão mais atualizadas do que esta.
Uma atualização do Contrato de Desenvolvedor iOS significa que você pode usar o que quiser, desde que atenda às diretrizes do desenvolvedor. A seção 3.3.1, que restringia o que os desenvolvedores poderiam usar para o desenvolvimento do iOS, foi totalmente removida.
Fonte: http://daringfireball.net/2010/09/app_store_guidelines
Pythonista tem um recurso Exportar para Xcode que permite exportar seus scripts Python como projetos Xcode que criam aplicativos iOS independentes.
https://github.com/ColdGrub1384/Pyto também vale a pena dar uma olhada.
O acordo do iPhone SDK também é um tanto vago sobre se você tem permissão para executar linguagens de script (fora do Javascript de um WebView). Minha leitura é que está tudo bem - desde que nenhum dos scripts que você executa seja baixado da rede (portanto, os scripts pré-instalados e editados pelo usuário parecem estar OK).
IANAL etc etc.
Atualização de 2019:
Embora o desenvolvimento Python-iOS seja relativamente imaturo e provavelmente impedirá (afaik) que seu aplicativo tenha IU nativa e funcionalidade que poderia ser alcançada em uma linguagem de desenvolvimento suportada pela Apple, a Apple agora parece permitir a incorporação de interpretadores Python em Native Swift / Obj-C aplicativos.
Isso suporta a importação de bibliotecas Python e a execução de scripts Python (mesmo com argumentos de linha de comando fornecidos) diretamente de seu código Swift / Obj-C nativo.
Minha empresa está realmente envolvendo nossa infraestrutura (originalmente escrita em Python) em um aplicativo iOS nativo! Funciona muito bem e a comunicação entre as partes pode ser facilmente alcançada através de um modelo cliente-servidor.
Aqui está uma ótima biblioteca da Beeware com um modelo cookiecutter se você deseja tentar e executar scripts Python em seu aplicativo iOS: https://github.com/beeware/Python-Apple-support/tree/3.6 .
Tecnicamente, desde que o código interpretado NÃO seja baixado (excluindo JavaScript), o aplicativo pode ser aprovado. O framework Rhomobiles "Rhodes" faz exatamente isso, agrupando Ruby móvel, uma versão leve do Rails e seu aplicativo para distribuição através da app-store. Como tanto o interpretador quanto o código interpretado são empacotados no aplicativo final - a Apple não acha isso questionável.
http://rhomobile.com/products/rhodes/
Mesmo após o último comunicado de imprensa da apple - aplicativos rhodes (rubi móvel) ainda são viáveis na app-store. Acho difícil acreditar que tinyPy ou pyObjC não encontraria um lugar se houvesse uma comunidade de desenvolvedores disposta.
Você pode fazer isso com o PyObjC, com um telefone desbloqueado, é claro. Mas se você quiser colocá-lo na App Store, eles não permitirão porque ele "interpreta o código". No entanto, você pode usar o Shed Skin , embora eu não saiba de ninguém fazendo isso. Não consigo pensar em nenhuma boa razão para fazer isso, pois você perde a digitação dinâmica e pode usar ObjC.
A única linguagem "externa" significativa para o desenvolvimento do iPhone que conheço com suporte semi-significativo em termos de frameworks e compatibilidade é o MonoTouch , um ambiente C # / .net para desenvolvimento no iPhone.
Acho que não foi possível antes, mas recentemente ouvi falar do PyMob, o que parece interessante porque os aplicativos são escritos em Python e as saídas finais são códigos-fonte nativos em várias plataformas (Obj-C para iOS, Java para Android etc). Isso é certamente único. este página da web explica isso com mais detalhes.
Eu não tentei ainda, mas vou dar uma olhada em breve.