Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Flet: Flutter in Python
Search
Abdur-Rahmaan Janhangeer
April 15, 2023
Education
540
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Flet: Flutter in Python
Abdur-Rahmaan Janhangeer
April 15, 2023
More Decks by Abdur-Rahmaan Janhangeer
See All by Abdur-Rahmaan Janhangeer
Building AI Agents with Python: A Deep Dive
osdotsystem
0
88
Extending Flask using the Flask Plugins API
osdotsystem
0
160
PEPs that hit the front page
osdotsystem
0
160
The state of NLP in production 🥽
osdotsystem
0
200
libSQL: Taking Sqlite To The Moon
osdotsystem
0
250
Boosting Python With Rust 🚀
osdotsystem
0
240
SQLite Internals: How The World's Most Used Database Works
osdotsystem
2
3.8k
Fast Flask Dev For Big Codebases
osdotsystem
0
270
Python Bytecode or How Python Operates
osdotsystem
0
360
Other Decks in Education
See All in Education
良い塩梅を実現する、AWSネットワーク3分クッキング
masakiokuda
1
260
Laura Wilson - The Quarterly PR Pivot
laurawilsonbseo1
1
340
2026年度春学期 統計学 第2回 統計資料の収集と読み方 (2026. 4. 16)
akiraasano
PRO
0
170
LinkedIn
matleenalaakso
0
4.3k
SL AMIGOS 教育格差と私たちの取り組み - スリランカの支援学校への支援プロジェクト:リシンドゥ リオ 氏 (別府溝部学園短期大学 ビジネス観光コース 留学生):2720 Japan O.K. ロータリーEクラブ2026年4月6日卓話
2720japanoke
0
610
Padlet opetuksessa
matleenalaakso
12
16k
2026年度春学期 統計学 第7回 データの関係を知る(2)ー 回帰と決定係数 (2026. 5. 21)
akiraasano
PRO
0
130
偶然のチャンスを掴みに行けるのは君だ!
kotomin_m
2
120
BITCOIN : Les fondamentaux !
rlifchitz
0
170
AWS Certified Generative AI Developer - Professional Beta 不合格体験記
amarelo_n24
1
320
Managing Complexity: India’s Semiconductor Ambitions & New Industrial Policy
vyadav
0
170
AI進化史:LLMからAIエージェントへ
mickey_kubo
0
190
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
3.6M
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
200
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
330
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
280
The Pragmatic Product Professional
lauravandoore
37
7.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
570
Transcript
Flet: Techniques & Tips
2
Python Mauritius UserGroup (pymug) More info: mscc.mu/python-mauritius-usergroup-pymug/ Why Where codes
github.com/pymug share events twitter.com/pymugdotcom ping professionals linkedin.com/company/pymug all info pymug.com tell friends by like facebook.com/pymug 3
Abdur-Rahmaan Janhangeer Help people get into OpenSource People hire me
to work on Python projects https://www.compileralchemy.com 4
ssslides 5
Flet: Techniques & Tips 6
Overview 7
Codebase 8
Publish 9
Notes 10
11
12
Techniques 13
Skeleton import flet as ft def main(page: ft.Page): page.title =
"Window title" b = ft.TextButton("text") page.add(b) ft.app(target=main) 14
Events def button_clicked(e): ... button = ft.TextButton("text", on_click=button_clicked, data=0) 15
Update widget textfield.value = 'a' page.update(textfield) # page.update() 16
Routing 17
import flet as ft def main(page: ft.Page): page.title = "Routes
Example" def route_change(route): page.views.clear() page.views.append( ft.View( "/", [ ft.AppBar(title=ft.Text("Flet app"), bgcolor=ft.colors.SURFACE_VARIANT), ft.ElevatedButton("Visit Store", on_click=lambda _: page.go("/store")), ], ) ) if page.route == "/store": page.views.append( ft.View( "/store", [ ft.AppBar(title=ft.Text("Store"), bgcolor=ft.colors.SURFACE_VARIANT), ft.ElevatedButton("Go Home", on_click=lambda _: page.go("/")), ], ) ) page.update() def view_pop(view): page.views.pop() top_view = page.views[-1] page.go(top_view.route) page.on_route_change = route_change page.on_view_pop = view_pop page.go(page.route) ft.app(target=main, view=ft.WEB_BROWSER) 18
import flet as ft class View: url = '/page' elements
= [ ft.ElevatedButton(text="Elevated button"), ft.ElevatedButton(text="Elevated button") ] @classmethod def do_something(cls): ... @classmethod def view(cls): return ft.View( cls.url, cls.elements, ) 19
def main(page: ft.Page): page.title = "Routes Example" def route_change(route): page.views.clear()
page.views.append( ft.View( "/", [ ft.AppBar(title=ft.Text("Flet app"), bgcolor=ft.colors.SURFACE_VARIANT), ft.ElevatedButton("Visit Store", on_click=lambda _: page.go("/store")), ], ) ) if page.route == View.url: page.views.append( view.elements ) page.update() def view_pop(view): page.views.pop() top_view = page.views[-1] page.go(top_view.route) page.on_route_change = route_change page.on_view_pop = view_pop page.go(page.route) 20
Dev experience 21
Icons ft.icons.PAUSE_CIRCLE_FILLED_ROUNDED 22
Color ft.color.RED_400 23
Next in this session 24
Code an app based on one of the previous sessions
code 25
26