فلاتر ۳ منتشر شد!

منابع استفاده شده برای این مقاله:https://invertase.io/blog/please-welcome-flutter-3https://medium.com/flutter/whats-new-in-flutter-3-8c74a5bc32d0https://medium.com/flutter/introducing-flutter-3-eb69151622fhttps://docs.flutter.dev/whats-newhttps://docs.flutter.dev/development/tools/sdk/release-notes/release-notes-3.0.0تیم توسعه‌‌‌‌‌ٔ فلاتر دیشب در یک اقدام پیش‌بینی نشدنی، از نسخه ۳ فلاتر همراه با دارت ۲.۱۷ در Google I/O 22 رونمایی کرد.تیم اسنیث(Tim Sneath)، مدیر محصول فلاتر این نسخه رو اینگونه در پست مدیوم‌ش توصیف کرده:The culmination of our journey to multiplatform UI development on phone, desktop, and webفلاتر ۳ همراه با دش های عزیز:) خلاصه‌ای از تغییرات این نسخه:تمامی ۶ پلتفرم پشتیبانی‌شده توسط فلاتر در کانال پایدارپرفورمنس بهتر در فلاتروبپشتیبانی بهتر از دستگاه های فولدیبلپشتیبانی از متریال ۳(Material You) به صورت پایداراکستنشن‌های بیشتر برای کلاس تم جعبه‌ابزار برای بازی‌ سازیاضافه شدن بخش games به سایت فلاترپشتیبانی از پردازنده اپل‌سیلیکونبهبود در فایربیس برای فلاترSupercharged enumsSuper constructorName args anywhereشروع سفر به فلاتر ۳طبق حرف‌های مدیر محصول فلاتر و تجزیه و تحلیل‌های شرکت‌های تحقیقاتی مثل data.ai و گواهی‌های عمومی، در حال حاضر بیش از ۵۰۰,۰۰۰ برنامه با فلاتر ‌ساخته شده‌؛ از شبکه‌های اجتماعی مثل WeChat تا برنامه‌های مالی و بانکی مثل Betterment و NuBank، از برنامه‌های تجاری مثل SHEIN و trip.com گرفته تا برنامه‌های سبک‌زندگی مثل Fastic و Tabcorp، از برنامه‌های همراه مثل My BMW گرفته تا موسسات عمومی مثل دولت برزیل!طبق سوالات و آمارها:۹۱٪ توسعه‌دهندگان فلاتر معتقدن که فلاتر، سرعت توسعه و انتشار برنامه‌هارو کاهش میده!۸۵٪ گفتند که فلاتر بهشون در ساخت برنامه‌های زیباتری بسازن!۸۵٪ گفتند که فلاتر باعث شده برنامه‌هاشونو روی بیشتر از ۱ پلتفرم منتشر کنن!سیر تحولات ریلیز های فلاتر در ۴ سال گذشته از فلاتر بتا تا نسخه ۳ پشتیبانی از تمامی پلتفرم‌ها در کانال پایدار(Stable)اندروید،‌ iOS، وب و ویندوز مدتیه که در کانال پایدار اضافه شدن و حالا وقت اضافه شدن بقیه پلتفرم‌های دسکتاپ بود، در نهایت ما Linux و macOS رو در لیست پشتیبانی در کانال پایدار داریم. فلاتر ۳ یکی از مهم‌ترین ریلیز های این فریمورک از ابتدای کاره، چون حالا تمامی ۶ پلتفرم پشتیبانی شده توسط فلاتر،‌ در کانال پایدار قرار دارن!6+1 Platform :)ویژگی های جدید در فلاتر وبچرخه‌حیات اپلیکیشن در وبیک API جدید برای کنترل کامل روی محتوا، فریمورک فلاتر و انجین اون، برای مثال preloading محتوا حین نمایش صفحه لاگین یا یک پروگرس بار.رمزگشایی سریع‌تر تصاویر و اسکرولفلاتر ۳ تغییر بزرگی در اسکرول و رمزگشایی تصاویر داشته، به ویژه اگر از نسخه‌های ۹۹ به بالای کروم استفاده کنید. در واقع فلاتر برای این تغییر از API جدید web-codec در مروگر های جدید برای رمزگشایی سریع تصاویر استفاده کرده و اسکرول بهتری رو با شانس بالای ۶۰ فریم‌بر‌ثانیه حین رمزگشایی تصاویر معرفی می‌کنه.شخصی‌سازی لودینگ اولیهآیا شما یک توسعه‌دهنده وب هستید و می‌خواید کنترل بیشتری روی روند لودینگ اولیه وب‌‌اپتون داشته باشید؟‌ صفحه جدید داکیومنت فلاتر رو بخونید!تمامی این ویژگی هارو در فلاتر گالری میتونید ببینید: https://gallery.flutter.dev/ متریال ۳(Material You)گوگل در سال پیش از نسخه‌ جدید دیزاین سیستم Material رونمایی کرد و از همون روزها تیم فلاتر مشغول پشتیبانی ازش هستند(روند اون رو میتونید در این issue در گیت‌هاب ببینید)پشتیبانی از تمامی ویجت های متریال ۳ در فلاترویجت‌هایی که برای متریال۳ به فلاتر اضافه شدن:Adaptive colorsNew buttonsNew app menuVariable font supportبرای استفاده از متریال ۳،‌ به کلاس ThemeData یک پارامتر به نام useMaterial3 اضافه شده:return MaterialApp( theme: ThemeData(useMaterial3: true), // ... );جعبه‌ابزار فلاتر برای بازی‌سازانفلاتر با استفاده از پشتیبانی‌گرافیکیش که شتاب سخت‌افزاری خوبی ارائه می‌ده و همچنین موتور های بازی‌سازی متن‌باز مثل Flame شروع کار رو برای توسعه‌دهندگان بازی‌های معمولی راحت‌تر می‌کنه!طبق گفته های اسنیث،‌ با اینکه فلاتر برای بازی های اکشن سه‌بعدی طراحی نشده ولی بعضی از این بازی ها برای رابط‌کاربری غیر بازی به فلاتر رو آوردند، از جمله بازی‌های محبوبی مثل PUBG Mobile که صدها میلیون کاربر دارند.هر ساله گوگل در مراسم Google I/O یک برنامه ساخته شده توسط توسعه‌دهندگان فلاتر رونمایی میکنه و امسالم از این قاعده مثتثنی نیست و یک بازی به نام PinBall معرفی کرده‌.این بازی چهار طلسم مورد علاقه گوگل رو در جدول سفارشی‌سازیش ارائه میکنه:Flutter's Dash, Firebase's Sparky, Android's Robot و Chrome's Dinosaur!تغییرات های دیگر فلاتر:Enhance code lintsImprove desktop accessibilityCascading menusDesktop system menu supportThe simplified release model for iOSCJK desktop supportSigned executablesدارت ۲.۱۷دارت ۲.۱۷ همراه با فلاتر ۳ با بسیاری از ویژگی های مورد انتظار که توسعه دهندگان منتظر اون بودند، معرفی شد. دارت درواقع سس مخفی پشت فلاتره و هر پیشرفتی که در دارت بشه به بهبود توسعه فلاتر کمک می‌کنه.بهبود در Enumهایکی از عظیم‌ترین بروزرسانی ها برای enumها که اونارو شدیدا تقویت و جذاب می‌کنه! enum Persons { hadi(&quotHadi&quot, 20), mohammad(&quotMohammad&quot, 30), ehsan(&quotEhsan&quot, 18); final String name; final int age; const Persons(this.name, this.age); String introduction() { return &quotMy Name is $name, I have $age&quot } } void main(){ print(Persons.hadi.age); print(Persons.mohammad.introduction()); }Super constructors برای استفاده از super در نسخه های قبلی ما چنین کدی می‌زدیم:class Person{ final String name; final String family; const Person(this.name, this.family); } class Hadi extends Person{ Hadi(String name, String family, this.age) : super(name, family); final int family; }ولی حالا در نسخه ۲.۱۷ ما Super constructors رو داریم:class Person{ final String name; final String family; const Person(this.name, this.family); } class Hadi extends Person{ Hadi(super.name, super.family, this.age); final int age; }آرگومان‌ها در همه‌جاقبلاً باید آرگومان های نام رو در آخرین موقعیت سازنده اضافه می‌کردیم. از دارت ۲.۱۷ دیگه نیازی به انجام این کار نیست. می‌تونیم آرگومان های نامگذاری شده خودمون رو در هر جایی از سازنده قرار بدیم.class Person{ final String name; final String family; const Person(this.name, this.family); } class Hadi extends Person{ Hadi(super.name, super.family, {required this.age}); final int age; void fullName() { print(&quot$name $family, $age&quot); } }void main(){ Hadi(age: 14, &quotHadi&quot, &quotAzarnasab&quot).fullName(); }ویدیوهای یوتیوب و مقالات مدیوم محبوب برای این نسخه(نیازمند به VPN): https://medium.com/flutter/introducing-flutter-3-5eb69151622f https://medium.com/dartlang/dart-2-17-b216bfc80c5d https://medium.com/flutter/i-o-pinball-powered-by-flutter-and-firebase-d22423f3f5d https://www.youtube.com/watch?v=w_ezWG1yKQQ https://www.youtube.com/watch?v=MEYQUhJdv9c https://www.youtube.com/watch?v=gZQ0b6FsNpQ https://www.youtube.com/watch?v=FGjtxGqSqnc در پایان برای اطلاعات بیشتر می‌تونید منابع و لینک های بالا رو مطالعه کنید.