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.