Flutterیک فریم ورک متن باز برای ساخت اپلیکیشنهای موبایل است. این کتابخانه توسط شرکت گوگل در سال 2017 معرفی شد و در مقایسه با React یا سایر فریم ورکهای ساخت اپلیکیشن مبتنی بر موبایل عمر زیادی ندارد. فلاتر با زبان برنامه نویسی دارت نوشته شده است، یک زبان چندمنظوره و شی گراء که هنوز آنطور که باید و شاید بر سر زبانها نیفتاده و محبوبیت زیادی ندارد. با یادگیری زبان دارت و فریم ورک فلاتر میتوانید برای اندروید و iOS اپلیکیشن بسازید. جالب است بدانید علی بابا، یکی از بزرگترین شرکتهای چینی در دنیا به فلاتر اعتماد کرده و اپلیکیشن خود را با این فریم ورک ساخته است. در این مطلب بررسی خواهیم کرد که فریم ورک Flutter چیست و چه کاربردهایی دارد.
میدانیم که زبان اصلی برنامه نویسی اندروید، جاوا است و برنامه نویسان iOS هم از Swift برای توسعه اپلیکیشنهای موبایلی استفاده میکنند. جاوا پیچیدگیهای خاص خودش را دارد و شاید کار با آن به اندازه زبانهایی مثل پایتون یا جاوا اسکریپت راحت نباشد. همین مساله باعث شده که سایر زبانها هم برای توسعه برنامههای موبایلی به کار گرفته شوند. مثلا React یک راه حل نسبتا آسان برای ساخت اپلیکیشنهای موبایل مبتنی بر جاوا اسکریپت است. یا فلاتر که یک پیادهسازی خوب از زبان دارت است.
چرا فلاتر از زبان برنامه نویسی دارت استفاده کرده ؟
فلاتر برای این که بتواند از بروز مشکلات اجرایی خود جلوگیری کند از زبان دارت استفاده کرده اگر شما با اصطلاح Compiled Programming Language آشنا باشید این راه به راحتی میتوانید درک کنید مشکلات عملکردی میتوانند به دلیل استفاده از یک زبان برنامه نویسی ترجمه شونده رخ دهد و این یک پل جاوا اسکریپت است که دارت برای فلاتر جلو تر از زمان Ahead of Time کد های بومی را ترجمه و کامپایل میکند .
و به همین علت است که فلاتر بدون این پل با پلتفرم مربوطه ارتباط برقرار میکند یک پل در جاوا فرایند تعویض زمینه Context Switch بین قلمرو جاوا و قلمرو محلی است و کامپایل به صورت AoT انجام میشود و این باعث بارگذاری سریع اپلیکیشن میشود .
رابط کاربری فلاتر ؟
فریم ورک فلاتر دارای یک رابط کاربری بسیار جذاب و فوق حرفه ای است و از همه مهم تر انعطاف پذیری آن توجه خیلی از برنامه نویسان را به خود جلب کرده است میتوان گفت فلاتر فریم ورک کامل شده ری اکت نیتیو است .
مزایا فلاتر:
با امکاناتی مانند Hot reload ، تغییرات انجام شده در کدها توسط فلاتر قابل مشاهده است و تغییرات را میتوان خیلی سریع در برنامه ها اعمال کرد.
برنامه هایی که در فلاتر ایجاد می کنید بسیار نرم و یکدست هستند، یعنی در زمان پیمایش هنگ نمی کنند.
معماری لایه ای امکان سفارشی سازی کامل را فراهم می کند که منجر به رندر فوق العاده سریع و طرح های رسا و انعطاف پذیر می شود.
به علت استفاده از زبان Dart در هسته خود، امکان دسترسی به مخزن بزرگی از پکیج های نرم افزار یرا در اختیار دارد که همین امر باعث تقویت همه جانبه اپلیکیشن های طراحی شده با آن می شود.
در این فریم ورک توسعه دهنگان کنترل مطلوبی بر روی ویجت ها و چینش های شخصی دارند.
به علت سادگی بیش از حد، فلاتر گزینه مناسبی برای توسعه فوق سریع اپلیکیشن های موبایل با بودجه کم می باشد.
وقتی از فلاتر استفاده می شود، توسعه دهندگان نیاز نیست برای یادگیری اندروید زیاد وقت بگذارند و تست های کمتری انجام می دهند، زیرا کد پایه ای نوشته میشود که برای هر دو پلتفرم اندروید و ios قابل استفاده است. از این رو، توسعه دهندگان می توانند یک بار تست خودکار بنویسند و تضمین کیفیت نیاز به زمان کمتری دارد.
برای زمانی که یک شرکت استارتاپی هستید و می خواهید محصولی را در زمان کوتاه و بصورت دمویی برای جذب سرمایه گذاران نشان دهید می توانید از مزایای فلاتر استفاده کنید و اپ بسازید
معایب فلاتر:
فلاتر یک پلتفرم جدید است و برنامه نویسان کمی سخت تر می توانند با آن ارتباط برقرار کنند.
برنامه نویسانی که قبلا تجربه کار با دوره های جاوا و دوره های کاتلین و سوئیفت را دارند، حالا برگشت به فلاتر کمی برای آنها مشکل است.
چون جدید است بخاطر همین منابع زیادی برای آن وجود ندارد.
شرکت هایی که می خواهند از فلاتر در پروژه های توسعه برنامه های موبایل خود استفاده کنند به افرادی نیاز دارند که زبان دارت بلد باشند و در این زبان تخصص داشته باشند و متاسفانه پیدا کردن چنین برنامه نویسانی کمی دشوار است.
فریم ورک های مدرن نهایت سعی و تلاش خود برای جداسازی رابط کاربری (UI) و Logic را به کار گرفته اند اما این قضیه در Flutter فرق می کند به گونه ای که این دو در هم تنیده شده اند. البته با استفاده از کد نویسی هوشمند و ماژول های سطح بالا می توان تا حدودی این مشکل را برطرف کرد.
مشکل دیگری که وجود دارد این است که برای پروژه های خیلی بزرگ امکان پیاده سازی همه مفاهیم وجود ندارد در صورتیکه همین پروژه های بزرگ با زبان جاوا مشکل ساز نیست.
استخدام افرادی که فلاتر بلد هستند معمولا برای پروژه های کوچیکتر استفاده می شود و برای پروژه های بزرگ باید افرادی استخدام شوند که با زبان های جاوا و کاتلین کار کرده باشند.
نمونه پروژه فلاتر در وبشیفت
حرف آخر:
چارچوب فلاتر فرصتهای هیجانانگیزی را برای توسعهدهندگان اپلیکیشن موبایل و کسبوکارها ارائه میکند. ساخت برنامههای iOS و Android با یک کد یکسان بر روی یک رابط کاربری بسیار کاربرپسند، توسعه اپلیکیشن موبایل را سریع و مقرونبهصرفه میسازد.