فلاتر (Flutter) چیست؟ + بررسی مزایا و معایب آن
فریم ورک فلاتر Flutter یک SDK یا Software Development Kit می باشد که بر پایه زبان برنامه نویسی Dart می باشد و فرآیند تولید نرم افزارهای کاربردی با ظاهری زیبا را آسان تر می کند. از Flutter می توان برای توسعه اپلیکیشن های اندروید و IOS استفاده کرد.
در واقع فلاتر ابزاری کاربردی برای توسعه دهندگان اپلیکیشن های موبایل است که می توانند به کمک آن برنامه هایی با ظاهر زیبا و به شکل Cross Platform تولید و ارائه کنند. ما در این مقاله قصد داریم تا هر آنچه که شما برای آشنایی با این فریم ورک محبوب نیاز دارید را در اختیارتان بگذاریم.
فریم ورک Flutter چیست؟
جالب است بدانید که گوگل پس از کسب موفقیت در پروژه اندروید در حال توسعه یک پلتفرم جدید به نام فوشیا (Fuschsia) می باشد که در هسته خود برخلاف اندروید به جای لینوکس از ریز هسته جدیدی به نام Zircon نیز استفاده می کند. همچنین گوگل زبان برنامه نویسی Dart و یک فریم ورک جدید به نام Flutter که قرار بود پلی برای ورود اپلیکیشن های موبایل به سیستم عامل جدید گوگل یعنی Fuchsia باشد را نیز معرفی کرد.
همانطور که گفتیم فلاتر یک کیت توسعه نرم افزار (Software Development Kit) منبع باز و شی گراء می باشد که به برنامه نویسان و طراحان امکان توسعه اپلیکیشن های مدرن را در محیط اندروید و iOS می دهد. اگرچه برای طراحی اپلیکیشن سازگار با دو سیستم عامل (OS) باید از دو زبان برنامه نویسی و فریم ورک متفاوت استفاده کرد اما در حوزه اپلیکیشن های موبایل، فریم ورک هایی طراحی شده اند که این مشکل را برطرف می سازد.
این فریم ورک ها، از ساده ترین تا پیچیده ترین آنها دارای مشکلات متعددی هستند. به گونه ای که عمده ترین نقطه ضعفشان عملکرد کُند آنهاست. اما Flutter یک فریم ورک ساده با عملکرد پرسرعت مبتنی بر زبان برنامه نویسی Dart گوگل می باشد که از طریق رندرینگ (Rendering) مستقیم رابط کاربری در بوم گرافیکی (Graphic Canvas) سیستم عامل (به جای استفاده از فریم ورک بومی) عملکرد بسیار قابل قبولی را ارائه می کند.
فریم ورک Flutter با ارایه و بهینه سازی ویجت (Widget) های متنوع، طراحی اپلیکشن های مدرن را ساده تر از قبل می کند. به گونه ای که استفاده از این ویجت ها به سادگی طراحی HTML می باشد. در حقیقت خود فلاتر یک ویجت است که از انواع انیمیشن ها و ژست ها پشتیبانی کرده و به جای رندر مجدد (Re-render) ویجت ها تغییرات لازم بر آنها را اعمال می کند.
معماری فریم وررک فلاتر
- زبان Dart :
فریم ورک Flutter هسته اصلی خود را مدیون زبان برنامه نویسی Dart می باشد، اگرچه گوگل امروزه از زبان های متعددی در توسعه هرچه بیشتر آن استفاده می کند.
- موتور فلاتر (Flutter Engine) :
این موتور بر پایه زبان ++C نوشته شده و با بهره گیری از کتابخانه های گرافیکی گوگل (Skia) تمامی انیمیشن ها ،طرح های گرافیکی و غیره را به طور رندرگیری سطح پایین (Low-Level Rendering) به هسته فلاتر اضافه می کند.
- کتابخانه Foundation
این کتابخانه که بر اساس زبان Dart نوشته شده است دارای تعداد چشم گیری تابع و کلاس است که به شما این امکان را می دهد تا برنامه ها و اپلیکیشن های متنوعی بسازید.
- افزونه های منحصربه فرد طراحی :
فریم ورک Flutter دارای ویجت های بسیاری می باشد که به طور کلی به دو دسته تقسیم می شوند : مورد اول Material Design ها که مورد علاقه اندروید و شرکت گوگل است و مورد دوم ویجت Cupertino که شاکله اصلی طراحی iOS می باشد.
ویژگی های فریم ورک Flutter
- دارای فریم ورک با ویژگی های واکنشی و مدرن
- استفاده از زبان برنامه نویسی بسیار ساده Dart
- توسعه سریع
- رابط کاربری زیبا، روان به روز برای کاربران
- دارای لیست متنوع از ویجت ها
- سازگاری با پلتفرم های متفاوت
- سطح بالای عملکرد
- منبع باز
مزایای فریم ورک Flutter
این فریم ورک با در اختیار داشتن ویجت های متنوع تجربه لذت بخشی در ذهن برنامه نویسان به جای می گذارد به گونه ای که تمامی خواسته ها و نیازهای یک توسعه دهنده اپلیکیشن را برطرف می کند به علاوه اینکه کار با آن فواید دیگری نیز دارد که در ادامه به آنها خواهیم پرداخت :
- به علت استفاده از زبان Dart در هسته خود، امکان دسترسی به مخزن بزرگی از پکیج های نرم افزار یرا در اختیار دارد که همین امر باعث تقویت همه جانبه اپلیکیشن های طراحی شده با آن می شود.
- برنامه نویس تنها با یکبار تعریف کدها قادر به پیاده سازی آن در هر دو سیستم عامل اندروید و iOS می باشد. به علاوه قابلیت پشتیبانی دیگر پلتفرم ها از Flutter نیز در آینده نه چندان دور قابل تصور است.
- با توجه به ویژگی تک کدی بودن آن (Single Coding) با یکبار نوشتن تست در هر دو پلتفرم، دیگر نیازی به آزمون و خطای بیشتری احساس نمی شود.
- به علت سادگی بیش از حد، فلاتر گزینه مناسبی برای توسعه فوق سریع اپلیکیشن های موبایل با بودجه کم می باشد.
- در این فریم ورک توسعه دهنگان کنترل مطلوبی بر روی ویجت ها و چینش های شخصی دارند.
- یکی از مزایای فوق العاده فلاتر Hot reload بودن آن است. فرض کنید که در محیط اندروید استدیو در حال نوشتن یک اپلیکیشن هستید. برای تست این اپلیکیشن آن را در یک شبیه ساز اجرا می کنید و سپس احساس می کنید بخشی از کدها نیاز به تغییر دارند، بنابراین تغییرات خود را اعمال کرده و می بینید که بدون نیاز به دوباره اجرا کردن شبیه ساز تغییرات اعمال شده و قابل مشاهده هستند. این تکنیک در تغییر UI، اضافه کردن قابلیت جدید و دیباگ کردن پروژه بسیار به برنامه نویس کمک می کند.
معایب فریم ورک Flutter
در حقیقت یکی از دلایلی که باعث شده این فریم ورک مورد بی مهری برنامه نویسان قرار گیرد، جوان و جدید بودن آن است. برنامه نویسانی که قبلا با استفاده از جاوا، کاتلین و Swift اپلیکیشن های بومی برای سیستم عامل های مختلف طراحی کرده اند یادگیری یک فریم ورک جدید مثل Flutter برای آنها کاری بسیار سخت و طاقت فرسا می باشد.
توسعه اپلیکیشن های موبایل با فلاتر مستلزم استخدام برنامه نویسانی با تخصص زبان دارت می باشد و متاسفانه در ایران یافتن چنین برنامه نویسانی نسبت به فریم ورک ها و زبان های دیگر دشوارتر است.
ضعف بعدی این فریم ورک این است که برای توسعه پروژه های بزرگ قادر به پیاده سازی برخی مفاهیم در آن نخواهید بود به گونه ای که در زبان های دیگر مانند Java به هیچ وجه به این مشکل برخورد نخواهید کرد. بنابراین بسیاری از برنامه نویسان Flutter را برای توسعه برنامه های ساده تر مناسب میدانند و ساختار آن را برای انجام پروژه های بزرگتر مثل ساخت بازی های بزرگی مشابه Clash Royale ضعیف و کم کاربرد توصیف می کنند.
فریم ورک های مدرن نهایت سعی و تلاش خود برای جداسازی رابط کاربری (UI) و Logic را به کار گرفته اند اما این قضیه در Flutter فرق می کند به گونه ای که این دو در هم تنیده شده اند. البته با استفاده از کد نویسی هوشمند و ماژول های سطح بالا می توان تا حدودی این مشکل را برطرف کرد.
نتیجه گیری
فریم ورک Flutter در سال 2017 معرفی و در این حدود سه سال فراز و نشیب های بسیاری داشته است. علیرغم فواید بسیار مانند استفاده از زبان Dart، تک کد بودن، دو منظوره بودن (کارآیی در هر دو سیستم عامل اندروید و iOS) هنوز آنچنان که باید مورد توجه برنامه نویسان قرار نگرفته است. اگرچه جالب است بدانید که شرکت چینی AliBaba به این فریم ورک اعتماد کرده و برنامه نویسان این شرکت از این فریم ورک برای توسعه اپلیکیشن ها استفاده می کنند. همچنین با وجود اینکه آینده هسته Flutter یعنی زبان برنامه نویسی Dart کاملا روشن نیست و شاید فلاتر را با مشکل دچار کند، اما یادگیری و کار کردن با آن یکی از گزینه های لذت بخش در دنیای برنامه نویسان جدید می باشد.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.