flet

Last updated:

0 purchases

flet Image
flet Images
Add to Cart

Description:

flet

Flet #

Flet is a framework for adding server-driven UI (SDUI) experiences to existing Flutter apps or building standalone web, mobile and desktop apps with Flutter UI.
Add an interactive FletApp widget to your Flutter app whose content is controlled by a remote Python script.
It is an ideal solution for building non-core or frequently changing functionality such as product catalog, feedback form, in-app survey or support chat. Flet enables your team to ship new features faster by reducing the number of App Store validation cycles. Just re-deploy a web app hosting a Python script and your users will get an instant update!
On the server side Flet provides an easy to learn programming model that enables Python developers without prior Flutter (or even front-end) experience to participate in development of your larger Flutter app or build their own apps with Flutter UI from scratch.
Getting started with Flet #
Install flet Python module #
Flet requires Python 3.7 or above. To start with Flet, you need to install flet module first:
pip install flet
copied to clipboard
Create Python program #
Create a new Python program using Flet which will be driving the content of FletApp widget.
Let's do a simple counter.py app similar to a Flutter new project template:
import flet
from flet import IconButton, Page, Row, TextField, icons

def main(page: Page):
page.title = "Flet counter example"
page.vertical_alignment = "center"

txt_number = TextField(value="0", text_align="right", width=100)

def minus_click(e):
txt_number.value = int(txt_number.value) - 1
page.update()

def plus_click(e):
txt_number.value = int(txt_number.value) + 1
page.update()

page.add(
Row(
[
IconButton(icons.REMOVE, on_click=minus_click),
txt_number,
IconButton(icons.ADD, on_click=plus_click),
],
alignment="center",
)
)

flet.app(target=main, port=8550)
copied to clipboard
Run the app:
python counter.py
copied to clipboard
You should see the app running in a native OS window.
There is a web server (Fletd) running in the background on a fixed port 8550. Fletd web server is a "bridge" between Python and Flutter.
FletApp widget in your Flutter application will be communicating with Fletd web server via WebSockets to receive UI updates and send user-generated UI events.
For production use Python app along with Fletd could be deployed to a public web host and be accessible via HTTPS with domain name.
Add Flet widget to a Flutter app #
Create a new or open existing Flutter project.
Install Flutter flet package:
flutter pub add flet
copied to clipboard
For a new project replace main.dart with the following:
import 'package:flet/flet.dart';
import 'package:flutter/material.dart';

void main() async {
await setupDesktop();
runApp(const MyApp());
}

class MyApp extends StatelessWidget {
const MyApp({super.key});

@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Flet Flutter Demo',
home: FletApp(pageUrl: "http://localhost:8550"),
);
}
}
copied to clipboard
In the app above FletApp widget is hosted inside MaterialApp widget.
If Flet app must be able to handle page route change events (web browser URL changes, mobile app deep linking) it must be the top most widget as it contains its own MaterialApp widget handling route changes:
import 'package:flet/flet.dart';
import 'package:flutter/material.dart';

void main() async {
await setupDesktop();
runApp(const FletApp(pageUrl: "http://localhost:8550"));
}
copied to clipboard
Run the program and see Flet app running inside a Flutter app.
When adding FletApp widget to the existing desktop Flutter app make sure setupDesktop() is called before runApp() to initialize Flet's built-in window manager.
Flet learning resources #

Getting started for Python
Controls reference
Tutorials
Examples

Flet community #

Discussions
Discord
Twitter
Email

FAQ #
Coming soon.
Adding custom Flutter widgets #
Coming soon.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.