Como tornar o aplicativo Android totalmente em python? [fechadas]

104

Eu gostaria de desenvolver um aplicativo Android (bastante simples) para ser distribuído via Play Store. Eu gostaria de fazer isso completamente em python. No entanto, a pesquisa online não me esclareceu muito: a maioria dos comentários está desatualizada (> 1 ano de idade, e eu sinto que pode haver uma melhor integração do python desde então) ou eles falam sobre como executar o python no Android (por exemplo, aqui ).

Portanto, estou procurando informações sobre as questões:

  • é viável desenvolver um aplicativo totalmente em python - e quais são as ferramentas para fazer isso? (Por exemplo, Kivy é recomendável?)
  • em caso afirmativo: quais são os melhores ambientes de software para implementar isso? (Tentei sem sucesso usar o Android Studio, mas não consegui descobrir uma maneira de executar o código Python lá.)

Eu sou muito novo no desenvolvimento de aplicativos e apreciaria muito qualquer sugestão de fazer isso em python em vez de em Jave etc., que ainda não sei.

Muito obrigado pela ajuda antecipada.

Ivo
fonte
No passado, usei o kivy e seu programa buildozer. eles têm documentação aqui kivy.org/docs/guide/packaging-android.html
es de
Nativamente, você deve usar Java ou Kotlin, no entanto, como outros apontaram, existem "construtores de aplicativos" ou estruturas de terceiros que você pode usar com python, como PyMob ou Kivy.
Dominik Schmidt
6
Criei um jogo Android totalmente desenvolvido em Python usando o Kivy. É chamado de CoinTex, disponível aqui no Google Play: play.google.com/store/apps/details?id=coin.tex.cointexreactfast . O código-fonte do jogo está disponível aqui no GitHub: github.com/ahmedfgad/CoinTex . Também escrevi um livro que será publicado neste ano para a construção de aplicativos Android usando Python. É intitulado "Construindo aplicativos Android em Python usando Kivy com Android Studio: Com Pyjnius, Plyer e Buildozer Ahmed Fawzy Gad" disponível aqui na Amazon: amazon.com/dp/1484250303 .
Ahmed Gad
1
Não é possível postar uma resposta, mas aqui parece ser uma solução : diferentes tecnologias serão demonstradas, incluindo GUIs QML baseadas em PySide usando a porta Qt Necessitas e a abordagem baseada em Py4A / SL4A, que pode ser combinada com o WebKit do Android e re -usar estruturas da web Python.
Basj

Respostas:

111

Para responder à sua primeira pergunta: sim, é viável desenvolver um aplicativo Android em Python puro , para isso eu sugiro que você use o BeeWare , que é apenas um conjunto de ferramentas Python , que funcionam muito bem em conjunto e permitem desenvolver aplicativos nativos da plataforma em python.

confira este vídeo do criador do BeeWare que explica e demonstra perfeitamente sua aplicação

Como funciona

A linguagem de implementação preferida do Android é Java - portanto, se você deseja escrever um aplicativo Android em Python, precisa ter uma maneira de executar seu código Python em uma máquina virtual Java. Isso é o que VOC faz. VOC é um transpiler - ele pega o código-fonte Python, compila-o para o bytecode CPython e então transpila esse bytecode para um bytecode compatível com Java. O resultado final é que seus arquivos de código-fonte Python são compilados diretamente em um arquivo Java .class, que pode ser empacotado em um aplicativo Android.

VOC também permite que você acesse objetos Java nativos como se fossem objetos Python, implemente interfaces Java com classes Python e subclasses de classes Java com classes Python. Usando isso, você pode escrever um aplicativo Android diretamente nas APIs nativas do Android.

Depois de escrever seu aplicativo Android nativo, você pode usar o Porta - arquivos para empacotar seu código Python como um aplicativo Android.

Porta - arquivos é uma ferramenta para converter um projeto Python em um aplicativo nativo autônomo. Você pode empacotar projetos para:

  • Mac
  • janelas
  • Linux
  • iPhone / iPad
  • Android
  • AppleTV
  • tvOS.

Você pode verificar este app Android Tic Tac Toe nativo escrito em Python, usando o pacote BeeWare. no GitHub

além das ferramentas BeeWare, você precisará ter um JDK e Android SDK instalado para testar a execução de seu aplicativo.

e para responder à sua segunda pergunta: um bom ambiente pode ser qualquer coisa com a qual você se sinta confortável, seja um editor de texto e uma linha de comando ou um IDE, se você está procurando um bom IDE de python, sugiro que experimente o Pycharm , ele tem uma edição comunitária que é gratuita, e possui um ambiente semelhante ao android studio, pelo fato de terem sido feitos pela mesma empresa.

