Flutter، چارچوب برنامه چند پلتفرمی منبع باز گوگل، اخیراً شتاب زیادی داشته است، به طوری که هر دو تیم داخلی گوگل برای پروژه هایی مانند برنامه جدید کنسول Play، برنامه موبایل Google Cloud و برنامه Nearby Share اندروید روی آن شرط بندی کرده اند. ویندوز با استفاده از آن، و همچنین توسعه دهندگان در Canonical (برای نصب کننده جدید اوبونتو)، SNCF فرانسه و سایرین که از آن برای پروژه های خود استفاده می کنند. در Google I/O امروز، تیم تعدادی از ویژگیهای جدید را برای این پروژه اعلام کرد که در I/O سال گذشته به نقطه عطف 3.0 خود رسید و اکنون نسخه 3.10 را عرضه میکند.
گوگل همچنین اشاره کرد که در حال حاضر بیش از 1 میلیون برنامه مبتنی بر فلاتر منتشر شده است که از 500000 در اواسط سال 2022 افزایش یافته است.
با توجه به ثبات نسبی Flutter در این مرحله، شاید جای تعجب نباشد که این تیم در تلاش است تا برخی از قابلیتهای موجود خود را گسترش دهد و استفاده از Flutter را در پروژههای موجود آسانتر کند. اما در عین حال، گوگل با تمرکز ویژه بر WebAssembly، به فناوری های جدید نیز نگاه می کند.
با نسخه 3.10، توسعه دهندگان اکنون می توانند به راحتی اجزای Flutter را در برنامه های وب موجود خود ادغام کنند. این چیزی است که گوگل مدتی قبل شروع به کار روی آن کرد، اما اکنون، توسعهدهندگان میتوانند از قابلیتهای جاسازی عنصر Flutter برای ادغام اجزای Flutter مانند هر عنصر CSS دیگری استفاده کنند – و سپس آن را درست مانند یک عنصر CSS نیز دستکاری کنند.
در اوایل، برنامههای فلاتر در وب معمولاً برنامههای تماممقیاس و تمام صفحه هستند که اغلب بر اساس برنامههای تلفن همراه موجود بودند. ما شروع به دیدن افرادی کردیم که برنامههایی میساختند که کل صفحه را در بر میگرفتند که اغلب با «من یک برنامه تلفن همراه دارم و میخواهم آن را روی وب اجرا کنم» شروع میشد. تیم اسنث، مدیر محصولات و UX گوگل برای فلاتر و زبان برنامه نویسی دارت، به من گفت: اما ما اکنون شروع به دیدن افرادی کرده ایم که برنامه هایی را می سازند که بر اساس تجربه وب طراحی شده اند و بر روی آن میزبانی می کنند.
اسنث همچنین خاطرنشان کرد که تیم برای بهبود عملکرد Flutter در وب سخت کار کرده است (فلاتر، شایان ذکر است، در اصل یک چارچوب توسعه برنامه تلفن همراه بود و پشتیبانی از وب پایدار تنها در نسخه 2 در سال 2021 ارائه شد). به طور خاص، این بدان معنی است که زمان بارگذاری در حال حاضر به طور قابل توجهی کاهش یافته است.
در مورد پشتیبانی از وب، تیم Flutter به کار بر روی هدف قرار دادن WebAssembly (Wasm) ادامه می دهد، علیرغم ارتباط نزدیک این فریم ورک با زبان دارت. با توجه به اینکه Wasm هنوز در روزهای اولیه خود است، بسیاری از مشخصات آن در جریان هستند. همانطور که تیم Flutter اشاره می کند، Wasm تا همین اواخر جمع آوری زباله نداشت، اما گوگل با تعدادی از تیم ها در اکوسیستم Wasm برای توسعه برنامه افزودنی WasmGC کار کرد، که اکنون در مرورگرهای مبتنی بر Chromium ادغام شده است. با این کار، تیم اکنون با اضافه کردن پشتیبانی پیش نمایش از Wasm در کانال های پیش از انتشار خود احساس راحتی می کند و به توسعه دهندگان اجازه می دهد Dart را در Wasm کامپایل کنند.
اسنیث گفت: «ما مدتهاست که از جاوا اسکریپت با کیفیت تولید پشتیبانی میکنیم، اما اینکه بتوانیم قدرت بومی تجربیات کامپایلشده را به وب بیاوریم، کمک بیشتری خواهد کرد. بسیاری از آن نیز در مورد یکپارچگی است. اگر کدی در Kotlin یا Dart یا در واقع زبان های دیگر دارید که در وب کامپایل می شوند، و توانایی تعامل با آنها را دارید، به جایی که زیرلایه است تغییر می کند. گاهی اوقات مردم در مورد این زبان در مقابل آن زبان بسیار نگران می شوند و سپس با آنها به عنوان این اکوسیستم های مجزا رفتار می کنند. برای ما، شما به افرادی که کد را با هر زبانی که میخواهند بنویسند اهمیت میدهید و Wasm ناگهان این انسجام را در استراتژی ما به ارمغان میآورد. ما هیجانزده هستیم که بالاخره به آن نقطه میرسیم و شاید از دیالوگهای اطراف دور شویم [language] A در مقابل B.
یکی دیگر از تمرکزهای اخیر تیم Flutter، عملکرد گرافیکی است. همانطور که تیم در اوایل سال جاری اعلام کرد، زمان اجرای رندر Impeller خود را به طور کامل بازنویسی کرد و در نسخه 3.10، اکنون این نسخه پیش فرض برای برنامه های iOS است. با این کار، به سادگی با مهاجرت به آخرین نسخه Flutter، برنامه ها عملکرد قابل توجهی خواهند داشت.
در اندروید، Impeller اکنون در پیش نمایش است. در آنجا، موتور به کتابخانه Vulkan متکی است، که همه دستگاههای اندرویدی مدرن از آن پشتیبانی میکنند (اگرچه Google حالت سازگاری را برای دستگاههای قدیمیتر ارائه میکند). در حالی که ممکن است برای اندروید اولین کسی نباشد که این بهروزرسانیها را دریافت نمیکند غیرمعمول به نظر برسد، اسنث خاطرنشان کرد که موتور گرافیکی Flutter در اندروید قبلاً کاملاً بهینه شده بود. بنابراین، تیم تصمیم گرفت iOS را در اولویت قرار دهد، جایی که فضای بیشتری برای بهبود عملکرد گرافیکی وجود داشت