احتمالاً برای شما هم پیش اومده که یه اسکریپت پایتون خیلی خفن و کاربردی نوشتید، اما وقتی نوبت به این میرسه که براش یه رابط کاربری (UI) تر و تمیز بسازید، یه دفعه یاد دردسرهای فرانتاند میفتید. یادگیری HTML و CSS به کنار، اسم جاوا اسکریپت (JavaScript) و فریمورک های بی پایانش که میاد، خیلی از ما بکاند کارها ترجیح میدیم همون صفحه سیاه ترمینال رو بغل کنیم!
اگر بخوایم اپلیکیشن موبایل بسازیم که اوضاع پیچیده تر هم میشه و باید بریم سراغ یادگیری زبان هایی مثل Dart (برای Flutter) یا درگیری با React Native.
اما خبر خوب اینه که دیگه نیازی به این کارها نیست. اینجاست که Flet مثل یک قهرمان با شنل پایتونی وارد میشه!
فلت (Flet) دقیقاً چیه؟
به زبان خیلی ساده، فلت یه فریمورک قدرتمند پایتونه که به شما اجازه میده بدون اینکه حتی یک خط جاوا اسکریپت، دارت، یا CSS بنویسید، اپلیکیشن های تعاملی بسازید.
فلت "زیر کاپوت" از موتور قدرتمند Flutter (فریمورک معروف گوگل) استفاده میکنه. کاری که فلت میکنه اینه: شما کد های منطقی و ظاهر برنامهتون رو با همون سینتکس شیرین و آشنای پایتون مینویسید، و فلت به صورت خودکار اون ها رو به ویجت های خوشگل و نیتیوِ فلاتر تبدیل میکنه.
چرا باید عاشق Flet بشیم؟
-
خداحافظی با جاوا اسکریپت: واقعاً به هیچ زبان دیگهای نیاز ندارید. همه چیز، از دکمهها و فرمها گرفته تا انیمیشنها، با پایتون خالص نوشته میشه.
-
یک بار بنویس، همهجا اجرا کن: این جذابترین بخش ماجراست! کدی که با فلت مینویسید رو میتونید به عنوان یک وب اپلیکیشن (Web App)، برنامه دسکتاپ (ویندوز، مک، لینوکس) و حتی اپلیکیشن موبایل (اندروید و iOS) خروجی بگیرید.
-
یادگیری به شدت سریع: اگر پایتون بلدید، یادگیری فلت براتون مثل آب خوردنه. هیچ نیازی به درگیری با مفاهیم پیچیده مدیریت State (مثل Redux تو جاوااسکریپت) ندارید.
-
ویجتهای آماده و مدرن: نیازی نیست ظاهر دکمه ها رو از صفر طراحی کنید. تمام ویجتهای متریال دیزاین (Material Design) گوگل در اختیار شماست.
بیا یه نگاهی به کدش بندازیم!
برای اینکه ببینید چقدر کار باهاش راحته، بیاید یه برنامه کلاسیک "شمارنده" (Counter) بنویسیم. اول باید فلت رو نصب کنید (pip install flet) و بعد این کد رو اجرا کنید:
import flet as ft
def main(page: ft.Page):
page.title = "Counter App"
page.bgcolor = "#0f172a"
page.padding = 30
count = 0
counter_text = ft.Text(
value=str(count),
size=60,
weight="bold",
color="white",
)
def update():
counter_text.value = str(count)
page.update()
def increase(e):
nonlocal count
count += 1
update()
def decrease(e):
nonlocal count
count -= 1
update()
def reset(e):
nonlocal count
count = 0
update()
# ✅ درست در نسخه جدید: content=
btn_plus = ft.ElevatedButton(
content=ft.Text("+ Increase"),
on_click=increase,
)
btn_minus = ft.ElevatedButton(
content=ft.Text("- Decrease"),
on_click=decrease,
)
btn_reset = ft.ElevatedButton(
content=ft.Text("Reset"),
on_click=reset,
)
page.add(
ft.Column(
alignment=ft.MainAxisAlignment.CENTER,
horizontal_alignment=ft.CrossAxisAlignment.CENTER,
expand=True,
controls=[
ft.Text("Counter App", size=30, color="white"),
counter_text,
ft.Row(
alignment=ft.MainAxisAlignment.CENTER,
controls=[btn_minus, btn_reset, btn_plus],
),
],
)
)
ft.app(target=main)
حالا با این دستور برنامه رو اجرا میکنیم :
flet run counter.py
خروجی کد :
آیا Flet برای هر پروژهای مناسبه؟
بیاید واقعبین باشیم. فلت ابزار فوقالعادهایه، اما قرار نیست جای همه چیز رو بگیره:
-
بهترین کاربردها: ساخت پنلهای ادمین، ابزارهای داخلی شرکت، داشبوردهای دیتا (دیتا ساینتیستها عاشقش میشن!)، و اپلیکیشنهای کاربردی با ظاهر مدرن.
-
نقاط ضعف: اگر میخواید یه بازی گرافیکی سنگین بسازید، یا اپلیکیشن موبایلی که نیاز به دسترسیهای خیلی سطح پایین به سختافزار گوشی (مثل دوربینهای پیچیده یا بلوتوث در سطح کرنل) داره، هنوز توسعه با زبانهای نیتیو (مثل Swift/Kotlin) یا خود فلاتر خام، گزینههای بهتری هستن.
جمع بندی
اگر پایتونکار هستید و ایدههای زیادی تو سرتون دارید که فقط به خاطر نداشتن مهارت فرانت اند خاک میخورن، Flet دقیقاً همون حلقه گمشدهایه که بهش نیاز دارید. همین امروز نصبش کنید و از زنده شدن کدهای پایتونیتون روی صفحه نمایش لذت ببرید!
نظرات کاربران (0)