Flet v0.27.0 Release Announcement
Flet 0.27.0 is now released with exciting new features and improvements!
- iOS packaging & signing updates – ensures compliance with App Store Connect verification requirements.
- Reduced startup delay – faster initial launch for desktop applications.
- Faster incremental re-builds – enhances development efficiency with quicker iteration times.
- Enhanced Dropdown control – improved functionality and user experience.
- Bug fixes & stability improvements – various fixes to enhance overall performance and reliability.
How to upgrade
Run the following command to upgrade Flet:
pip install 'flet[all]' --upgrade
[all]
is an "extra" specifier which tells pip to install or upgrade all flet
packages: flet
, flet-cli
, flet-desktop
and flet-web
.
Bump flet
package version to 0.27.0
(or remove it at all to use the latest) in your pyproject.toml
.
Revamped iOS Packaging
- Third-party Flet app dependencies (also known as “site packages” like
numpy
,pandas
,flet
, etc.) are now bundled inside a framework, ensuring Xcode signs all files correctly and passes App Store Connect verification. - New
flet build
options for proper iOS package signing. - Comprehensive step-by-step documentation for packaging and deploying iOS apps. Learn more!
Enhanced startup performance for desktop apps
Currently, when packaging for macOS, Windows, and Linux, third-party Flet app dependencies (e.g., numpy, pandas, flet, etc.), also known as site packages, are bundled inside the app.zip artifact. This can cause a startup delay, sometimes significant, as the app needs to extract the artifact to the user’s file system before launching.
With Flet 0.27.0, site packages are now copied in an unpacked state directly into the application bundle instead of being compressed into app.zip. This change significantly reduces the first launch time.
Faster incremental re-builds
If certain parts of the build configuration remain unchanged, the flet build
command attempts to skip or optimize specific build pipeline steps (such as re-installing Flet app dependencies), reducing the overall completion time for consecutive builds.
Faster builds mean happier developers! 😄
Pyodide 0.27.2
Pyodide 0.27.2 is based on Python 3.12 and has some serious performance improvments to foreign function interface (FFI).
Flet now supports Python 3.12 across all packaging platforms.
The next stop is Python 3.13!
Enhanced Dropdown
control.
Since version 0.27.0, Flet uses DropdownMenu flutter widget for Dropdown control, which is a Material 3 version of previously used DropdownButton. Additionally to enhanced look and feel, it allows filter the list based on the text input or search one item in the menu list.

Some properties of previous Dropdown implementation are not available in the new version and were "stubbed" - they will not break your program but don't do anything. See the list of deprecated properties here.
Previous version of Dropdown control is available as DropdownM2
control and will be removed in Flet 0.30.0.
💥 Breaking changes
flet build
command
--team
option renamed to--ios-team-id
.--include-packages
has been removed. Just add extension package intodependencies
section of yourpyproject.toml
file: https://flet.dev/docs/extend/built-in-extensions--cleanup-on-compile
removed and two new options added to separate cleanup of app and 3rd-party site packages:--cleanup-app
and--cleanup-packages
. Two additional options:--cleanup-app-files
and--cleanup-package-files
work together with--cleanup-*
and allow specifying lists of globs to exclude from app and site packages.tool.flet.build_arch
renamed totool.flet.target_arch
.
Removed v0.24.0
Deprecations
The following items, deprecated in Flet 0.24.0, have been removed: https://flet.dev/blog/flet-v-0-24-release-announcement#deprecations
CupertinoCheckbox.inactive_color
property
The inactive_color
property of the CupertinoCheckbox
has been removed in favor of fill_color
.
Other changes
The full list of changes can be found in the CHANGELOG.
New features
- feat:
ReorderableListView
Control (#4865) - feat: Implement
Container.dark_theme
property (#4857) - Upgrade to Pyodide 0.27 for
httpx
Support (#4840) - Remove
CupertinoCheckbox.inactive_color
in favor offill_color
(#4837) - feat:
flet build
: use Provisioning Profile to sign iOS app archive (.ipa
), deprecate--team
option (#4869) - feat:
flet doctor
CLI command (#4803) - feat: implement button themes (for
ElevatedButton
,OutlinedButton
,TextButton
,FilledButton
,IconButton
) (#4872) - feat:
ControlEvent.data
should be of typeOptional[str]
and default toNone
(#4786) - feat:
flet build
: add--source-packages
to allow installing certain Python packages from source distros (#4762)
Bug fixes
- Fixed: Disable rich's Markup for stdout logs (#4795)
- Fixed: Setting
SearchBar.bar_border_side
isn't visually honoured (#4767) - Fixed: Dropdown: Long options cause the down-arrow to oveflow (#4838)
- Fixed: CupertinoSlider initialisation does not allow values less then zero/greater then 1 (#4853)
- Fixed: Same code shows different appearance in Flet APP/Web/PC local. (#4855)
- Fixed: Transforming scale renders a grey screen (#4759)
- Fixed: UnicodeDecodeError when using accented characters in manifest.json (#4713)
- Fixed: Implement
SearchBar.blur()
to programmatically unfocus the bar (#4827) - Fixed: Disable markup for flet-cli stdout logs (#4796)
Conclusion
Upgrade to Flet 0.27.0, test your apps and let us know how you find the new features we added.
If you have any questions, please join Flet Discord server or create a new thread on Flet GitHub discussions.
Happy Flet-ing! 👾