Flutter چیست؟
فلاتر یک فریمورک متنباز است که توسط گوگل توسعه یافته و پشتیبانی میشود. توسعهدهندگان فرانتاند و فولاستک از فلاتر برای ساخت رابط کاربری (UI) اپلیکیشن روی چندین پلتفرم با یک کدبیس واحد استفاده میکنند. زمانی که فلاتر در سال ۲۰۱۸ معرفی شد، بیشتر روی توسعه اپلیکیشنهای موبایل تمرکز داشت. امروزه فلاتر از توسعه اپلیکیشن روی شش پلتفرم پشتیبانی میکند: iOS، اندروید، وب، ویندوز، مکاواس و لینوکس.
Flutter چگونه به توسعه برنامه کمک می کند؟
فلاتر فرآیند ایجاد رابطهای کاربری منسجم و جذاب برای یک اپلیکیشن در شش پلتفرمی که پشتیبانی میکند را سادهتر میسازد.
از آنجا که فلاتر یک فریمورک توسعه کراسپلتفرم است، ابتدا آن را با توسعه بومی مقایسه میکنیم و سپس ویژگیهایی که فلاتر را متمایز میکند بررسی میکنیم.
توسعه اپلیکیشن بومی در مقایسه با توسعه کراسپلتفرم
کدنویسی یک اپلیکیشن برای یک پلتفرم خاص، مانند iOS، توسعه بومی نامیده میشود. در مقابل، توسعه کراسپلتفرم یعنی ساخت یک اپلیکیشن برای چندین پلتفرم با استفاده از یک کدبیس واحد.
توسعه اپلیکیشن بومی
در توسعه بومی، چون توسعهدهندگان برای یک پلتفرم خاص کدنویسی میکنند، به همه قابلیتهای بومی دستگاه دسترسی دارند. این معمولاً منجر به عملکرد و سرعت بالاتری نسبت به توسعه کراسپلتفرم میشود.
اما اگر بخواهید اپلیکیشنی را روی چندین پلتفرم منتشر کنید، توسعه بومی نیازمند کد بیشتر و تعداد بیشتری توسعهدهنده خواهد بود. علاوه بر این هزینهها، توسعه بومی میتواند انتشار همزمان روی چند پلتفرم با تجربه کاربری یکسان را دشوار کند. در اینجا است که فریمورکهای کراسپلتفرم مانند فلاتر ارزشمند میشوند.
توسعه اپلیکیشن کراسپلتفرم
توسعه کراسپلتفرم به توسعهدهندگان این امکان را میدهد که با استفاده از یک زبان برنامهنویسی و یک کدبیس، اپلیکیشنی را برای چندین پلتفرم بسازند. اگر قصد دارید اپلیکیشنی را روی چندین پلتفرم منتشر کنید، توسعه کراسپلتفرم هزینه و زمان کمتری نسبت به توسعه بومی دارد.
این فرآیند همچنین به توسعهدهندگان کمک میکند تا تجربهای یکپارچهتر برای کاربران در پلتفرمهای مختلف ایجاد کنند.
البته این رویکرد در مقایسه با توسعه بومی میتواند محدودیتهایی داشته باشد، مانند دسترسی محدودتر به قابلیتهای بومی دستگاه. با این حال، فلاتر ویژگیهایی دارد که توسعه کراسپلتفرم را روانتر و با کارایی بالا ممکن میسازد.
مزایای فلاتر چیست؟
مواردی که باعث برجستگی فلاتر بهعنوان یک فریمورک کراسپلتفرم میشوند عبارتند از:
-
عملکرد نزدیک به بومی: فلاتر از زبان برنامهنویسی Dart استفاده میکند و به کد ماشین کامپایل میشود. دستگاه میزبان این کد را درک میکند و همین باعث عملکرد سریع و مؤثر میشود.
-
رندرینگ سریع، منسجم و قابل سفارشیسازی: فلاتر به جای استفاده از ابزارهای رندرینگ مخصوص پلتفرم، از کتابخانه گرافیکی متنباز Skia (متعلق به گوگل) برای رندر کردن رابط کاربری استفاده میکند. این موضوع باعث میشود کاربران در هر پلتفرمی که اپلیکیشن را اجرا میکنند، تجربه بصری یکسانی داشته باشند.
-
ابزارهای کاربرپسند برای توسعهدهندگان: گوگل فلاتر را با تمرکز بر سهولت استفاده ساخته است. ابزارهایی مانند hot reload به توسعهدهندگان امکان میدهند تغییرات کد را فوراً ببینند بدون اینکه وضعیت فعلی برنامه از بین برود. ابزارهایی مانند widget inspector نیز مشاهده و رفع مشکلات در چیدمان رابط کاربری را سادهتر میکنند.
Flutter از چه زبان برنامه نویسی استفاده می کند؟
Flutter از زبان برنامه نویسی منبع باز Dart استفاده می کند که توسط Google نیز توسعه یافته است. Dart برای ساخت UI بهینه شده است و بسیاری از نقاط قوت Dart در Flutter استفاده می شود. به عنوان مثال، یکی از ویژگی های Dart که در Flutter استفاده می شود، ایمنی null صدا است. ایمنی null صدای Dart تشخیص خطاهای رایج به نام خطاهای null را آسان تر می کند. این ویژگی زمان صرف شده توسط توسعه دهندگان برای نگهداری کد را کاهش می دهد و به آنها زمان بیشتری برای تمرکز بر ساخت برنامه های خود می دهد.
ویجت در Flutter چیست؟
در فلاتر، توسعهدهندگان رابطهای کاربری را با استفاده از ویجتها میسازند. یعنی هر چیزی که کاربر روی صفحه میبیند – از پنجرهها و پنلها گرفته تا دکمهها و متنها – از ویجت ساخته شده است.
ویجتهای فلاتر طوری طراحی شدهاند که توسعهدهندگان بهراحتی بتوانند آنها را شخصیسازی کنند. فلاتر این کار را از طریق رویکرد ترکیب انجام میدهد. به این معنی که بیشتر ویجتها از ویجتهای کوچکتر ساخته شدهاند و ویجتهای پایه اهداف مشخصی دارند. این موضوع به توسعهدهندگان اجازه میدهد ویجتها را ترکیب یا ویرایش کنند تا ویجتهای جدید بسازند.
فلاتر ویجتها را با استفاده از موتور گرافیکی خودش رندر میکند، نه با تکیه بر ویجتهای داخلی پلتفرم. بنابراین، کاربران در تمام پلتفرمها تجربهای مشابه از نظر ظاهر و حس کاربری خواهند داشت. این رویکرد همچنین به توسعهدهندگان انعطاف بیشتری میدهد، زیرا برخی ویجتهای فلاتر قابلیتهایی دارند که ویجتهای بومی پلتفرمها ندارند.
همچنین فلاتر استفاده از ویجتهایی که توسط جامعه توسعه داده شدهاند را آسان میکند. معماری فلاتر از داشتن چندین کتابخانه ویجت پشتیبانی میکند و خود فلاتر جامعه را به ساخت و نگهداری ویجتهای جدید تشویق میکند.
انواع ویجتهای فلاتر
فلاتر از همان زمان دانلود، یک کاتالوگ گسترده از ویجتها در اختیار دارد. این کاتالوگ ۱۴ دسته مختلف را شامل میشود، از جمله استایلدهی، ویجتهای سبک Cupertino (ویجتهای شبیه iOS) و کامپوننتهای متریال (ویجتهایی مطابق با دستورالعملهای طراحی متریال گوگل).
فلاتر همچنین همراه با چیدمانها و تمها عرضه میشود که به توسعهدهندگان کمک میکند بلافاصله شروع به کار کنند.
چگونه از فلاتر پشتیبانی میشود؟
فلاتر توسط گوگل و یک جامعه متنباز فعال در ردیت، دیسکورد، اسلک، استک اورفلو و گیتر پشتیبانی میشود. گوگل از زمان معرفی فلاتر در سال ۲۰۱۸، بهطور مداوم آن را بهروزرسانی کرده است، از جمله انتشار نسخه فلاتر ۳ در سال ۲۰۲۲ که پشتیبانی پایدار از مکاواس و لینوکس را اضافه کرد.
برای یادگیری آسانتر فلاتر، گوگل مستندات و آموزشهای گستردهای در وبسایت فلاتر منتشر کرده است. همچنین برای تعامل با کاربران فلاتر، گوگل رویدادهای جهانی برگزار میکند، پروژههای جامعه را ترویج میدهد و چالشهای توسعهدهندگان را حمایت میکند. فهرست رویدادهای آینده در سایت فلاتر موجود است.
جامعه فلاتر هزاران پکیج شخص ثالث و ابزارهای عالی ساخته که تجربه توسعهدهندگان را روانتر میکند. این کتابخانهها در سایت pub.dev در دسترس هستند.