اگر امروز میخواهید یک اپلیکیشن حرفهای برای iOS و اندروید بسازید، مجبورید یا با زبانهای پیچیده دستوپنجه نرم کنید یا هزینهی تیمهای مختلف را بپردازید. اما حالا میتوانید تمام این مسیر را تنها با پایتون طی کنید و خروجی را روی ۸ پلتفرم مختلف اجرا کنید.
Flet 1.0 که هفتهی گذشته منتشر شد، از یک چارچوب آزمایشی به یک SDK آماده برای محیطهای تجاری تبدیل شده است. در حالی که پایتون مدتهاست که قدرتی بیرقیب در منطق بکاند (Backend) داشته است، عرضه اپلیکیشنهای سطح تولید برای iOS، اندروید، ویندوز، macOS، لینوکس و وب معمولاً مستلزم تسلط بر زبانهای Dart یا JavaScript بود. نسخه ۱.۰ فلت این وضعیت را تغییر میدهد و به توسعهدهندگان اجازه میدهد تنها با استفاده از پایتون، تمام این هشت پلتفرم را هدف قرار دهند.
این ابزار در واقع مانند یک مترجم عمل میکند که کدهای پایتون شما را به ویجتهای Material و Cupertino تبدیل میکند که توسط موتور Flutter رندر میشوند. این رویکرد نیاز توسعهدهندگان به نگهداری پایگاههای کد (Codebases) مجزا برای سیستمعاملهای مختلف را کاملاً از بین میبرد.
همانطور که در تحلیل قبلی ما دربارهی ابزارهای تبدیل توصیفات AI به اپلیکیشنهای بومی (مانند StemJSON) اشاره کردیم، حذف موانع زبانی در توسعه نرمافزار یک روند رو به رشد است. فلت با حذف نیاز به یادگیری Dart یا JavaScript، اجازه میدهد توسعهدهنده روی منطق برنامه تمرکز کند، نه روی پیچیدگیهای هر سیستمعامل.
زمینه و استقرار
انتشار این نسخه تقریباً چهار سال پس از شروع پروژه صورت میگیرد. نسخه Flet 1.0.0 اکنون تحت لایسنس Apache 2.0 در PyPI در دسترس است. برای استفاده از این SDK، توسعهدهندگان به پایتون ۳.۱۰ یا نسخههای جدیدتر نیاز دارند.
طبق گزارش marktechpost.com، نسخه ۱.۰ فلت یک خط لوله ساخت (Build Pipeline) قدرتمند معرفی کرده است که از ۸ هدف خاص پشتیبانی میکند: apk، aab، ipa، ios-simulator، windows، macos، linux و web. این چارچوب اکنون نسخههای پایتون ۳.۱۲، ۳.۱۳ یا ۳.۱۴ را همراه با اپلیکیشن نهایی بستهبندی میکند تا سازگاری زمان اجرا (Runtime Consistency) در تمامی دستگاهها تضمین شود. برای نسخههای وب نیز از انتشار متناظر Pyodide استفاده میشود.
جزئیات فنی و عملکرد
نسخه ۱.۰ به شدت بر روی بهرهوری و تجربه توسعهدهنده متمرکز شده است:
- تطبیق رابط کاربری (UI Reconciliation): یک سیستم جدید برای ردیابی ویژگیهای تغییریافته پیادهسازی شده است. بر اساس بنچمارکهای 0.83، سرعت تشخیص تفاوتها (Control Diffing) تا ۶.۷ برابر بهبود یافته است. این سیستم شبیه به یک ویراستار است که فقط کلمات تغییریافته یک متن را اصلاح میکند تا سرعت کار بالا برود.
- پل دارت (Dart-Bridge): اپلیکیشنهای بومی اکنون از یک کانال ارتباطی مستقیم بین محیطهای اجرای پایتون و دارت در یک پردازش واحد استفاده میکنند. این کار باعث حذف سربار سوکتها (Sockets) شده است. همچنین کانالهای اختصاصی برای انتقال دادههای باینری ایجاد شده است.
- اکوسیستم بستهها: شاخص بستههای فلت اکنون از بیش از ۱۰۰ کتابخانه پشتیبانی میکند، از جمله NumPy، pandas، Matplotlib، Pillow، SciPy، scikit-learn، cryptography و pydantic-core. همچنین یک خط لوله به نام mobile-forge، ساخت wheelها را برای iOS و اندروید خودکار میکند. این تنوع در کتابخانهها، پایتون را در برابر جایگزینهایی قرار میدهد که در محیطهای .NET برای بهینهسازی زیرساختها به کار میروند.
- رابط کاربری توصیفی (Declarative UI): اگرچه سبک امری (Imperative) همچنان پشتیبانی میشود، اما فلت اکنون رویکردی توصیفی را ترویج میکند که در آن رابط کاربری تابعی از وضعیت (State) برنامه است؛ یعنی هر تغییری در دادهها، فوراً و خودکار در ظاهر برنامه منعکس میشود. Flet Studio و اپلیکیشن موبایل فلت هر دو با این سبک توصیفی ساخته شدهاند.
- بستهبندی اندروید: سیستم بستهبندی بازطراحی شده است و اکنون بستههای پایتون را مستقیماً از داخل APK بارگذاری میکند، بدون اینکه نیازی به استخراج (Extraction) آنها باشد.
تست و پایداری
برای تضمین پایداری، تیم توسعه یک ماتریس تست سختگیرانه را اجرا کرده است. این شامل تستهای واحد (Unit Tests) چارچوب در نسخههای پایتون ۳.۱۰ تا ۳.۱۴ و تستهای مربوط به بخش Flutter است. تستهای یکپارچهسازی (Integration Tests) برای کنترلها و مثالها، اسکرینشاتها را با هم مقایسه میکنند تا باگهای عملکردی و پسرفتهای بصری (Visual Regressions) شناسایی شوند.
تستهای بستههای باینری پایتون، کتابخانههای بومی را روی اندروید و شبیهساز iOS آزمایش میکنند. خط لوله موبایل بهطور خاص برای پایتون ۳.۱۲، ۳.۱۳ و ۳.۱۴ ساخت را انجام میدهد. علاوه بر این، دستور flet test میتواند اپلیکیشنهای بستهبندی شده را روی هر ۵ پلتفرم بومی، از جمله Linux ARM64 اجرا کند. توسعهدهندگان میتوانند تستهای یکپارچهسازی خود را با استفاده از pytest و از طریق flet test روی نسخههای بستهبندی شده بنویسند.
برای کسانی که از هوش مصنوعی در گردش کار خود استفاده میکنند، فلت یک سرور MCP (پروتکل زمینه مدل) راهاندازی کرده است. این ابزار به دستیارهای کدنویسی AI اجازه میدهد تا اطلاعات دقیق API مربوط به نسخهها، آیکونها و گزینههای CLI را دریافت کنند. همچنین Flet Studio محیطی مبتنی بر مرورگر با یک عامل AI داخلی برای نمونهسازی سریع فراهم کرده است و پروژهها برای توسعه محلی قابل دانلود هستند. این رویکرد در راستای کاهش هزینههای توسعه است، مشابه آنچه در ادغام مدلهای پیشرفته GPT در محیطهای کدنویسی مشاهده کردیم تا سرعت تبدیل ایده به محصول افزایش یابد.
این تغییر، تحلیل هزینه-فایده را برای تیمهای پایتونمحور دگرگون میکند. پیش از این، توسعهدهندگان باید بین قدرت پایتون در بکاند و ظاهر حرفهای در فرانتاند (که با زبانی متفاوت نوشته میشد) یکی را انتخاب میکردند، اما حالا یک پشته تکزبانه (Single-language stack) دیگر یک سازش نیست، بلکه یک مزیت رقابتی در سرعت عرضه محصول به بازار است.
توسعهدهندگانی که از نسخه ۰.۲۸ ارتقا میدهند باید بدانند که این یک مهاجرت بزرگ است، زیرا مدیریت رویدادها (Handlers) اکنون روی یک حلقه (Event Loop) واحد اجرا میشود. سیاست سازگاری جدید به این صورت است که APIها پیش از حذف، ابتدا منسوخ (Deprecate) میشوند که این فرآیند معمولاً در طول سه نسخه جزئی (Minor Releases) رخ میدهد. برای شروع میتوانید از دستور pip install 'flet[all]' استفاده کنید و کامپوننتهای توصیفی جدید را در مستندات رسمی بررسی نمایید.
گام بعدی شما
- اگر پروژهای دارید که نیاز به حضور در وب و موبایل دارد، با نصب Flet و تبدیل منطق پایتون خود به رابط کاربری Flutter شروع کنید.
- محیط Flet Studio را برای تست سریع ایدههایتان با کمک عامل AI داخلی امتحان کنید.
- مستندات مربوط به کامپوننتهای توصیفی (Declarative) را بخوانید تا ساختار کدتان را بهینه کنید.
اما داستان سختافزاری اجرای این مدلها روی دستگاههای لبه حتی شگفتانگیزتر است — به تحلیل ما دربارهی رایانش لبه مراجعه کنید.




گفتگو