Espero que tenha sido útil

maroof shittu
fonte
1
Sou só eu ou a VOC foi abandonada?
Ação judicial do Fundo Monica de
2
este é um beco sem saída (última vez que verifiquei: dezembro de 2018). Um ou mais componentes desta solução excessivamente complexa não estão mais funcionando ou não podem se manter atualizados.
Berry Tsakala
2
Apenas uma atualização para 2019, mas Kotlin agora é a linguagem preferida para desenvolvimento Android.
DaveTheMinion
3
@Basj, gostaria de dizer que Beeware definitivamente estará por aí por um tempo, porque apenas dando uma olhada em sua conta no GitHub, você descobrirá que ele está sendo desenvolvido ativamente, e se você for ao canal Gitter, poderá sempre alcance toda a equipe, especialmente o Dr. Russell (freakyboy), o criador, e a comunidade é bastante amigável, e também houve um tweet muito recente (26 de setembro de 2019) de sua conta oficial anunciando que eles receberam uma bolsa de estudos do Python base de software. Acho que valeria a pena, especialmente se você gosta de python como linguagem
maroof shittu
1
BeeWare não parece suportar Android (Java) neste estágio em qualquer evento.
Mark Anderson
15

Você pode tentar BeeWare - conforme descrito em seu site:

Escreva seus aplicativos em Python e libere-os no iOS, Android, Windows, MacOS, Linux, Web e tvOS usando interfaces de usuário ricas e nativas. Uma base de código. Vários aplicativos.

Dá o que você quer agora para escrever aplicativos Android em Python, além de ter a vantagem de não precisar aprender outra estrutura no futuro se acabar também querendo fazer algo em uma das outras plataformas listadas.

Aqui está o tutorial para aplicativos Android .

emmagordon
fonte
4
Você mesmo construiu um aplicativo com BeeWare?
Berry Tsakala
11

Existem dois concorrentes principais para aplicativos Python no Android

Chaquopy

https://chaquo.com/chaquopy/

Isso se integra com o sistema de construção do Android, fornece uma API Python para todos os recursos do Android. Para citar o site "A API Android completa e o kit de ferramentas de interface do usuário estão diretamente à sua disposição."

Beeware (kit de ferramentas de widgets Toga)

https://pybee.org/

Isso fornece um transpiler de múltiplos alvos, suporta muitos alvos, como Android e iOS. Ele usa um kit de ferramentas de widget genérico (toga) que mapeia para as chamadas da interface do host.

Qual?

Ambos são projetos ativos e suas contas no github mostram uma boa quantidade de atividades recentes.

Beeware Toga, como todas as bibliotecas de widgets, é bom para obter o básico para várias plataformas. Se você tem designs básicos e deseja expandir para outras plataformas, isso deve funcionar bem para você.

Por outro lado, Chaquopy é muito mais preciso em seu mapeamento da API python para o Android. Ele também permite que você combine Java, útil se você quiser usar código existente de outros recursos. Se você tem metas de design restritas e deseja direcionar predominantemente o Android, este é um recurso muito melhor.

Harvey
fonte
10

Android, Python!

Quando vi essas duas palavras-chave juntas em sua pergunta, Kivy foi a primeira que me veio à mente.

Logotipo da Kivy

Antes de entrar no desenvolvimento nativo do Android em Java usando o Android Studio, experimentei o Kivy . É simplesmente incrível. Aqui estão algumas vantagens que eu poderia descobrir.


Simples de usar

Com o básico do python, você não terá problemas para aprender.


Boa comunidade

Está bem documentado e tem uma comunidade ótima e ativa.


Plataforma cruzada.

Você pode desenvolver coisas para Android, iOS, Windows, Linux e até mesmo Raspberry Pi com este único framework. Código aberto.


É um software livre

Pelo menos alguns de seus concorrentes (plataforma cruzada) querem que você pague uma taxa se quiser uma licença comercial.


Suporte gráfico acelerado

O motor gráfico de Kivy construído sobre OpenGL ES 2 o torna adequado para softwares que requerem renderização gráfica rápida, como jogos.



Agora, entrando na próxima parte da pergunta, você não pode usar o IDE do Android Studio para Kivy. Aqui está um guia detalhado para configurar o ambiente de desenvolvimento.

Bertram Gilfoyle
fonte
4
O suporte do Windows está atrasado em relação aos padrões de produção (ou até mesmo ao padrão amador). Além disso, metade do mundo não pode usá-lo devido à falta de suporte RTL.
Berry Tsakala
Por que você deixou o Kivy e mudou para ferramentas de desenvolvimento nativas? Você sugere que tem algumas desvantagens.
igoemon