flet 0.86.4
flet: ^0.86.4 copied to clipboard
Write entire Flutter app in Python or add server-driven UI experience into existing Flutter app.
0.86.4 #
- Isolate per-service failures when building the page's service registry.
ServiceBindingthrowsUnknown servicefor a control type no extension can build, and that exception escapingServiceRegistry._onServicesUpdated()aborted the whole loop, so every service after the offending entry was silently never bound and laterinvokeMethodcalls on them hung until they timed out. Each binding is now built independently and a failure is logged and skipped. Also rebuilds the registry when the_servicescontrol instance is replaced (not just when its uid changes), matching how thewindowservice tracks its control by identity.
0.86.3 #
- Fix a system/edge-swipe back gesture exiting the whole host app instead of navigating back when it lands on an embedded
FletApp(an app rendered inside another Flet app — e.g. a gallery host running example apps in-process). The embedded app'sWidgetsApp(MaterialApp/CupertinoApp) ran the defaultNavigationNotificationhandler, which reportedSystemNavigator.setFrameworkHandlesBack(false)for a nested app that couldn't pop (typically a single-view example) and swallowed the notification, so the OS finished the whole activity on back and the host never got to report that it could pop. An embedded page now lets that notification bubble to the host (which re-reportscanHandlePop) and chains aChildBackButtonDispatcherto the host Router, so a system back propagates to the host and pops the view that embeds it. - Fix modal controls (
AlertDialog,CupertinoAlertDialog,BottomSheet,CupertinoBottomSheet) throwing "setState()/markNeedsBuild() called during build" and blanking the screen when closed in the same frame another route/overlay opens (e.g. aSnackBar). Each modal now tracks its ownModalRouteand closes it via a post-framecloseModalRoute()that pops that specific route;View's confirm-pop pops its own route too, removing the wrong-route race between a dismissing modal and a view pop.
0.86.1 #
No changes in the flet Dart package; version bumped for release coordination with the web client's readable app-package download errors (#6680).
0.86.0 #
No changes in the flet Dart package; version bumped for release coordination with the multi-version bundled CPython support on the Python side (#6577).
0.85.3 #
Bug fixes #
- Defer pre-show window placement on Linux (
centerWindow(),setWindowAlignment()) until the window first becomes visible, sopage.window.center()/page.window.alignmentset beforepage.window.visible = Trueno longer flash the window during startup. Also preserve thefocusedstate when aprevent_closehandler cancels a close attempt (#5897, #5914, #6527) by @ihmily.
0.85.2 #
No changes in the flet Dart package; version bumped for release coordination with flet.Router enhancements on the Python side (modal/recursive route flags, chain-based default pop).
0.85.1 #
No changes in the flet Dart package; version bumped for release coordination with flet-geolocator fixes on the Python side.
0.85.0 #
New features #
- Add
parseControlWidget()andparseControlWidgets()utilities for converting Flet controls in protocol values to Flutter widgets (#6463) by @ndonkoHenri.
Bug fixes #
- Preserve viewport minimum constraints for short scrollable
View,Column, andRowcontent so main-axis alignment still applies (#6446, #6450) by @ndonkoHenri. - Handle unbounded width in
ResponsiveRowwith an explicit error and treat child controls withcol=0as hidden at the current breakpoint (#1951, #3805, #6354) by @ndonkoHenri. - Fix
page.window.destroy()taking several seconds to close Windows desktop apps whenprevent_closeis enabled (#5459, #6428) by @ndonkoHenri. - Fix
flet packdesktop packaging so Windows and Linux bundles include the expected client archive, and Windows taskbar pins point to the packed app instead of the cachedflet.exe(#5151, #6403) by @ndonkoHenri. - Resolve absolute-path
src(e.g.Image(src="/images/foo.svg")) againstassets_diron web so embedded apps mounted at non-root URLs load assets correctly, passdata:/blob:URIs through unchanged, preserve origin-relative semantics whenassets_diris unset, and add awindow.flet.assetsDirJS-interop bridge so embedding hosts can supplyassets_dirto the top-levelFletApp(#6470) by @FeodorFitsner. - Coerce
doubletointinparseIntso float values passed intoint-typed protocol fields (e.g.Duration(seconds: 2.0)) decode correctly instead of falling back to the default (#6478, #6480) by @FeodorFitsner.
0.84.0 #
Improvements #
- Migrate Flet docs from MkDocs to Docusaurus for a more maintainable documentation pipeline (#6359) by @FeodorFitsner.
- Migrate examples into standalone projects with metadata, dependencies, and assets to improve discovery and make every sample runnable as-is (#6281, #6355) by @InesaFitsner.
Bug fixes #
0.83.1 #
Bug fixes #
- Fix solitaire tutorial and drag examples to use
local_delta.xandlocal_delta.yinstead of removeddelta_xanddelta_y(#6317, #6344) by @Krishnachaitanyakc. - Fix inherited dataclass field validation rules applying to overridden subclass fields and breaking
flet-datatable2on0.83.0(#6349, #6350) by @ndonkoHenri.
0.83.0 #
New features #
- Add customizable scrollbars for scrollable controls and pages (#5912, #6282) by @ndonkoHenri.
- Add scrolling support and richer change events to
ExpansionPanelList(#6294) by @ndonkoHenri. - Expand
SharedPreferencesto supportint,float,bool, andlist[str]values (#6304, #6267) by @ndonkoHenri.
Improvements #
- Speed up control diffing and nested value tracking with sparse
Propupdates and@valuetypes (#6098, #6270, #6117, #6296) by @FeodorFitsner. - Consolidate app/build templates into the monorepo and publish pre-release
fletpackages and template artifacts from CI (#6306, #6331) by @FeodorFitsner. - Move desktop client binaries from PyPI wheels to GitHub Releases and unify desktop packaging around
flet-desktop(#6290, #6309) by @FeodorFitsner.
Bug fixes #
- Align Dart-side default values with Python across core and extension packages (#6329, #6330) by @FeodorFitsner.
- Skip redundant page auto-updates after handlers call
.update()explicitly (#6236, #6298) by @FeodorFitsner. - Fix
ReorderableListViewreorder event deserialization for start/end callbacks (#6177, #6315) by @ndonkoHenri. - Skip loading
micropipfor Pyodide apps that already define dependencies inpyproject.toml(#6259, #6300) by @FeodorFitsner.
0.82.2 #
Bug fixes #
- Lazy-load optional auth dependencies to avoid import-time failures in web/Pyodide startup (#6258, #6280) by @ndonkoHenri.
- Pin
binaryornotbelow0.5to fix build-template UTF-8 decode errors (#6276, #6279) by @ndonkoHenri.
0.82.0 #
0.81.0 #
New features #
- Add
Cameracontrol (#6190). - Add
CodeEditorcontrol (#6162). - Add
PageViewcontrol (#6158). - Add color picker controls based on
flutter_colorpicker(#6109). - Add Matrix4-based
LayoutControl.transformandRotatedBoxcontrol (#6198). - Add
LayoutControl.on_size_changeevent for size-aware layouts (#6099). - Add
Heroanimations (#6157). - Add clipboard image/file set and get APIs (#6141).
- Add web
FilePickerwith_datasupport for file content (#6199). - Add platform locale info and locale change events (#6191).
- Add
ignore_up_down_keystoTextFieldandCupertinoTextField(#6183).
Improvements #
- Optimize
object_patchmemory churn (#6204). - Skip component migrate/diff when function signatures differ (#6181).
Bug fixes #
- Fix memory leaks in Flet web app (#6186).
- Fix desktop window frameless/titlebar update sync and progress bar clearing (#6114).
- Fix first-time button
stylepatching and clear stale style state (#6119). - Fix map layer rebuilds on marker updates (#6113).
- Fix
AlertDialogandCupertinoAlertDialogbarrier color updates (#6097). - Fix
ControlEventruntime type hints (#6102).
Other changes #
- Bump Flutter to 3.41.2.
- Register MIME types for
.mjsand.wasm(#6140).
0.80.5 #
0.80.4 #
0.80.3 #
- feat: add
localeprop toCupertinoDatePicker,DatePicker,DateRangePicker,TimePicker(#6030). - Rive 0.14.0 (#6025).
- feat(flet-charts): Allow
badge_positionandtitle_positionofPieChartSectionaccept values >=1.0(#6024). - Add position details to
GestureDetector.on_tapevent (#6016). - Fix Android platform check to exclude web (#6013).
- feat:
parseEnumutility function.
0.80.3 #
- Add position details to
GestureDetector.on_tapevent (#6016).
0.80.2 #
- OAuth fixes and updated examples (#5996).
- Examples cleanup (#5997).
- Fix wrong
LinearGradientalignment defaults + allow multiple use of--excludeoption inflet build(#5986). - Update TypeVar definition for covariant typing in Ref class (#5994).
- feat: add
on_long_pressandon_hoverevents toIconButton(#5984). - replace all
asyncio.iscoroutinefunctionwithinspect.iscoroutinefunction(#5928). - Fix: Control with ID xxx is not registered for
flet_permission_handlerwhen using Python 3.14 (#5896).
0.80.1 #
- Fix
flet publishto sub-directories, Icons Browser and other Gallery examples updated #5964.
0.80.0 #
- Flet 1.0 Beta Release – Read the announcement
0.70.0 #
- Flet 1.0 Alpha Released – Read the announcement
- New: Declarative and reactive programming style, alongside imperative
- New: Automatic page updates after event handler completion
- New: Service controls for non-visual functionality
- New: WebAssembly support for running web apps in the browser
- New: Offline mode support for web apps
- New: Ability to embed Flet web apps into multiple HTML elements on a page
- New: Modern, future-proof architecture:
- Controls in Python are now defined as plain dataclasses
- Unified diffing algorithm supports both imperative and declarative styles
- Refactored Flutter layer using inherited widgets and
Provider
- Added a Shimmer control for building skeleton loaders and animated placeholders.
- Added
FletApp.appErrorMessagetemplate to customize loading screen errors. - See the list of breaking changes
0.28.3 #
- New: Multiple subscribers can subscribe to a published topic by
send_all_on_topic(#5303) - Fixed: Local Images Not Rendering in Android App using Flet 0.27.6 (#5198)
- Fixed: FilePicker.save_file() opens blank gray screen in APK build (works fine in VS) (#5301)
- Fixed: Routing / Navigation broken since flet 0.28.2 (#5302)
0.28.2 #
0.28.0 #
- feat(cli):
flet -Vas alternative toflet --version(#4791) - New Features and Flutter 3.29 (#4891)
- Fixed:
Dropdown.expandhas no effect (#5042) - feat: expose events (
on_double_tap,on_pan_start) inWindowDragArea(#5043) - feat: custom
ReorderableListViewdrag handle listeners (#5051) - Fixed:
LineChartDataPoint.tooltipnot properly rendered (#5105) - Fixed: broken code in
Page.__on_authorize_async(#5154) - Remove Flet v0.25 deprecations (#5155)
- Prevent platform back button from popping a route with pop confirmation event (#5280)
- Fixed: SearchBar does not handle capitalization correctly (#5014)
- Fixed:
FilePickerupload fails if original filename is modified (#5037)
0.27.6 #
- Fix
flet build: allow dependencies with commas (#5033) - Show app startup screen by default (#5036)
- fix:
Textfieldcursor position changes when modifying field content inon_change(#5019) - Remove deprecated
Control.update_async()method (#5005) - fix: incorrect positioning of non-FAB controls assigned to page.floating_action_button (#5049)
0.27.5 #
- Added
FletApp.showAppStartupScreenandFletApp.appStartupScreenMessageproperties. - Added
tool.flet.splash.icon_bgcolorandtool.flet.splash.icon_dark_bgcolorsettings for Android splash screen icon image. - Added
tool.flet.app.boot_screenandtool.flet.app.startup_screensettings for customizing Flet app "loading" screens. - feat:
Dropdown.menu_widthproperty (#5007) - PBKDF2 iteration count increased to 600,000 (#5023)
0.27.4 #
- Fix: do not remove
flutter-packageson re-build ifdev_packagesconfigured.
0.27.2 #
- Error on second flet build run "Because {app} depends on flet_{package} from path which doesn't exist" (#4955)
- Editable packages in pyproject.toml to install from a path by flet build command (#4963)
- Setting Android manifest
<application>element properties inpyproject.toml(#4977) - Fixed regression: Added back
Control.build()method.
0.27.1 #
- Fixed: binary file operations should not specify encoding.
0.27.0 #
DropdownMenucontrol (#1088)- feat:
ReorderableListViewControl (#4865) - Remove v0.24.0 deprecations #4932)
- Implement
Container.dark_themeproperty (#4857) - Upgrade to Pyodide 0.27 for
httpxSupport (#4840) - Remove
CupertinoCheckbox.inactive_colorin favor offill_color(#4837) flet build: use Provisioning Profile to sign iOS app archive (.ipa), deprecate--teamoption (#4869)- feat:
flet doctorCLI command (#4803) - feat: implement button themes (for
ElevatedButton,OutlinedButton,TextButton,FilledButton,IconButton) (#4872) ControlEvent.datashould be of typeOptional[str]and default toNone(#4786)flet build: add--source-packagesto allow installing certain Python packages from source distros (#4762)- disable markup for flet-cli stdout logs (#4796)
- Fixed: Disable rich's Markup for stdout logs (#4795)
- Fixed: Setting
SearchBar.bar_border_sideisn't visually honoured (#4767) - Fixed: Dropdown: Long options cause the down-arrow to overflow (#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)
0.26.0 #
- Flutter extensions:
flet_*packages moved to separate repositories (#4721) - Automatic installation of Flutter, JDK and Android SDK (#4721)
- Migrated to Flutter 3.27.0 (#4593)
- New control properties, Flutter 3.27 fixes (#4703)
- Optional on-demand creation of
ListView.controls(#3931) - Reset
InteractiveViewertransformations (#4391) - Passthrough of mouse events from main window to other applications (#1438)
- Remove v0.26.0-related deprecations (#4456)
- Implemented
Window.ignore_mouse_events(#4465) - Adding Google/Android TV platform support (#4581)
- Remove
Optional[]from predefined typing*Values (#4702) - Throttle
InteractiveViewerupdate events (#4704) - Fixed: Update project_dependencies.py (#4459)
- Fixed:
SafeAreaobject has no attribute_SafeArea__minimum(#4500) - Fixed: Tooltip corruption in
SegmentandBarChartRodonupdate()(#4525) - Fixed: Setting
CheckBox.border_side.stroke_alignto an Enum fails (#4526) - Fixed:
ControlStateshould be resolved based on user-defined order (#4556) - Fixed: broken
Dismissible.dismiss_direction(#4557) - Fixed: Fix Rive not updating (#4582)
- Fixed:
DatePickerregression with first and last dates (#4661) flet buildcommand: Copyflutter-packages, support for platform-specific dependencies (#4667)- Fixed:
CupertinoBottomSheetapplies a red color and yellow underline toTextcontent (#4673) - Fixed: setting
ButtonThemedisplays a grey screen (#4731) - Fixed:
Textfieldinput border color considers user-specifiedborder_colorproperty (#4735) - Fixed: make
Tooltip.messagea required parameter (#4736)
0.25.2 #
Bug fixes #
- Fix
flet publishcreates broken website if norequirements.txtorpyproject.tomlfound (#4493). - Fix PyInstaller hook to avoid download Flet app bundle on first run (#4549).
- Support
git,path,urlPoetry-style dependencies inpyproject.toml(#4554). - Fixed broken
Map.center_on()and default animations (#4519). - Fixed Tooltip corruption in
SegmentandBarChartRodonupdate()(#4525). - Fixed Setting
CheckBox.border_side.stroke_alignto an Enum fails (#4526). - Fixed
ControlState shouldbe resolved based on user-defined order (#4556). - Fixed broken
Dismissible.dismiss_direction(#4557).
0.25.0 #
New controls #
- Mobile Ads (
BannerandInterstitial) (details and example). Buttoncontrol (#4265) - which is just an alias forElevatedButtoncontrol.
Breaking changes #
- Refactor
BadgeControl to a Dataclass; added newbadgeproperty to all controls (#4077).
Other changes #
- Added
{value_length},{max_length}, and{symbols_left}placeholders toTextField.counter_text(#4403). - Added
--skip-flutter-doctorto build cli command (#4388). WebViewenhancements (#4018).Mapcontrol enhancements (#3994).- Exposed more
Themeprops (#4278, #4278). - Exposed more properties in multiple Controls (#4105)
- Added
__contains__methods in container-alike Controls (#4374). - Added a custom
Markdowncode theme (#4343). - Added
barrier_colorprop to dialogs (#4236). - Merged
iconandicon_contentprops intoicon: str | Control(#4305). - Migrated
colorsandiconsvariables to Enums (#4180). - TextField:
suffix_icon,prefix_iconandiconcan beControlorstr(#4173). - Added
--pyinstaller-build-argstoflet packCLI command (#4187). - Made SearchBar's view height adjustable; added new properties (#4039).
- Bumped Rive version and fixed Linux app build template for
rive_common.
Bug fixes #
- Fixed
Iconrotation (#4384). - Fixed regression in
Markdown.code_themewhen usingMarkdownCodeThemeenum (#4373). - Fixed
SegmentandNavigationBarDestinationaccept only string tooltips (#4326). - Display informative message when
datehas wrong format (#4019). - Fixed
MapConfiguration.interaction_configurationis not honoured (#3976). - Fixed
Video.jump_to()fails with negative indexes (#4294). - Fixed condition in
AppBar.tooltip_opacity(#4280). - Fixed wrong type (asyncio.Future -> concurrent.futures.Future) and handle
CancelledError(#4268). - Fixed clicking on
CupertinoContextMenuActiondoesn't close context menu (#3948). - Fixed dropdown
max_menu_height(#3974). - Fixed prevent button style from being modified in
before_update()(#4181). - Fixed disabling filled buttons is not visually respected (#4090).
- when
labelis set, useMainAxisSize.minfor theRow(#3998). - Fixed
NavigationBarDestination.disabledhas no visual effect (#4073). - Fixed autofill in
CupertinoTextField(#4103). - Linechart:
jsonDecodetooltip before displaying (#4069). - Fixed button's
bgcolor,colorandelevation(#4126). - Fixed scrolling issues on Windows (#4145).
- Skip running flutter doctor on windows if
no_rich_outputisTrue(#4108). - Fixed
TextFieldfreezes on Linux Mint #4422](https://github.com/flet-dev/flet/pull/4422)).
0.24.1 #
0.24.0 #
- NEW:
PlaceholderControl (#3646) - NEW:
InteractiveViewerControl (#3645) - NEW: Adding Background/Foreground Services to GeoLocator UPDATE (#3803)
- NEW:
Container.ignore_interactionsproperty (#3639) - NEW: Add
rtlprop to more controls (#3641) - NEW:
TextField.counterproperty (#3676) - NEW: window.icon: make the usage of relative paths possible (#3825)
- NEW: Add event to
flet_videoto know what song is playing (#3772) - NEW: adds
floating_action_button_themeproperty toTheme(#3771) - NEW: Added
on_completedevent toflet_video(#3758) - NEW: Add
focus,on_focus,on_blurtoSearchBar(#3417, #3752) - NEW:
--no-rich-outputflag to prevent rich output (#3708) - CHANGED: make
Tooltipa dataclass which can be used inControl.tooltip(#3837) - CHANGED: wrap
Views into a background container (#3820) - FIXED: export BottomSheetTheme (#3858)
- FIXED: setting SearchBar.value to an empty string is not respected (#3872)
- FIXED: add full-screen events to WindowEventType (#3857)
- FIXED: snackbar margin (#3856)
- FIXED: not error on inputfield when errorText is empty (#3855)
- FIXED:
flet.mapis not available after building app (#3845) - FIXED:
InputFilterclearsTextFieldwhen an invalid character is entered (#3779) - FIXED:
Dropdown.alignmentnot respected (#3737) - FIXED: scrolling issues in
CupertinoPicker(#3678) - FIXED: scrolling controls are not able to scroll due to wrong super class call (#3702)
- FIXED: Dismissible (#3690)
- FIXED:
PieChartEvent.typeon web (#3611) - FIXED:
Switch.widthandheightproperties (#3670) - FIXED: parsing issues in
TextStyleand*Eventclasses (#3551) - FIXED: issues with
*Buttons (#3582) - Handle Multiple Trailing Controls in
CupertinoAppBar(#3603) - Event: implement str and repr magic methods (#3601)
- CHORE: remove handler-subscription and enhance event typing (#3808)
- CHORE: improve type hint for OptionalEventCallable (#3659)
- CHORE: Using
Sequenceinstead oflist(#3661) - CHORE: Bump Flutter packages (#3719)
- CHORE: Cleanup (#3640)
0.23.2 #
- CHANGED: Enhance Typing of Event Handlers (#3523)
- CHANGED: Delete Page.window.on_resize | deprecate Page.on_resize in favor of Page.on_resized (#3516)
- CHANGED: View is not opened on tap (#3513)
- FIXED:
Slider.valuedefaults tomin(#3503) - FIXED: add "hide" and "show" to WindowEventType enum (#3505)
- FIXED: TypeError raised for isinstance check with Union in before_update method (#3499)
- FIXED: Corrected
isinstancecheck inSnackBar.before_updateto use a tuple of types instead of Union, resolving TypeError: "Subscripted generics cannot be used with class and instance checks". - FIXED:
Page.open()breaking after multiple calls. - FIXED: Typo in on_resized setter decorator
0.23.1 #
- FIX: Fix parseFloatingActionButtonLocation() to work on desktop (#3496)
- FIX: Flet 0.23 crashes on Ubuntu 22.04 (#3495)
- FIX: View.floating_action_button_location: conditionally use _set_attr.
- FIX: Import
ParamSpecfromtypingfor Python >3.10. - FIX: replace
len(list(filter(...)))byany(...). - FIX: Make window and browser_context_menu private, and expose respective getters.
0.23.0 #
- NEW:
PermissionHandlercontrol (#3276) - NEW:
Mapcontrol (#3093) - NEW:
Geolocator control(#3179) - NEW:
AutoFillGroupControl (#3047) - NEW: Migrated to Flutter 3.22 (#3396)
- NEW: An ability to access PubSubHub from outside Flet app (#3446)
- NEW:
TextStyleprops:overflow,word_spacing,baseline(#3435) - NEW: Enable/disable browser context menu (#3434)
- NEW:
Container.color_filterproperty (#3392) - NEW:
dropdown.Option.text_styleproperty (#3293) - NEW:
dropdown.Option.contentproperty (#3456) - NEW:
Video.configurationproperty (#3074) - NEW: Enable Impeller on Android and macOS (#3458)
- NEW: AutoComplete: add selected_index read-only property (#3298)
- NEW: Renamed
NavigationDestinationtoNavigationBarDestination(#3172) - CHANGED: Prettify "build" command cli output (#3407)
- CHANGED: Set colorScheme.primary as defaultSideColor (#3421)
- CHANGED: feat(map): add missing py-events, better typing (#3464)
- CHORE: Refactor
numbers.dartutils (#3263) - CHORE: Global Code Refactoring/Clean-up (#3186)
- CHORE: Cleanup (#3406)
- CHORE: Error handling enhancements (#3175)
- CHORE: Improve type hint for run_task and run_thread (#3459)
- CHORE: Move
page.window_*andpage.browser_context_menu_*properties toWindowandBrowserContextMenuclasses (#3463) - FIX:
Container.on_tap_downnot called whenon_clickis not provided (#3442) - FIX: SnackBar bug #3311 (#3313)
0.22.1 #
AutoCompletecontrol (#3003)- Added
--excludeoption toflet buildcommand (#3125) CupertinoTimePicker.alignmentproperty (#3036)- Bump
file_pickerdependency to 8.0.3. - Fix latest flet-build-template version in development mode (#3021)
- Fix
flet --versioncommand for source checkout. - LineChart: fix regression (#3033)
- Fixed: OAuth expiry of token will hang fastapi server (#3150)
- Fixed: Disabled the dropwown, but the color isnot gray (#2989)
- Fixed:
pubspec.yamlfor adding custom Flutter packages requiresdependency_overrides(#3187) - Fixed
disableddropdown (#3183) - Fixed default value for scrollbar thickness (#3147)
- Fixed: autoreload, restrict eventhandler from restart on open (#3098)
- Fixed (#3035) switch Flutter RichText to Text.rich (#3066)
- Fixed: Markdown code block is not selectable (#1753)
0.22.0 #
- Controls enhancement (see #2882 for details).
ThemeEnhancement (#2955).RiveControl (#2841).Control.parentproperty (#2906).Container.on_tap_downevent.- Add
upload_endpoint_pathintoflet.fastapi.app(#2954). - Add checkbox border side state (#2973).
- Global context for session (#2934).
- Fix silent error in
page.run_task(#2959). - Web: patch html title with app_name (#2909).
Container: fix triggered bothon_clickandon_long_pressevents (#2914).
0.21.2 #
- Add
--android-adaptive-icon-backgroundtoflet buildcommand. - Fix for mobile Safari: Store session ID in SessionStorage instead of window.name.
- Fix
_FletSocketServer__receive_loop_taskerror on Linux. - Replace deprecated (in Python 3.12)
datetime.utcnow()withdatetime.now(timezone.utc). - Fix a call to
self.__executor.shutdownfor Python 3.8. - Add client IP and user agent to a session ID.
- Generate crypto-strong strings across the framework.
0.21.1 #
- Python dependencies bumped and loosen.
- Fixed: "No supported WebSocket library detected." when running web app with Flet 0.21.0 (#2818).
- Fix
EventHandler: do not call it when converter returnedNone.
0.21.0 #
- FastAPI instead of built-in Fletd server. Mixed async/sync apps. (#2700).
CupertinoActivityIndicatorControl (#2762).LottieControl andVideov2 (#2673).CupertinoActionSheetandCupertinoActionSheetActioncontrols (#2763).CupertinoSlidingSegmentedButtonandCupertinoSegmentedButtoncontrols (#2767).CupertinoTimerPickerandCupertinorPickerControls (#2743).CupertinoContextMenuandCupertinoContextMenuActioncontrols (#2772).CupertinoDatePickerControl (#2795).Page.on_app_lifecycle_state_changeevent (#2800).- More
Semanticsproperties andSemanticsServicecontrol (#2731). - Fix container.dart for issue #2628 (#2701).(#2701)
- Adaptive fixes (#2720).
label_styleproperty forCheckbox,Switch, andRadio(#2730).- Additional properties (#2736).
- Reorder
__init__(#2724).
0.20.2 #
- Move
system_overlay_stylefromAppBartoTheme(#2667). flet buildcommand checks minimal Flutter SDK version.- Buttons turn to
CupertinoDialogActioncontrols inside adaptive dialogs. FletAppcontrol takes control create factories from a parent app.
0.20.1 #
0.20.0 #
AppBar.system_overlay_styleproperty (#2615).- New
CupertinoButtonprops:filled,style.bgcolor,style.padding,text,icon,icon_color. - Added
NavigationBar.borderproperty which is used in adaptive mode only. Page.designandPagelet.designproperties to force Material, Cupertino or Adaptive design language on entire app (#2607).Page.mediaproperty with the data about obstructed spaces on the device (#2613).- Adaptive buttons (#2591).
Control.on_update()method for better custom controls.--include-packagesoption and support forpubspec.yamlfor custom Flutter packages plus API for adding custom Flutter packages.- Add
rtlproperty to multiple controls (#2582). - Fix: Material icon is shown instead of Cupertino icon if its name is thesame (#2581).
TextStyle.letter_spacingproperty (#2574).Audio,AudioRecorder,VideoandWebViewcontrols moved into separate Flutter packages (#2579).- Introduced
Control.on_update()overridable method (#2578). - New
AlertDialogproperties:icon,bgcolor,elevation. expand_looseproperty for Control and all controls that haveexpandproperty (#2561).- Pyodide v0.25.0.
flet createcommand to show verbose output (#2544).AudioRecordercontrol (#2494).- Bugfix:
flet pack --distpathdeletesdistdirectory (#2500). - Added recursive
adaptiveproperty to all container-alike controls. TextField.text_vertical_alignproperty (#2496).CupertinoButtonControl (#2495).CupertinoListTilecontrol (#2487).- Support for custom Flutter controls (#2482).
Pageletcontrol (#2469).- Add
AppBar.adaptive(#2458). - Cupertino Icons and Colors (#2433).
CupertinoTextfieldcontrol (#2417).FloatingActionButtonLocationoffset (#2411).
0.19.0 #
flet buildto apply Python SSL fix when packaging for iOS and Android (#2349).- Upgrade Android Gradle in flet
build apptemplate (#2350). flet build -vvshould run pip install with verbose output (#2351).- Add Python output/logging to troubleshoot empty screens on startup of built app (#2352).
flet buildshould raise an error when trying to package an app with native modules for iOS or Android (#2356).flet buildto add timestamp (hash) asset with Flet Python app to re-extract when code changes (#2289).- Handle/bypass
if __name__ == "__main__"check on Android. - Support reading dependencies from
pyproject.toml. flet buildto fix--base-urlwith surrounding slashes (#2369).CupertinoAlertDialog,CupertinoDialogAction, adaptive property forAlertDialog(#2365).Dismissible.confirmDismissprop (#2359).ListView.reverseandGridView.reverseprops (#2335).Text.styletype Deprecation warning (#2286).- Add
LineChartData.prevent_curve_over_shootingandLineChartData.prevent_curve_over_shooting_thresholdprops (#2354). flet buildto add checks to allow certain build commands according to "build_on" platform (#2343).- Fixed:
flet buildgives "OSError: [WinError 193] %1 is not a valid Win32 application" for some users (#2318). - Fixed: PubSub is not shared between pages in the same FastAPI app (#2368).
- Fixed: check for
DISPLAYinstead ofXDG_CURRENT_DESKTOPto check if linux machine is GUIless or not (#2373).
0.18.0 #
flet buildcommand to package Flet app for any platform (docs).- Added TextStyle for the Text control (#2270).
- Refactor code, add Enum deprecation utils (#2259).
CupertinoAppBarcontrol (#2278).- Fix AlertDialog content updating (#2277).
- Fix FLET_VIEW_PATH ignored on linux (#2244).
MenuBar,SubMenuButtonandMenuItemButtoncontrols (#2252).- convert 'key' to a super parameter (#2258).
0.16.0 #
CupertinoSlidercontrol andSlider.adaptive(#2224).CupertinoRadiocontrol andRadio.adaptive(#2225).- Fix
NavigationBar.label_behavior(#2229). CupertinoSwitchcontrol (docs).- Disable fade-in effect on Flet app start.
- Tab alignment bug fix (#2208).
- Tab visibility (#2213).
- Dark window title for Windows (#2204).
- Fix
ValueErroron web page resize (#1564).
0.15.0 #
ExpansionPanelandExpansionPanelListcontrols (docs).CupertinoCheckBoxcontrol, adaptiveCheckBox(docs).- Additional control props (#2182):
Card.shape.NavigationDestination.tooltip.NavigationRail:elevation,indicator_color,indicator_shape.BottomSheet:bgcolor,elevation.
- Added
Dropdown.Option.visibleproperty. - Fix AlertDialog broken content when testing in Flet app (#2192).
0.14.0 #
0.13.0 #
0.12.2 #
0.12.1 #
- Ability to expand
BottomSheetto the top of the screen withBottomSheet.is_scroll_controlledproperty (#2087). BottomSheet.maintain_bottom_view_insets_paddingto avoid obstructing controls with on-screen keyboard (#2010).- Fixed:
NavigationDrawerdisappears when you move the window and is not opening again (#2062). - Fixed: alert dialog doesn't close (#2011).
- Fixed: Resizing app's window with an opened BottomSheet triggers new addition to Overlay (#2075).
- Fixed: on_window_event isnt handled after page navigation (#2081).
- Fixed: Routing is not working in 0.12.0 (#2082).
- Fixed: routing regression.
- Fixed: Multiple dialogs (AlertDialog) will create a ghost dialog (#1670).
0.12.0 #
NavigationDrawercontrol (docs).Badgecontrol (docs).RangeSlidercontrol (docs).WebViewcontrol (docs).CookiecutterreplacesCopier(#2014).page.go(): ability to skip route change event (#2039).- Fixed: Two
DatepickerOpening Issue (#2025). - Fixed: Using Audio and FilePicker at the same time, when click on the FilePicker, the audio automatically replays (#1807).
- Fixed: Audio issue while Route Changing (#1236).
- Fixed: Snackbar cause Audio stop playing (#1772).
- Fixed:
scroll_to()with zero duration does nothing (#1659). - Fixed: cannot get height and width for page (#1960).
- Fixed: Put it the right version of flet (#1997).
- Fixed:
Chip.selectedproperty type changed to bool (#2048). - Fixed: Unreliable detection of SVG images (#2053).
0.11.0 #
DatePickercontrol (docs).Chipcontrol (docs).- Pyodide v0.24.1.
- Python 3.12 support.
- Added
AlertDialog.inset_paddingproperty (#1899. - Embedded mode to work with
serious_python.
0.10.3 #
- Add proxy_path parameter to flet_fastapi.app() (#1882).
- Fix
flet createcrashes with an empty project name.
0.10.2 #
- Wrapped --codesign-identity & --add-binary for flet pack (#1789).
- Fix incomplete code blocks in
flet_core/page.py. - Fix disabled color of FilledButtons.
- Add
AppViewandWebRendererenums to flet-pyodide. - Pyodide v0.24.0.
0.10.1 #
0.10.0 #
- Hosting Flet web apps in FastAPI (docs).
- Migrated to Flutter 3.13.1.
- Pydantic 2.0 support (Copier upgraded to 8.2.0).
- BREAKING:
DataTable.data_row_heightreplaced withDataTable.data_row_min_heightandDataTable.data_row_max_height.
0.9.0 #
0.8.4 #
- Bumping version as PyPi was out of space.
0.8.3 #
- Fixed: FilePicker crash the flet.app() after open directory dialog and choose one directory (#1572)
0.8.2 #
0.8.1 #
- Fix
authandPubSubimports inpage.pyandconnection.py. - Fix broken
flet packcommand.
0.8.0 #
- 📱🎉 iOS support - build standalone iOS apps in Python:
- Flet app in App Store to test Flet projects on iOS devices.
- New
--iosswitch forflet runcommand to test Flet app on your iOS device. - Testing on iOS guide.
- serious_python Flutter package to add Python support to a Flutter app.
- An example of Flutter app combining serious_python package, flet package and your Python program into a ready iOS app.
- Part of
fletpackage logic moved to a newflet-runtimepackage.fletpackage depends onflet-runtime. The newflet-embedpackage introduced depending onflet-runtime- to run Python apps embedded into Flutter apps. - Less annoying re-connecting logic and loading page for mobile Flet apps.
- Enum parameters for
ft.app()sview: ft.AppViewandweb_renderer: ft.WebRendererparameters (string values are still supported for backward compatibility), for example:
ft.app(main, view=ft.AppView.WEB_BROWSER, web_renderer=ft.WebRenderer.HTML)
- Flet packages
versionis centralized inflet_core.version. - 💥 Breaking change: OAuth providers must be imported from
flet.auth.providersmodule, for example:
from flet.auth.providers import GitHubOAuthProvider
- Added
Image.error_contentproperty - fallback content if image cannot be loaded. - New
BottomSheetproperties:dismissible,enable_drag,show_drag_handle,use_safe_area(#1468). ListTile.toggle_inputsproperty - clicking on a list tile should toggle the state ofRadio,CheckboxorSwitchinside the tile.- New
pagemethods for showing/closing overlays:page.open_banner(),page.close_banner(),page.open_dialog(),page.close_dialog(),page.open_bottom_sheet(),page.close_bottom_sheet(). - New
FletAppproperties:reconnect_interval_ms,reconnect_timeout_ms,on_error. - New
TextFieldproperties:autocorrect,enable_suggestions,smart_dashes_type,smart_quotes_type. - New
SafeAreacontrol. - New
SnackBarproperties:behavior,dismiss_direction,show_close_icon,close_icon_color,margin,padding,width,elevation. - New
View.fullscreen_dialogproperty. ft.app()assumesassets_dir="assets"by default.- New
PaintSweepGradient.rotationproperty.
0.7.3 #
- Fix missing
FLET_APP_WEBdeclaration inflet-pyodide.
0.7.2 #
0.7.0 #
- Programmatically control scroll position and subscribe to scrolling notifications in Page, View, Column, Row, ListView and GridView controls.
- Material color scheme customization
- Text theming
- Scrollbars theming
- Tabs theming
- Nested page themes
- Flutter upgraded to 3.10 with Dart 3.0 required. CanvasKit WASM size reduced from 2.8 to 1.5 MB.
- Bumped Flutter dependencies: window_manager 0.3.0 → 0.3.2, flutter_markdown 0.6.13 → 0.6.14, markdown 6.0.1 → 7.0.0, file_picker 5.2.5 → 5.3.0, flutter_svg 1.1.6 → 2.0.5, shake 2.1.0 → 2.2.0, fl_chart 0.61.0 → 0.62.0.
- Color emoji support in web apps with "canvaskit" renderer (docs).
- Add CLI option -m to run as module (#1389).
- Selectable rich text control (#1386).
0.6.2 #
- Fix
SnackBar(and other controls) exit animation. - Fix
Textdefault style color.
0.6.0 #
Canvascontrol (docs).- Rich text support in
Textcontrol. - Added
urlandurl_targetto controls withon_clickevent (#1337) - Auto-follow links in
Markdown(docs). - Capturing web client info: IP and user agent (#1302)
- Fix: Make non-visual controls working with routing (#1333)
- Fix: Update
page.routeif typed in the URL (#1289)
0.5.2 #
- Fix: Dispose controls only on session closed event
- Fix "There is no current event loop" error in auth module
0.5.1 #
- Fix
pagereference inwill_unmountmethod.
0.5.0 #
- Fixed: Memory usage continues to increase. (#1223)
- Fixed: possible memory leak (#969)
- Color values can contain opacity, e.g.
color=red,0.5orft.colors.with_opacity(0.5, "red") - 1st class Flet charts based on fl_chart package (#1255)
- Pyodide 0.23
- Use named loggers in Python (#1157)
- Fix Contribution guide as PDM is no longer used (#1124)
- Added focus() method, focus and blur events to Elevated, Outlined, Text and Icon buttons (#1079)
- New Card props: color, shadow_color, surface_tint_color (#1078)
- Added WindowDragArea.maximizable property (#1077)
- Added Container.blur and Container.shadow properties (#1076)
- Add template for Q&A discussions (#1070)
0.4.2 #
- Fix reading versioninfo for PyInstaller 5.8.0
- Fix
Dropdown.disableproperty
0.4.1 #
- Slider.round to round slider value on a label
- Fix page.client_storage.get_keys() timeout
- Fix encode() import in PyInstaller integration
- Fix "ConnectionAbortedError" error on Windows
- Consistent licensing across the code - Apache 2.0
- Fix assets loading in a sub-directory app (#1019)
- Add --distpath option to flet pack and flet publish commands (#1018)
- Updating manifest.json when using flet publish (#1014)
- Fix "Address already in use" error on flet run hot reload (#1007)
- Force Python sub-process to run with UTF-8 encoding (#1002)
- Fix: View with content crashes in some routing scenarios (#1001)
0.4.0 #
- Changed re-connection logic to make hot reload work (#971)
- Pyodide publishing fixes and improvements (#953)
- feat: Add PaddingValue to init.py (#936)
- Standalone Flet web apps with Pyodide (#913)
- modified
tooltipattribute fromprefer*topreferred*(#909) - Fix unicode encoding in
FletTcpSocketServerProtocol - Fix relative assets path in desktop app
- PDM changed to Poetry
- Add
--hidden-importoption toflet packcommand - Add transparency to matplotlib (#889)
- Replace Fletd server for desktop apps with a light-weight Python shim (#838)
- add default values in Border dataclass (#883)
- Fix for issue in control.py when checking add command (#835)
- Fix async pubsub (#868)
- add: Border, BorderSide, Scale Offset, Rotate to
__init__.py(#866) - Loading images from a local file (#817)
- Asyncio support (#799)
- Set filled=True when setting bgcolor in TextField (#807)
- Page transition without animation (#809)
0.3.1 #
- Fixed Flutter package CHANGELOG and README.
0.3.0 #
flet packCLI to create app bundles with custom icons and metadata (#770)- Control comments (#681)
- Fix MaterialState error in ButtonStyle (#689)
- Flet CLI moved into separate module (#679)
- Added BorderRadius to
__init__.py(#691) - Added dense property to TextField and Dropdown controls (#696)
- Correctly handle control replacement (#710)
- Fix "replace" when moving children in the collection (#711)
- Remove hard-coded colors in Markdown default code theme (#731)
- Authorization should allow to override, such as request_token() methods (#776)
0.2.4 #
0.2.2 #
- Make
Control.offsetwork without animation enabled (#632) - Added
Dropdown.alignmentproperty (#630) - Remove beartype runtime check for all
valueproperties - Fix
page.scrollto allow None and strings - Literals to Enums (#626)
gapless_playbackisTrueby default for base64 images- Ability to change border shape of FAB control (#621)
- Added Slider's
on_change_startandon_change_endevents (#620) - DataTable control: 1-to-1 mapping to Flutter (#583)
- Implemented
page.can_launch_url()(#582) - Update project changelog from very beginning (#581)
- Publish pre releases to pypi.org (#579)
- Theming Slider control (#573)
0.1.64 #
- Using variable fonts (#21)
- Old flet client app versions do not launch on Mac (#161)
- NavigationBar control (#193)
ResponsiveRowcontrol (#227)- Add code syntax highlighter to markdown (#294)
- feature: add mouse scroll wheel event (#354)
- Tooltip class (#367)
- BottomSheet control (#483)
- Fixed: Calling
update()insideControl.did_mount()causes deadlock (#489) - Add
page.window_maximizable(#494) - Add an ability to change font family of
TextField(#511) - Feature: Theming Switch and Checkbox component (#523)
- Change shape of AlertDialog (#537)
- Fixed: Saving and retrieving a string value from client storage adds quotation marks (#545)
0.1.62 #
0.1.56 #
- Windows: Clear FilePicker state before opening the dialog as it's blocking
- Reconnect with sessionID on desktop/mobile
0.1.53 #
- Desktop Flet app can be started with a hidden window
- New
pageproperties to control window appearance and behavior - New
Stackproperties - Hot reload
- Platform details (
page.web,page.platform) - Customisable route transitions
0.1.52 #
RouteChangeEvent,ViewPopEvent
0.1.51 #
0.1.50 #
0.1.48 #
- Fix container blend mode
0.1.47 #
0.1.46 #
- New
Containerproperties. - New
ElevatedButton,OutlinedButton,TextButtonproperties. - New
IconButtonproperties. - New
ListTileproperties. - New
Themeproperties. hiddenvalue forColumn,Page,View,RowandViewcontrols - to enable scrolling but hide a scrollbar.- New
TextFieldandDropdownproperties. - New
TextFieldproperties - Fixed https://github.com/flet-dev/flet/issues/138 page.width and page.height are 0 on the first page load
- Fixed https://github.com/flet-dev/flet/issues/77 Allow partial theme updates
- Fixed https://github.com/flet-dev/flet/issues/140 Container on_click callback breaks containers without explicit size
- Fixed https://github.com/flet-dev/flet/issues/30 Assertion "lookup_hash_table" fails on ToDo App example
- Flutter SDK switched to
betachannel. - Fixed https://github.com/flet-dev/flet/issues/98 Changing app host/IP binding
0.1.41 #
- Fix draggable.content_when_dragging
0.1.40 #
- Drag and Drop (https://github.com/flet-dev/flet/issues/62)
- Any control can be positioned absolutely inside Stack (https://github.com/flet-dev/flet/issues/60)
- Clickable Container (https://github.com/flet-dev/flet/issues/59)
- Added
page.pwaproperty to detect if an app is running as PWA (https://github.com/flet-dev/flet/issues/58)
0.1.39 #
- Fix
UserControl._build()call (https://github.com/flet-dev/flet/issues/52)
0.1.38 #
- Window Manager fix for Linux (https://github.com/flet-dev/flet/issues/44)
0.1.37 #
- Controlling application window (https://github.com/flet-dev/flet/issues/39)
0.1.36 #
- Page events allow multiple subscribers (https://github.com/flet-dev/flet/issues/38)
- page.rtl to control text directionality (https://github.com/flet-dev/flet/issues/37)
0.1.35 #
- Fix web_renderer arg
- Default webrenderer is canvaskit
0.1.34 #
- support "assets" dir for "onefile" PyInstaller
- Try packaging bin as data
- PyInstaller integration (https://github.com/flet-dev/flet/issues/34)
0.1.33 #
- Update control itself when isolated (https://github.com/flet-dev/flet/issues/31)
0.1.32 #
- Linux runner (https://github.com/flet-dev/flet/issues/29)
0.1.31 #
- User control (https://github.com/flet-dev/flet/issues/26)
0.1.30 #
- Upgraded to Flutter 3.0.2 (https://github.com/flet-dev/flet/issues/23)
- Custom fonts (https://github.com/flet-dev/flet/issues/22)
0.1.29 #
0.1.28 #
- Support for Python 3.7 (https://github.com/flet-dev/flet/issues/16)
- Update logo-inkscape.svg
- Add executables to artifacts again
- Upload Fletd archives only, without binaries
- Fix links in Python SDK README (https://github.com/flet-dev/flet/issues/15)
0.1.27 #
- Fixed #10 (https://github.com/flet-dev/flet/issues/14)
- Row, Column and ListView spacing and scrolling improvements (https://github.com/flet-dev/flet/issues/13)
- Installing specific versions of Fletd and Flet apps for Python source distro (https://github.com/flet-dev/flet/issues/12)
- focus() method for TextField and Dropdown controls (https://github.com/flet-dev/flet/issues/11)
0.1.26 #
- Upload Flet client app to GitHub releases
- .focus() method for TextField and Dropdown
- Update fletd name to get download working (https://github.com/flet-dev/flet/issues/7)
0.1.25 #
- Sprint 1 (https://github.com/flet-dev/flet/pull/6)
0.1.24 #
- Fix expand for TextField and Dropdown
0.1.23 #
- app_store_connect_api_key with base64 key
- index.html with loading animation
- Upgrade Flutter 3.0.1
- Update AndroidManifest.xml
- Build to client's "build" folder
- Update Fastlane
- Building and publishing iOS Flutter app on AppVeyor
0.1.22 #
- TextField and Dropdown unlim size fix
- Python samples cleanup
- Merge pull request #5 from flet-dev/s1-ios
- Config flutter
- Fix FLET_PACKAGE_VERSION
- Fix iOS building for PR builds
- Restore complete yaml
0.1.20 #
- Row python examples
- More control examples
- Text max_lines
0.1.19 #
- Fix setting clipboard
0.1.18 #
- ListTile
- Card control
- Slight protocol optimization
- Control._set_attr_json
- Tabs selected_index
- Check collection controls for visibility
- NavigationRail selected_index
- NavigationRail control
- AppBar, NavigationRail - Python
0.1.17 #
- PopupMenuButton control
- Dividers example
- Filled buttons, dividers
- Filled elevated button
- Upgraded to Flutter 3.0
- Progress indicator samples
- Fix page size parsing
- page.content -> page.controls
- Expand can be True
- FAB
- bgColor for ImageButton
- CircleAvatar control added
- PWA icons all good
- Temp remove icons
- Large logo on an icon
- Icons updated
- Exponential reconnection logic, PWA icons
- Re-connecting flow
0.1.16 #
- Use canvaskit even on mobile for now
- Upgrade to Flutter 2.10.5
- Multiline textboxes done right
0.1.14 #
- Create a separate package for Alpine
0.1.13 #
- Add package for Alpine distro
0.1.12 #
- More general wheel package tags for Linux
0.1.11 #
- Icon browser done
- autofocus, on_focus, on_blur to Python classes
- Default Flet color theme
- autofocus, focus, blur to all form controls
- Remove tooltip from iconbutton
- ignoreChange sometimes
- Update container.dart
- Clipboard
- Make tooltip delay longer
- Tooltip property added to all visible controls
- Icons browser with outlined buttons
0.1.10 #
- GridView child_aspect_ratio
- Dynamic lazy building ListView and GridView controls
- Alignment parsing fixed
0.1.7 #
- App icons changed for web, windows and macos
0.1.5 #
- Open Flet client on Windows and MacOS only
0.1.4 #
- mkdir server/server/content