Skip to main content

A simple framework to build Android apps using Python and CSS-like styling

Project description

🚀 ApkPy — Cria as tuas Apps Android em Python

ApkPy é uma framework inovadora e super leve que te permite construir aplicações Android nativas usando apenas Python e CSS. Esquece a complexidade de aprender Java/Kotlin ou de mexer em ficheiros XML confusos. Com o ApkPy, tu escreves código Python simples, e nós geramos automaticamente um projeto Android Studio pronto a compilar num ficheiro APK, completo com todos os ecrãs e estilos nativos.


🔥 Porquê usar o ApkPy?

  • ⚡ Zero XML e Java: Desenha a tua interface em Python. O ApkPy converte tudo para código Java e XML nativo do Android magicamente!
  • 📱 Componentes 100% Nativos: Nada de WebViews lentas. Os teus botões e caixas de texto são os verdadeiros elementos do Android (Activity, EditText, Button), garantindo uma performance impecável.
  • 🎨 Estilos CSS-Like: Estiliza a tua app usando sintaxe inspirada em CSS diretamente no teu ficheiro Python. Nós traduzimos e geramos os .xml de Android para propriedades complexas como fundos, cores e até border-radius.
  • 💻 Preview em Tempo Real: Testa e interage com o design da tua app diretamente no teu computador através de uma janela simuladora antes de compilar.
  • 🔄 Multi-Ecrãs: Cria aplicações complexas com múltiplos ecrãs (Activities nativos) e viaja entre eles com um só comando.

📥 Instalação

Podes instalar o ApkPy de forma rápida usando o gestor de pacotes pip:

pip install apkpy

(Se já tens o apkpy instalado, acede à novíssima versão usando: pip install --upgrade apkpy)


🛠️ Comandos na Consola (CLI)

O ApkPy traz comandos essenciais e fáceis de usar no teu terminal:

  • apkpy start o_nome_do_projeto Cria uma nova pasta com o nome que ditares e carrega o template base num ficheiro chamado writehere.py. Lá que podes logo começar a desenhar todos os ecrãs.

  • apkpy build Este é o comando magia-negra! Ele analisa o teu writehere.py e extrai todo o visual e fluxos num ficheiro meu_app_android.zip. Dentro do zip terás o Projeto Android Studio Completo (código fonte em Java, Manifestos, Layouts XML e Drawables criados do zero). Depois só tens de extrair, abrir e exportar o APK!


📖 Como Funciona? (Exemplos de Código)

Completely esquece os milhares de ficheiros de Java. Uma app no ApkPy é assim:

1. App Simples: Ecrã de Login Moderno com Estilos

from apkpy_lib.ui import Screen, button, label, inputs, run

# Cria o ecrã
login_screen = Screen(id="login")

# Adiciona elementos e aplica lhes estilos via ID
label("Bem-vindo à ApkPy!", screen=login_screen)
inputs("O teu username", type="text", screen=login_screen, id="user")
inputs("A tua password secreta", type="password", screen=login_screen, id="pass")

button("Entrar na App", screen=login_screen, id="btn_entrar")

# Estilizar facilmente com CSS (Suportado: cores, border-radius e bordas)
style = """
btn_entrar {
    background-color: blue;
    color: white;
    border-radius: 20px;
    border-color: none;
}
pass {
    border-radius: 10px;
    border-color: red;
}
"""

# Arrancar o simulador no teu Computador
run(start_screen=login_screen)

2. Multi-Ecrãs e Navegação Fluente

Navegar pelos menus nunca foi tão fácil numa App Android:

from apkpy_lib.ui import Screen, button, label, run

# Ecrã 1
home = Screen(id="home")
label("Este é o Menu Principal", screen=home)
btn_seguinte = button("Ir para Definições", screen=home)

# Ecrã 2
settings = Screen(id="settings")
label("Aqui podes alterar definições.", screen=settings)
btn_voltar = button("Voltar", screen=settings)

# Fazer os botões viajar entre ecrãs (Traduzido para Java Intents)
home.on_click_navigate(button=btn_seguinte, to=settings)
settings.on_click_navigate(button=btn_voltar, to=home)

run(start_screen=home)

📦 Elementos UI Suportados

O ApkPy já integra nativamente ferramentas fantásticas da UI Android em caixas mágicas que podes testar com o inputs():

  • label("Apenas texto"): Texto visual indicativo do que se passa.
  • button("Ação"): Um botão perfeitamente responsivo ao touch.
  • inputs(type="text"): A caixa para o utilizador introduzir letras ou números.
  • inputs(type="password"): Caixa de Input protegida por estrelas (***) contra mira.
  • inputs(type="search"): Caixa de texto formatada para pesquisar dados (X nativo).
  • inputs(type="checkbox"): Para selecionar se algo está ativado, caixa com visto.
  • inputs(type="radio", placeholder="Cão|Gato"): Bolas de seleção para inquéritos. Apenas podes escolher um animal (basta escrever opções e pôr barra |).
  • inputs(type="range"): Controlador e visualizador de uma barra deslizante de ajuste.

Transformando anos de estudos Android, em míseros minutos do teu tempo. Cria. Compila. Surpreende em ApkPy!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apkpy-0.2.1.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apkpy-0.2.1-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file apkpy-0.2.1.tar.gz.

File metadata

  • Download URL: apkpy-0.2.1.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for apkpy-0.2.1.tar.gz
Algorithm Hash digest
SHA256 40c96e38a05b953255e49475d7d2cee53daa538c900a2fefc4f8fbff55baea64
MD5 6816291e419d350df2cf30cb92d94df1
BLAKE2b-256 685c56ced47f4e94a31d06342e800d9ec5745030c0cd464b2869aca0edbb510e

See more details on using hashes here.

File details

Details for the file apkpy-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: apkpy-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for apkpy-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 87c6e9de403a6dbbe35faf54e4d126b2ade28f4f567801fa49dcdc265e540ebd
MD5 4392f9551a287db4fd0fca4388d65633
BLAKE2b-256 c1fa9e336f888a0ad64f946eabcc31c33bf2468780434686b13e298598517a7c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page