Flet 1.0 Now Available: Create Full-Fledged Web, Desktop, and Mobile Applications Using Pure Python
Flet 1.0 is officially released and production-ready, letting Python developers build apps for iOS, Android, Windows, macOS, Linux and web using pure Python—no Swift, Kotlin, Dart or JavaScript needed. Powered by Flutter, it offers comprehensive testing across Python 3.10–3.14, support for 100+ mobile packages like NumPy and pandas, 6.7x faster control diffing, single-process dart-bridge packaging, and a new declarative UI style while keeping the imperative API.
If you're a Python developer who has ever wished you could turn your scripts into real apps for phones and desktops without learning Swift, Kotlin, Dart or JavaScript, Flet 1.0 was built with you in mind. This article walks through what the new release offers, how well it's tested, and what changes when you upgrade, so you can decide whether it's ready for your next project.
What Flet 1.0 Is and Why It Matters
Flet is an open source Python framework that uses Flutter under the hood to render its user interface. You write plain Python, and Flet handles the drawing, placing Material and Cupertino widgets on iOS, Android, Windows, macOS, Linux and the web. No other programming language is required.
Last week, the Flet team released version 1.0 and announced that the framework is ready for production use. That milestone comes roughly four years after the project first began.
And yes, it really is deployable today. Flet 1.0.0 is available on PyPI under the Apache 2.0 license. The SDK requires Python 3.10 or newer, and you can install it with `pip install 'flet[all]'`. The `flet build` command produces packages for all six target platforms, and the CLI accepts eight build targets: `apk`, `aab`, `ipa`, `ios-simulator`, `windows`, `macos`, `linux` and `web`.
How Thoroughly Is It Tested?
The testing story is one of the more convincing parts of this release. Flet runs its framework unit tests across Python 3.10 through 3.14, alongside tests covering the Flutter side of things. Control and example integration tests verify behavior and compare screenshots, which helps catch both functional bugs and visual regressions.
There's more. Separate test suites exercise the native binary packages on Android and the iOS simulator, with the mobile pipeline building for Python 3.12, 3.13 and 3.14. The `flet build` integration tests compile apps across those Python versions for all six platforms, and `flet test` launches a packaged app and drives it on all five native platforms, including Linux ARM64.
The good news is you can apply the same approach to your own projects. Integration tests for your app use pytest, run through `flet test` against the packaged build, and screenshot comparison works on Android and iOS.
Python Versions and Mobile Package Support
When you package an app, Flet bundles Python 3.12, 3.13 or 3.14 with it. Web builds use the corresponding Pyodide release, and the documentation explains how to pick a version.
Mobile support for third-party libraries has grown considerably. The Flet package index now lists more than 100 packages, including NumPy, pandas, Matplotlib, Pillow, SciPy, scikit-learn, cryptography and pydantic-core, along with the native libraries they depend on. A pipeline called mobile-forge automates wheel builds for iOS and Android, though availability still varies by package and target platform, so check before you commit to a dependency.
Performance Improvements and Smarter Packaging
Performance got meaningful attention in this release. Flet now tracks which properties have changed and skips unnecessary comparisons during UI reconciliation. Benchmarks from version 0.83 measured up to 6.7x faster control diffing.
Packaging improved too. In packaged native apps, a component called dart-bridge lets the Python and Dart runtimes communicate within a single process, no sockets involved, with dedicated channels reserved for binary data. On the packaging side, bytecode compilation is now enabled by default, and the redesigned Android packaging loads Python packages straight from the APK without extracting them first.
Declarative UI, Compatibility and AI Assistance
Flet Declarative is a style where you describe the UI as a function of your application state, organized into reusable components. Flet Studio and the Flet mobile app are themselves built this way. If you prefer the older imperative style, it's still supported, and the docs include a comparison of both approaches.
On compatibility, the project follows a clear policy: APIs are deprecated before removal, with a default deprecation window of three minor releases. That gives you time to adapt.
For AI-assisted development, the Flet MCP server supplies version-specific API information to coding assistants, along with tools for finding examples, icons and CLI options. Flet Studio itself runs in the browser with a built-in AI agent, and you can download projects for local development.
Key Takeaways
- Flet 1.0.0 is on PyPI under Apache 2.0, with the SDK requiring Python 3.10 or newer.
- `flet build` targets eight platforms: apk, aab, ipa, ios-simulator, windows, macos, linux, web.
- Apps can bundle Python 3.12, 3.13 or 3.14, with more than 100 packages available for mobile.
- Control diffing measured up to 6.7x faster, and dart-bridge eliminates socket overhead.
- Upgrading from 0.28 is a genuine migration: handlers now run on a single event loop.
Who should use it / who should skip it: Flet 1.0 is a strong fit for Python developers who want to reach mobile, desktop and web audiences from one codebase, especially those already comfortable with the Python ecosystem's data and science libraries. It's less suited to teams that need pixel-perfect, platform-specific UI polish or deep native APIs out of the box, and developers who depend on packages without mobile wheel support should verify availability first. If you're on an older Flet version, budget real time for the 0.28-to-1.0 migration rather than treating it as a minor update.
Comments (0)