آنچه در این مقاله میخوانید
فلاتر (Flutter) چیست؟
۲۳ اسفند ۱۴۰۰
دنیای فناوری بهسرعت در حال پیشرفت است و اگر به حوزهی موبایل علاقهمند باشید، مطمئنا نام فلاتر (Flutter) را شنیدهاید. ما در ادامهی این مقاله به اینکه فلاتر و مزایای استفاده از آن چیست، میپردازیم.
فلاتر یک SDK برای توسعهی رابط کاربری برنامههای موبایلی است که شما میتوانید از آن برای ساخت برنامههای اندروید و iOS استفاده کنید. این ابزار در سال ۲۰۱۸ بهصورت رسمی از طرف شرکت گوگل معرفی شد اما نسخهی بتا فلاتر از سال ۲۰۱۵ در دسترس بوده است. حال فلاتر جزو ۱۱ ریپازیتوری برتر نرمافزاری در GitHub است و امروزه برنامههای مشهوری مانند Xianyu با بیش از ۵۰ میلیون نصب فعال توسط فلاتر توسعه داده شدهاند.

در این مقاله میخوانید:
- فلاتر (Flutter) چیست؟
- مزایای استفاده از فلاتر
- فریمورک فلاتر (Flutter) چیست؟
- فلاتر مناسب چه کسانی است؟
- بررسی معماری فلاتر
- جمعبندی
- سوالات متداول
فلاتر (Flutter) چیست؟
فلاتر (Flutter) یک فریمورک توسعه رابط کاربری (UI) متنباز است که توسط گوگل ارائه شده و به توسعهدهندگان این امکان را میدهد تا تنها با یک کدبیس، اپلیکیشنهای نیتیو را برای سیستمعاملهای iOS، Android، وب و دسکتاپ توسعه دهند.
Flutter از زبان برنامهنویسی Dart استفاده میکند و به لطف معماری مبتنی بر widgets، ساخت رابطهای کاربری زیبا، سریع و کاملاً سفارشیسازیشده را ممکن میسازد. این فریمورک با استفاده از موتور رندر اختصاصی خود، UI را بدون نیاز به اجزای نیتیو سیستمعامل ترسیم میکند که همین ویژگی باعث عملکرد بالا و هماهنگی کامل بین پلتفرمها میشود.
مزایای استفاده از فلاتر
در این قسمت، صرف نظر از اینکه رقبای فلاتر چه امکاناتی دارند و بدون مقایسه کردن این فریم ورک با آنها، به بررسی مزایای فلاتر پرداختهایم.
صرفهجویی در وقت و هزینه
فلاتر ابزاری برای توسعهی برنامههای cross-platform است یعنی توسعهدهندگان میتوانند از برنامههای توسعه داده شده برای سیستمعاملهای اندروید و iOS خروجی بگیرند. به این شکل در وقت و هزینهها صرفهجویی میشود.
عملکرد فوقالعاده
فلاتر به دو دلیل عملکرد فوقالعادهای دارد. علت اول این است که این ابزار از زبان Dart استفاده میکند و درنهایت کدها به زبان Native کامپایل میشوند. دوم اینکه فلاتر دارای Widgetهای مخصوص به خودش است و نیازی به دسترسی به OEMها نیست. به این شکل ارتباط کمتری بین برنامه و پلتفرم وجود خواهد داشت. با وجود این دو ویژگی برنامههایی خواهیم داشت که از اجرای سریع آنها مطمئن خواهیم بود و همچنین در زمان استفاده از آنها با مشکلهای کمتری مواجه خواهیم شد.
قابلیت hot reload
وجود قابلیت hot reload در فلاتر توانسته توجه بسیاری از توسعهدهندگان را به خود جلب کند. این قابلیت به شما امکان میدهد تا نتیجهی تغییرات ایجاد شده در سورسکد را بلافاصله مشاهده کنید. بهاین شکل توسعهدهندگان راحتتر از قبل میتوانند تمرکز خود را بر روی توسعهی نرمافزار بگذارند و نیازی به هدر دادن زمان برای راهاندازی مجدد برنامه نیست.
سازگاری بسیار بالا
وجود Widgetهای اختصاصی فلاتر باعث میشود تا مشکلهای نرمافزاری کمتری را تجربه کنید و همچنین بهاین شکل وقت کمتری را برای تست برنامههای خود بر روی سیستمعاملهای قدییتر خواهید گذاشت. علاوهبراینها میتوانید مطمئن باشید که برنامهی شما در سیستمعاملهای آینده نیز بهخوبی کار میکند.
متنباز
فلاتر یک ابزار متنباز است که توسط جامعهی کاربری فعال پشتیبانی میشود و مستندات بسیار مفیدی برای کار با این ابزار در دسترس شما است.
مقایسه کامل ویژگیهای React Native و Flutter را در مقاله زیر بخوانید.
مقایسه React Native و Flutter
فریمورک فلاتر (Flutter) چیست؟
فلاتر (Flutter) یک فریمورک متنباز برای توسعه رابط کاربری (UI) است که توسط گوگل طراحی شده و به توسعهدهندگان این امکان را میدهد تا تنها با یک کد پایه، اپلیکیشنهایی برای اندروید، iOS، وب و دسکتاپ تولید کنند.
یکی از ویژگیهای برجسته فلاتر، وجود مجموعهای گسترده از ویجتها، ابزارهای آماده و پلاگینهای از پیش طراحیشده است که توسعه رابط کاربری را بسیار ساده و سریع میکند. این امکانات باعث میشوند نیاز به ابزارهای جانبی و کتابخانههای شخص ثالث به حداقل برسد.
اگر پیش از این با فریمورکهای دیگر کار کرده باشید، احتمالاً در همان مراحل ابتدایی کار با Flutter متوجه تفاوت آن خواهید شد. ویجتهای قدرتمند و پلاگینهای متنوع در فلاتر به شما این امکان را میدهند که بدون درگیر شدن با پیچیدگیهای رایج، قابلیتهای کاربردی و پیشرفته را به اپلیکیشن خود اضافه کنید.
فلاتر مناسب چه کسانی است؟
همانطور که قبلاً اشاره کردیم، فلاتر برای توسعه انواع اپلیکیشنها در سیستمعاملهای اندروید و iOS بسیار مناسب است. از فروشگاههای اینترنتی و اپهای وب گرفته تا برنامههای بانکی و سایر حوزههای تخصصی موبایل، فلاتر بستری ساده و کارآمد برای توسعه فراهم کرده است.
میتوان گفت فلاتر بهترین گزینه برای توسعهدهندگان تازهکار است که میخواهند از پیچیدگیهای کدنویسیهای تکراری و ابزارهای پیچیده فاصله بگیرند و پروژههای خود را سریعتر و آسانتر پیش ببرند.
اگر شما هم تازه وارد دنیای توسعه اپلیکیشن موبایل شدهاید، فلاتر میتواند بهترین انتخاب برای سادهسازی روند کاریتان باشد. به طور کلی، فلاتر مناسب هر کسی است که دنبال توسعه آسان و سریع اپلیکیشن است.
البته توجه داشته باشید که هر ابزار توسعه اپلیکیشن، از جمله فلاتر، نقاط ضعف خاص خود را دارد و این موضوع کاملاً طبیعی است.
بررسی معماری فلاتر
معماری فلاتر به گونهای طراحی شده که عملکرد بالا، انعطافپذیری در طراحی رابط کاربری و توسعه چندسکویی را بهینه کند. ساختار کلی فلاتر از سه لایه اصلی تشکیل شده است:
Framework (فریمورک)
این لایه بالاترین سطح معماری فلاتر است و شامل کدهای Dart میشود که توسعهدهندگان با آن کار میکنند.
ویجتها (Widgets): فلاتر به صورت کامل بر مبنای ویجتها ساخته شده است. ویجتها بلوکهای اصلی رابط کاربری هستند که میتوانند ساختار، سبک و رفتار را تعریف کنند. ویجتها شامل دو دسته اصلی هستند:
ویجتهای متریال (Material Design): مخصوص طراحی UI با استانداردهای گوگل.
ویجتهای Cupertino: برای ایجاد ظاهر و حس مشابه اپل (iOS).
Rendering Layer: مسئول تبدیل ویجتها به عناصر قابل مشاهده روی صفحه نمایش است.
Gestures & Animation: مدیریت رویدادهای لمسی و انیمیشنها در این لایه انجام میشود.
Engine (موتور رندر)
لایه میانی که به زبان C++ نوشته شده است و وظیفه رندر کردن UI را بر عهده دارد.
موتور Skia که یک موتور رندر 2D متنباز است، در این بخش به کار گرفته میشود تا گرافیکها و رابط کاربری را با سرعت بالا و کیفیت عالی ترسیم کند.
مدیریت ورودیها (مانند لمس و کیبورد)، صوت، و تعامل با سیستمعامل نیز در این لایه انجام میشود.
Embedder (کد بومی پلتفرم)
این لایه پایینترین سطح معماری است که فلاتر را به سیستمعاملهای مختلف (اندروید، iOS، ویندوز، مک و لینوکس) متصل میکند.
Embedder شامل کدهای مخصوص هر پلتفرم است که وظیفه اجرای موتور فلاتر و برقراری ارتباط با سختافزار و سیستمعامل را بر عهده دارد. این لایه تضمین میکند که اپلیکیشن فلاتر روی هر پلتفرم با عملکرد بومی و بهینه اجرا شود.
جمعبندی
در حال حاضر فلاتر یکی از نوآورانهترین فناوریهای موبایلی بازار است و طبق مزیتهای این ابزار میتوان حدس زد که فلاتر در آینده نزدیک به یکی از انتخابهای بیبدیل توسعهدهندگان و کارفرماها تبدیل میشود.
React چیست و چه کاربردی دارد؟ در مقاله زیر با مشهورترین برنامههای تحت وب React آشنا شوید.
React چیست؟
سوالات متداول
آیا فلاتر یک فریمورک است یا SDK؟
فلاتر فناوری منبع باز گوگل برای ایجاد برنامههای موبایل، دسکتاپ و وب با یک پایگاه کد واحد است. بر خلاف راه حلهای محبوب دیگر، فلاتر یک چارچوب یا کتابخانه نیست. این یک کیت توسعه نرم افزار SDK کامل است.
فلاتر فقط برای رابط کاربری است؟
میتوانید از فلاتر برای قطعات غیر UI نیز استفاده کنید.
برنامه نویسی با فلاتر سخت است؟
فلاتر یکی از فریمورکهای بسیار ساده توسعه اپلیکیشن است که آن را با کمک مستندات کامل و منابع مفید بهراحتی میتوانید یاد بگیرید.
فلاتر بهتر است یا ریاکت؟
اگر عملکرد بالا، طراحی UI یکپارچه و پشتیبانی از چند پلتفرم (موبایل، وب، دسکتاپ) میخواهید، فلاتر گزینه بهتری است.
منبع: https://medium.com/@concisesoftware/what-is-flutter-here-is-everything-you-should-know-faed3836253f