Repository navigation
feature: Official Native Mobile Extensions Before Flet v1 #6878
Replies: 2 comments
|
Hi @FeodorFitsner @ndonkoHenri — just a gentle follow-up on this one. Since I opened this issue I’ve continued working on the media side of the gap. I now have a production-ready community extension that covers the first item on the list (
It does silent MediaStore inserts (videos → Related concrete issues:
I’m happy to keep maintaining the package as a community extension, but I still believe the broader point of this issue stands: the most important mobile capabilities (media library, contacts, calendar, biometrics, printing, etc.) would be much more reliable for production apps if they lived under official or semi-official Flet maintenance. No pressure at all — just wanted to leave an update and keep the conversation open in case the team has any thoughts on prioritising a small set of official mobile extensions. Happy to adjust the existing media package (API, packaging, ownership) if that would ever help. |
|
I wanted to share a follow-up to the earlier discussion around media-library support in Flet. Since the previous issue, I have continued working on this area and have now built a reusable community package:
It is a Flet service extension for Android and iOS that provides access to the device media library from Python. The package currently supports:
The implementation uses The package also includes a working demo application demonstrating gallery browsing, thumbnails, media playback, camera preview, audio recording, gallery saving, moving, renaming, deletion, and other APIs. Package/repository: I think this is a useful example of how Flet extensions can provide deeper native platform functionality while keeping the application API Python-friendly. I am sharing it here as a follow-up to the earlier discussion so people interested in media access, gallery integration, downloads, media applications, or native Flet extensions can see the current implementation and try it. Feedback, suggestions, and use cases are welcome. |
Uh oh!
There was an error while loading. Please reload this page.
Duplicate Check
Describe the requested feature
Hi @FeodorFitsner @ndonkoHenri Flet already provides a strong cross-platform foundation, including Services such as Clipboard, FilePicker, Battery, Connectivity, Geolocator, sensors, Share, SecureStorage and others. It also has official extensions for capabilities such as Camera, Audio, Video, Maps and WebView.
However, there is still a gap in the mobile-native ecosystem.
Some of the remaining functionality can be implemented through community extensions or custom native code, but community extensions are not always maintained alongside Flet releases. This can make them difficult to rely on for production applications, especially when Flet's extension APIs or Flutter dependencies change.
For Flet to become a stronger choice for building production Android and iOS applications, I believe a set of officially maintained native extensions should be considered before Flet v1.
Suggest a solution
The goal is not to create one package for every possible API, but to cover the most important missing mobile capabilities:
flet-media-libraryflet-image-pickerflet-image-manipulatorflet-contactsflet-calendarflet-printflet-sqliteflet-local-authenticationflet-background-taskflet-task-managerflet-speechflet-screen-captureflet-screen-orientationflet-deviceflet-applicationflet-store-reviewSome of these could be added to existing Services rather than implemented as separate packages. The important part is having a stable, documented and officially maintained API.
Existing issues that demonstrate the need
There are already concrete examples of native mobile functionality requiring additional support:
feature: Support Native Media Gallery Indexing / scanFile API on Android (Serious Python) #6648 — Native Media Gallery Indexing /
scanFileAPI on Androidfeature: Support Native Media Gallery Indexing / scanFile API on Android (Serious Python) #6648
feature: Share Intent Extension for Receiving Shared Content on Android & iOS #6671 — Share Intent Extension
feature: Share Intent Extension for Receiving Shared Content on Android & iOS #6671
These are not isolated problems. They are examples of the broader challenge of exposing platform-native functionality to Python/Flet applications without requiring developers to maintain their own Kotlin/Swift implementations.
Why official support matters
Flutter already has mature packages for many of these capabilities. Flet's extension architecture provides a good foundation for wrapping them and exposing a Python-first API.
The important difference between an official extension and a community extension is long-term compatibility and maintenance.
Official extensions could be:
This would make these APIs much safer to use in production.
Screenshots
No response
Additional details
Flet v1 is an important opportunity to establish the foundation of its mobile API.
If developers have to leave Flet and write Kotlin/Swift whenever they need common capabilities such as media libraries, contacts, calendars, printing or biometric authentication, Flet becomes much less attractive for building complete mobile applications.
I believe Flet should aim for:
rather than requiring application developers to maintain platform-specific implementations themselves.
This doesn't mean Flet needs to copy Expo's API one-to-one. The goal is simply to provide the most important native capabilities through officially maintained Flet APIs.
Suggested goal
Consider making an Official Mobile Extensions initiative part of the Flet v1 roadmap, starting with the highest-impact capabilities such as:
Media Library → Image Picker → Image Manipulation → Contacts → Calendar → Print → SQLite → Local Authentication
and then expanding based on developer demand.
Flet already has the extension infrastructure and a large Flutter ecosystem available to build on. I believe investing in these official extensions before v1 would significantly strengthen Flet as a production-ready Python framework for Android and iOS.
All reactions