Kivy – a cross platform Python UI framework
Real-world usage & performance
- Several commenters have shipped Kivy apps to the iOS App Store and Google Play (including a medical device companion app).
- Early projects (circa 2012) ran surprisingly well even on first‑gen iPads and low‑power hardware, rendering complex graphics like detailed floor plans.
- Cross‑compiling, especially for Android/iOS, is described as painful, and startup times can be long, but once running, performance is generally good due to GPU acceleration.
Cross-platform vs web stack
- Some argue that for line‑of‑business apps, HTML/JS is easier to maintain, more standardized, and benefits from a huge ecosystem.
- Others dislike the “web stack” complexity and churn, and prefer a simpler, Python‑only solution with strong hardware acceleration.
- Web performance issues such as historical touch delays and less power‑efficient animation are mentioned, though some note these can be mitigated or are largely solved.
Widgets, UI quality & UX
- Built‑in Kivy widgets are seen as limited and not very feature‑rich; developers often must implement basic behaviors and styling themselves.
- KivyMD adds Material Design widgets, but still doesn’t match the breadth of web or React Native ecosystems.
- The official gallery and landing page screenshots are criticized as dated and not visually compelling for 2024.
Accessibility
- Accessibility support appears minimal; a linked issue suggests it’s not implemented yet.
- This is viewed by some as a show‑stopper for user‑facing apps and a serious gap compared to modern expectations (dark mode, color schemes, screen readers, etc.).
Tooling, packaging & dependencies
- Packaging Kivy apps (e.g., on rolling Linux distros) is reported as troublesome; one app only partially works via pip.
- A long sub‑thread criticizes Python packaging in general (env/version conflicts, heavy ML stacks), though some tools like uv, poetry, pipx, conda, and zipapp are mentioned as partial mitigations.
Ecosystem & alternatives
- Surrounding projects include python‑for‑android, plyer (cross‑platform device APIs), and kv for declarative UI.
- Alternatives discussed: Qt/PySide, wxPython, BeeWare, Tkinter/ttkbootstrap, JavaFX/Swing, Electron, Flutter/Dart, Flet, NiceGUI, pywebview+PyInstaller.
- Flet receives positive mentions but is criticized for being a framework atop Flutter with dependency and longevity risks.
Perceived positioning & limitations
- Kivy is seen as promising for Python‑centric, data‑driven or internal tools where rapid prototyping and single‑language development matter.
- Lack of accessibility, limited widgets, dated visuals, and packaging pain keep it niche despite its age and technical strengths.