Create Your First Project
Generate a new mobile project by running zkite new followed by your desired project name.
zkite new hello_zkitecd hello_zkiteThis creates a ready-to-run mobile app structure.
Project Structure
Section titled “Project Structure”hello_zkite/├── .gitignore # Ignores build artifacts and key files├── pyproject.toml # Project configuration and Android packaging settings├── zkite.config.json # Styling tokens and utility configurations└── main.py # Your application entry point and UI tree1. main.py (Application Code)
Section titled “1. main.py (Application Code)”Here is a standard starter main.py:
from zkite import Store, Column, Text, Button, SystemBars
# Define observable reactive stateclass AppState(Store): count: int = 0
state = AppState()
def increment(): state.update(count=state.count + 1)
def App(): return SystemBars( Column( "flex-1 justify-center items-center p-6 bg-slate-900 gap-4", Text("text-2xl font-bold text-white", "Hello from ZKite!"), Text("text-lg text-emerald-400", f"Taps: {state.count}"), Button( "px-6 py-3 bg-emerald-500 rounded-xl font-semibold text-white", Text("text-white font-bold", "Tap Me"), on_tap=increment, ), ), status_color="#0f172a", navigation_color="#0f172a", status_icons="light", navigation_icons="light", )2. pyproject.toml (Configuration)
Section titled “2. pyproject.toml (Configuration)”[project]name = "hello-zkite"version = "0.1.0"dependencies = []
[tool.zkite]backend = "native"
[tool.zkite.android]package_id = "com.example.hellozkite"app_name = "Hello ZKite"# icon = "icon.png"Packaging Boundary & Flat File Staging
In ZKite 1.0.0, application source files and packaged image assets must be placed in the project root directory beside main.py. Nested subfolders are not automatically bundled into the Android APK staging root during builds.
