معرفی
فلاتر (Flutter) کیت توسعه رابط کاربری و فریمورکی متنباز از Google است که برای ساخت اپلیکیشنهای چندسکویی بکار میرود. توسعهدهنده با یک کدبیس، رابط و منطق برنامه را برای Android و iOS میسازد و در صورت نیاز میتواند هدفهای وب، دسکتاپ و دستگاههای توکار را نیز بررسی کند. ویژگیهای این ابزار عبارتاند از:
زبان و ویجتها: زبان اصلی فلاتر دارت (Dart) است. رابط کاربری در فلاتر از Widgetها ساخته میشود، از اجزای ساده مانند متن و دکمه تا ساختار صفحه، چیدمان، انیمیشن و ناوبری. فلاتر رابط را خودش رندر میکند، بنابراین ظاهر برنامه در پلتفرمهای مختلف معمولا کنترلپذیرتر از راهکارهایی است که به اجزای رابط بومی وابستهاند.
مخاطبان و پیشنیازها: توسعهدهندگان اپلیکیشن موبایل، تیمهای محصول با نیاز به انتشار همزمان روی Android و iOS و تیمهایی که میخواهند نمونه اولیه قابل استفاده بسازند، از فلاتر استفاده میکنند. با این وجود انتخاب آن فقط به «یکبار نوشتن کد» محدود نیست، بلکه تیم باید مدیریت وضعیت، معماری پروژه، تست، اتصال به API، فرایند Build و در موارد خاص ارتباط با کد بومی Android و iOS را نیز یاد بگیرد.
ویژگیهای کلیدی
موارد زیر تصویری کلی از این بخش برای این ابزار ارائه میکنند.
-
کدبیس مشترک برای چند پلتفرم
بخش بزرگی از رابط کاربری و منطق برنامه را یکبار مینویسید و برای Android و iOS Build میگیرید. میزان اشتراک واقعی کد در پروژههای دارای قابلیتهای بومی خاص کمتر میشود.
-
رابط کاربری مبتنی بر Widget
صفحه، چیدمان، ورودی کاربر، انیمیشن و اجزای ظاهری همگی با Widgetها ترکیب میشوند. این مدل ساخت رابط را یکپارچه میکند، اما در پروژههای بزرگ به ساختاردهی دقیق نیاز دارد.
-
بازگذاری سریع تغییرات
قابلیت Hot Reload اجازه میدهد بسیاری از تغییرات رابط و منطق را بدون راهاندازی دوباره کامل برنامه ببینید. تغییرهای مربوط به کد بومی یا راهاندازی اولیه معمولاً به اجرای مجدد نیاز دارند.
-
کامپوننتهای Material و Cupertino
فلاتر مجموعهای از Widgetهای آماده برای الگوهای طراحی Android و iOS دارد. تیم میتواند از آنها استفاده کند یا برای هویت بصری محصول، Widgetهای اختصاصی بسازد.
-
ارتباط با قابلیتهای بومی
از طریق Platform Channel و افزونهها میتوان به امکاناتی مانند دوربین، موقعیت مکانی، اعلان، پرداخت و سرویسهای دستگاه دسترسی داشت. اگر افزونه مناسب وجود نداشته باشد، پیادهسازی کد بومی متناسب با پروژه و پلتفرم لازم است؛ این کد بسته به لایه موجود میتواند با Kotlin یا Java در Android و Swift یا Objective-C در iOS نوشته شود.
-
ابزارهای تحلیل و اشکالزدایی
Flutter DevTools برای بررسی Widgetها، عملکرد، حافظه و درخواستهای شبکه در دسترس است و به تشخیص بازسازیهای غیرضروری رابط یا مصرف نامتعارف منابع کمک میکند.
کاربردها
در ادامه، مهمترین موارد این بخش به تفکیک معرفی شدهاند.
-
اپلیکیشن محصولی برای Android و iOS
برای محصولی که جریانهای کاربری و قابلیتهای اصلی آن در هر دو سیستمعامل مشابه است، فلاتر میتواند زمان توسعه و نگهداری دو کدبیس جداگانه را کاهش دهد.
-
نمونه اولیه قابل آزمایش
تیم محصول میتواند یک نسخه قابل نصب با صفحهها، فرمها، ناوبری و اتصال آزمایشی به API بسازد تا فرضیههای محصول را با کاربران واقعی بررسی کند.
-
اپلیکیشنهای سازمانی و عملیاتی
برنامههای ثبت سفارش، مدیریت مأموریت، گزارشگیری، پنل عملیات یا ابزارهای داخلی که روی گوشیهای Android و گاهی iOS اجرا میشوند، کاربرد رایجی برای فلاتر هستند.
-
بازطراحی رابط یک اپلیکیشن موجود
تیم میتواند بخشهای تازه محصول را با فلاتر توسعه دهد، اما ادغام تدریجی با اپلیکیشن بومی موجود نیازمند برنامهریزی برای ماژولهای مشترک، Build و ارتباط بین لایهها است.
پرسشهای رایج درباره فلاتر
اگر درباره این ابزار پرسشی دارید، ممکن است پاسخ آن را در میان موارد زیر پیدا کنید.
برای یادگیری فلاتر باید ابتدا دارت یاد بگیرم؟
برای شروع آشنایی با Flutter لازم نیست دارت را جداگانه کامل کنید، اما پیش از ساخت پروژه جدی باید مبانی آن را یاد بگیرید. فردی با تجربه برنامهنویسی، با حدود ۲۰ تا ۴۰ ساعت تمرین میتواند یک پروژه ساده بسازد؛ برای مبتدی، این بازه معمولاً ۶۰ تا ۱۲۰ ساعت است. روی متغیرها، توابع، کلاسها، ایمنی تهیبودن (null safety)، عملیات ناهمگام و Future، یعنی نتیجهای که بعداً آماده میشود، تمرین کنید.
آیا فلاتر برای ساخت اپلیکیشن Android و iOS مناسب است؟
بله، این یکی از کاربردهای اصلی فلاتر است. با این حال، قابلیتهای وابسته به سیستمعامل مانند پرداخت، اعلان یا افزونههای خاص ممکن است به تنظیمات و کد بومی جداگانه نیاز داشته باشند.
آیا برای کار با فلاتر باید Android Studio نصب کنم؟
برای توسعه Android به Android SDK و ابزارهای Build نیاز دارید که Android Studio راه سادهای برای نصب و مدیریت آنها است. میتوانید کدنویسی را در ویرایشگرهای دیگر انجام دهید، اما SDK و شبیهساز Android همچنان لازماند.
فلاتر بهتر است یا React Native؟
اگر به JavaScript و اکوسیستم React مسلط هستید، React Native میتواند شروع آسانتری داشته باشد. اگر یکپارچگی Widgetها، دارت و کنترل بیشتر بر رندر رابط را ترجیح میدهید، فلاتر گزینه قابل بررسیتری است. انتخاب را با نیاز محصول، مهارت تیم و افزونههای ضروری بسنجید.
برای ورود به کار توسعه موبایل با فلاتر چه نمونهکاری بسازم؟
نمونهکار خود را برای ارزیابی در موقعیتهای «Flutter Developer» یا «برنامهنویس Flutter» آماده کنید: ورود کاربر، فهرست و جزئیات داده، اتصال به API، حالت بارگذاری و خطا، ناوبری و ذخیرهسازی محلی داشته باشد. مخزن کد باید راهنمای اجرای پروژه، تصاویر یا ویدئوی کوتاه، و توضیح معماری و مدیریت وضعیت را داشته باشد. دستکم یک جریان اصلی را با تست پوشش دهید.
آموزشهای مرتبط در فرادرس
-
آموزش پروژه محور فلاتر، طراحی اپلیکیشن موبایل با Flutter، مقدماتی + گواهینامه
-
آموزش پروژه محور فلاتر، طراحی اپلیکیشن موبایل با Flutter، تکمیلی + گواهینامه
-
آموزش فریم ورک Google Flutter (رایگان)
-
آموزش برنامه نویسی دارت، زبان Dart + گواهینامه
-
آموزش معماری بلاک در فلاتر، BLoC در Flutter + گواهینامه
-
آموزش Clean Architecture در Flutter، معماری تمیز در فلاتر + گواهینامه
-
آموزش پروژه محور فلاتر با دارت، اپلیکیشن فروشگاه اینترنتی با فریم ورک Flutter در Dart + گواهینامه