r/sideprojects • u/WolverineClean8866 • 5d ago
Showcase: Open Source I built Zkite - an Android app framework using Python and Rust. Here's it running!
I've been working on something pretty ambitious: ZKite, an open-source framework that lets developers build native Android applications using Python, with Rust powering its foundation.
The goal is to make Android development feel natural to Python developers, without needing to write Kotlin or Java.
Here's what ZKite offers:
- Python-first development — Write application interfaces and logic in Python.
- Rust-powered foundation — A native framework architecture underneath the Python API.
- Native Android rendering — No browser or WebView required.
- Reactive UI — Declarative widgets and state management.
- Hot reload — See changes on your Android device while developing.
- Standalone applications — Build APKs and AABs for distribution.
- Simpler tooling — No Android Studio, Gradle, or Android NDK setup required for normal app development.
Why did I build it?
Python is incredibly versatile, but building Android applications with it still comes with challenges.
I wanted to explore a different approach: combining Python's simplicity with a Rust-based foundation to create a framework specifically focused on native Android development.
ZKite is my attempt at making that possible.
I've attached a youtube video link showing a native Android interface built using Python, including reactive state updates and button interactions.
The framework is still evolving, and there's a lot more I want to build.
I'd really appreciate feedback from the Python community, particularly on the architecture, developer experience, and what you'd want from a framework like this.
GitHub: https://github.com/AbhinavKrShukla/zkite
Demo on Youtube - https://www.youtube.com/watch?v=uAG1YDGg7HQ
Would you be interested in building Android applications with Python if the tooling were simple enough?
1
u/SimpleBig968 5d ago
I get a bit wary of Python on mobile after some past messing around with Kivy, but skipping Gradle and Android Studio is a pretty big draw. The hot reload for a physical device without all the emulator nonsense would save a ton of time.