فریم ورک فلاتر Flutter چیست؟

اگر در زمینه برنامه نویسی فعالیت کنید یا علاقه مند به آن باشید احتمالا نام فریمورک فلاتر به گوش شما خورده است.
در این مقاله قصد داریم بررسی کنیم که فلاتر چیست و چه کاربردهایی در دنیای کامپیوتر و طراحی نرم افزار دارد.
فریموورک متن باز فلاتر (Flutter ) توسط گوگل برای اولین در سال 2017 رونمایی شد, این فریموورک به برنامه نویسان و توسعه دهندگان این امکان را میدهد که با یک بار نوشتن کد خروجی مخصوص اندروید و iOS برای اپلیکیشن خود بگیرند.
در سال 2015 یکی از مهندسان شرکت گوگل پروژهاي به نام SKY را براي مدیران خود ارائه کرد, که به وسیله آن بدون استفاده از زبان برنامه نویسی جاوا یک اپلیکیشن اندرویدي را طراحی و در فروشگاه گوگل قرار داده بود.
در مسیر توسعه این اپلیکیشن از زبان برنامه نویسی استفاده شده بود، که این زبان را شرکت گوگل معرفی کرده بود, اما استفاده و کاربرد آنچنانی تا آن زمان نداشت. زبان برنامه نویسی مورد نظر همان زبان دارت میباشد.
هسته اصلی فلاتر با استفاده از زبان های C, C++ و دارت توسعه داده شده است. برای پیاده سازی موتور گرافیکی نیز از Skia کمک گرفته شده است.
در حال حاضر فلاتر امکان طراحی برنامه برای تمام پلتفرم های موبایل, وب و دسکتاپ را دارد.
نکته مثبت Flutter نسبت به فریموورک های چند سکویی مثل زمارین و فون گپ خروجی Native اپلیکیشن می باشد به عبارت دیگر میان اپلیکیشن اندرویدی که با فلاتر توسعه داده میشود یا جاوا هیچ فرقی وجود ندارد.
زبان مورد استفاده در فریموورک Flutter زبان توسعه یافته توسط گوگل به نام دارت Dart می باشد که یک زبان شی گرا و سطح بالا با شباهت به جاوا می باشد.
همچنین گوگل اطلاع داده است که در آینده زبان دارت و Flutter به عنوان بستر اصلی توسعه برای سیتسم عامل فیوشا مورد استفاده قرار خواهد گرفت.
در ادامه با هم به بررسی ویژگی های مختلف فریموورک Flutter خواهیم پرداخت.
داستان آغاز فلاتر Flutter
پروژه فلاتر ابتدا در سال ۲۰۱۵ توسط شرکت گوگل شروع شد. ایده اصلی پشت این پروژه بود که توسعه دهندگان بتوانند برنامه هایی با کیفیت بالا و تجربه کاربری عالی برای تمامی پلتفرم های موبایل و وب تولید کنند.
فلاتر از زبان Dart استفاده می کند و با استفاده از این زبان و ابزارهای متنوعی که فراهم می کند، توسعه دهندگان می توانند برنامه های قابل حمل و کارآمد برای iOS و Android را تولید کنند. با انتشار نسخه ۱٫۰٫۰ در دسامبر ۲۰۱۸، فلاتر به عنوان یکی از محبوب ترین فریمورک های موبایل توسعه داده شده و همچنان به شدت توسعه پیدا می کند.
پس از ایجاد فریمورک فلاتر، توسعه دهندگان برای ایجاد برنامه های موبایل، وب و دسکتاپ، از این فریمورک استفاده کردند. فلاتر با استفاده از زبان برنامه نویسی Dart، توسعه دهندگان را قادر میسازد تا برنامههایی با رابط کاربری زیبا و پویا ایجاد کنند که با سیستم عاملهای مختلف سازگاری دارند.
استفاده از دیزاین متریال در فلاتر، همچنین به توسعه دهندگان کمک میکند تا رابط کاربری زیبایی را در برنامههای خود پیاده سازی کنند. به همین دلیل، فلاتر به یکی از محبوبترین فریمورکهای توسعه برنامههای موبایل و وب تبدیل شده است.
زبان برنامه نویسی دارت Dart
زبان دارت توسط لارس بک، مهندس نرمافزار دانمارکی، اختراع شده است. او زبان دارت را با هدف ساخت یک زبان برنامه نویسی با قابلیتهایی برای ساخت برنامههای وب ایمن، سریع و انعطافپذیر طراحی کرد. لارس بک با طراحی دارت میخواست زبانی را ایجاد کند که بتواند در هر دستگاهی، از جمله دستگاههای موبایل و وبسرورها، به خوبی عمل کند. همچنین، او به دنبال ساخت یک زبانی بود که از خطاهایی که در زبانهای دیگر وجود دارد، جلوگیری کند. به همین دلیل دارت از جمله زبانهایی است که برای برنامهنویسان ساده و قابل فهم است و با استفاده از آن میتوان به سرعت برنامههای کاربردی وب و دسکتاپ توسعه داد.
گوگل به مخترع زبان دارت به نام Lars Bak جایزه میلیون دلاری داده است. این جایزه در سال ۲۰۱۴ به او تعلق گرفت و به عنوان تقدیر از کار و تلاشهای او در طراحی و توسعه این زبان برای برنامه نویسی وب و سرورها به او اعطا شد.
ویژگی های فلاتر
یکی از ویژگیهای مهم فلاتر، وجود ویجتها (Widgets) قابل ترکیب با هم است که به برنامهنویسان این امکان را میدهد تا رابط کاربری برنامه خود را با استفاده از این ویجتها بسازند. این ویجتها از طریق یک درخت ویجتها (Widget Tree) در کنار هم قرار میگیرند و به صورت شخصیسازیپذیر هستند. همچنین، فلاتر از انیمیشنها و تحرکات غنی پشتیبانی میکند که باعث بهبود تجربه کاربری در برنامهها میشود.
از دیگر ویژگیهای فلاتر میتوان به معماری Reactive و Reactive Programming که در آن اطلاعات بصورت Reactive توسط برنامه پردازش میشود و ویژگی Hot Reload که به برنامهنویسان این امکان را میدهد که تغییرات خود را به صورت فوری در برنامه ببینند و در صورت نیاز اصلاح کنند اشاره کرد.
Hot Reload
با استفاده از این قابلیت سرعت شما در برنامه نویسی بسیار افزایش خواهد یافت.در این ویژگی نیاز نیست که هربار با ایجاد تغییر برای مشاهده آن مجددا کد های خود را کامپایل کنید بلکه Hot Reloading این کار و در سریع ترین زمان با ایجاد تغییرات لازم برای شما انجام خواهد داد.

برنامه نویسی واکنشگرا یا Reactive
فلاتر ویژگی های فریموورک های مختلف و تلفیق کرده و در اختیار شما قرار میدهد. یکی از این امکانات برنامه نویسی Reactive می باشد.
برنامه نویسی واکنشگرا در فلاتر به معنای توانایی برنامه نویسی در واکنش به تغییرات در داده ها و وضعیت های مختلف است. این ویژگی به معنای این است که وقتی کاربر با برنامه تعامل می کند و اطلاعات را وارد می کند یا وضعیتی تغییر می کند، برنامه باید به سرعت و به صورت فوری به این تغییرات واکنش نشان دهد و نتیجه را به کاربر نمایش دهد.
در فلاتر برنامه نویسی واکنشگرا به وسیله Stream API پیادهسازی شده است. Stream API به برنامه نویسان اجازه میدهد که به راحتی با استفاده از Stream و StreamBuilder، برنامههایی با رفتار واکنشگرا بسازند
استفاده دوباره
یکی از ویژگی های فلاتر که باعث میشه سرعت توسعه شما افزایش پیدا کند قابلیت استفاده مجدد از کد ها می باشد.
در واقع ویجت هایی که شما طراحی میکنید را میتونید داخل پروژه های بعدی خود نیز به راحتی استفاده کنید و تفاوتی ندارد که برای موبایل این کار و انجام میدید یا یک وب اپلیکیشن.
در فلاتر، شما میتوانید کامپوننتهایی را طراحی کنید که به راحتی در سراسر برنامه قابل استفاده و باز استفاده باشند. این ویژگی به برنامهنویسان اجازه میدهد که بخشهای مشابه از کد را با استفاده از کامپوننتهایی که قبلا طراحی کردهاند، باز استفاده کنند. این کار باعث بهبود قابل توجه در کارایی برنامه و همچنین کاهش زمان و هزینه توسعه آن میشود. به علاوه، استفاده مجدد از کامپوننتها باعث افزایش قابلیت تست و کیفیت برنامه نیز خواهد شد.
Flutter برای چه کسانی مناسب می باشد؟
فریموورک Flutter برای آن دسته از برنامه نویسانی که به دنبال راهی سریعتر برای طراحی اپلیکیشن موبایل هستند و یا اشخاصی که میخواهند با سرمایه کم کاربران زیادی جذب کنند مناسب است. همچنین Flutter به مدیران پروژه این امکان و میدهد تا تیم فنی کوچکتری برای بخش طراحی موبایل خود تشکیل دهند.
متن باز
متن باز یا اپن سورس بودن فلاتر باعث شده که برنامه نویسان مختلف این امکان و داشته باشند تا پکیج و کتابخونه های بسیار زیادی و برای استفاده عموم توسعه دهند.

عملکرد عالی
در مقایسه با فریمورک React Native از نظر عملکراین Flutter و زبان دارت هست که دست بالا را دارد.
فلاتر از یک موتور گرافیکی به نام Skia استفاده می کند که به طور خاص برای پردازش گرافیکی طراحی شده است. این باعث می شود که فلاتر در عملکرد و سرعت بهتری نسبت به React Native داشته باشد
ساختار Flutter
در فریمورک Flutter تمام عناصر رابط کاربری یک ویجت هستند. ویجت ها نقش View ها در برنامه نویسی اندروید را دارند که شاید براتون آشنا باشه اگر قبلا کار کرده باشید.
ویجت ها همچنین به دو نوع Stateless و Stateful تقسیم می شوند.
اگر ویجتی که میخواید استفاده کنید نیازی به ذخیره سازی اطلاعاتی نداره از نوع Stateless بهتر هست که استفاده کنید.
اما اگر ویجت رابط کاربری قرار هست که یک سری اطلاعات مختلف و ذخیره کند مثلا یک فرم ورود اطلاعات
در این حالت شما باید حتما از ویجت های نوع Stateful استفاده کنید.
تجربه کاربری زیبا
تجربه کاربری فلاتر به شما این امکان و میدهد که بدون هیچ محدودیتی طرح های خود را عملی کنید و زمان زیادی را صرف یادگیری نحوه پیاده سازی آن نکنید. همچنین طراحان بدون در نظر گرفتن محدودیت های فنی میتوانند خلاقیت خود را بروز دهند و رابط های کاربری بسیار زیبا خلق کنند.

آینده شغلی فلاتر چگونه است
با توجه به روند رو به رشد استفاده از فلاتر در توسعه برنامههای موبایل، وب و دسکتاپ، میتوان گفت آینده شغلی فلاتر و توسعه برنامههای مرتبط با آن بسیار خوب است.
با توجه به اینکه فلاتر در حال حاضر توسط شرکتهای بزرگی مانند گوگل، Alibaba و BMW استفاده میشود و تعداد برنامههایی که با این فریمورک توسعه داده میشود رو به افزایش است، پیش بینی میشود که استفاده از فلاتر و توسعه برنامههای موبایل و وب با این فریمورک در آینده به شدت گسترش خواهد یافت و بازار کار در این حوزه نیز رونق خواهد گرفت.
شروع آموزش برنامه نویسی Flutter
برای شروع آموزش فلاتر شما در ابتدا باید زبان برنامه نویسی دارت Dart و در حد متوسط بتونید کار کنید.
اگر سابقه برنامه نویسی با زبان های دیگر و دارید خیلی زود میتونید زبان Dart و یاد بگیرید اما اگر پیش زمینه ای در برنامه نویسی ندارید بهتر هست تا سطح برنامه نویسی شی گرا پیش برید.
زبان دارت توسط گوگل در ابتدا برای استفاده در برنامه نویسی وب ایجاد شد اما در حال حاضر امکان طراحی اپلیکیشن با آن نیز فراهم هست.
مزایای زبان دارت:
- سرعت بالا برنامه به دلیل کامپایل شدن هنگام اجرا
- یادگیری آسان
- پیاده سازی انیمیشن های مختلف به شکل ساده
- ساخت برنامه های پویا و ایستا
- امکان استفاده در برنامه نویسی سرور
نیازمندی ها
برای یادگیری برنامه نویسی فلاتر شما به امکانات زیادی نیاز ندارید کافیست فقط به لیست زیر توجه کنید.
- دسترسی به کامپیوتر شخصی
- داشتن اتصال اینترنت
- تلاش و پشتکار
سوالات متداول
فلاتر یک فریمورک برنامه نویسی موبایل به زبان دارت است که توسط شرکت گوگل معرفی شده است. با استفاده از این فریمورک میتوانید برای سیستم عامل های اندروید و iOS اپلیکیشن موبایل تولید کنید.
فلاتر از زبان برنامه نویسی Dart که توسط گوگل معرفی شده است استفاده میکند. این زبان شبیه به جاوا است و اگر یادگیری بسیار آسانی دارد. همچنین میتوانید از کتابخانه های زبان جاوا, کاتلین و سویفت نیز در فلاتر استفاده کنید.
با فریمورک فلاتر علاوه بر برنامه نویسی موبایل میتوانید وب اپلیکیشن هایی که در مرور اجرا میشوند را نیز طراحی کنید. علاوه بر پشتیبانی از وب میتوانید برای دسکتاپ و ویندوز هم برنامه نویسی انجام دهید.
چه شرکت هایی از فلاتر استفاده میکنند؟
شرکت های معتبر بسیار زیادی در سراسر دنیا از فریمورک Flutter برای طراحی محصولات خود استفاده میکنند همانند شرکت گوگل, BMW, علی بابا, Ebay, Square و…
شرکت BMW با استفاده فریمورک فلاتر اپلیکیشن MY BMW را برای سیستم عامل های اندروید و iOS منتشر کرده است.

برای شروع آموزش فریمورک فلاتر و زبان برنامه نویسی دارت بدون هیچگونه سابقه برنامه نویسی و یا طراحی اپلیکیشن میتوانید از فصل اول دوره آموزشی اختصاصی مجموعه Flutter-learn استفاده کنید که به شکل کاملا مرتب بروزرسانی میشود.
مطالب زیر را حتما مطالعه کنید
معرفی بهترین جایگزین های فایربیس Firebase
همه چیز درباره مفهوم ویجت در فلاتر
راهنمای خرید لپ تاپ مناسب برنامه نویسی + لیست قیمت 1402
بهترین ایده های طراحی اپلیکیشن موبایل در سال 2022
مهم ترین راه های کسب درآمد از طریق برنامه نویسی
مقایسه فلاتر و زبان کاتلین در برنامه نویسی چند سکویی Cross Platform
23 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
ایا میشه با flutter برنامه های پیچیده مثل برنامه حسابداری برای موبایل ساخت ؟ یا برای اینجور برنامه ها باید سراغ زبان های native رفت
سلام
شما با فلاتر هر نوع اپلیکیشنی میتونید طراحی کنید تنها محدودیتی که دارید منابع کم اون هست که با دوره های موجود در سایت سعی کردیم این محدودیت تا حدودی کم کنیم.
همچنین شما میتونید از همون کتابخانه و کدهای زبان نیتیو هم استفاده کنید داخل پروژه flutter
سلام و خسته نباشید
خروجی اندروید و ios که میدهد چقدر شبیه هم هستند ؟؟ آیا مقرون به صرفس برم یاد بگیرم یا اینکه نع دو تا رو جدا توسعه بدیم ؟
خروجی ها تقریبا مثل هم هستند و بعضی موارد به شکل المان های نیتیو همون سیستم عامل تبدیل میشه مثلا تب ها توی اندروید و iOS به شکل های مختلف هستند در حالت عادی
سلام اگه خروجی اپلیکیشن اندروید استودیو 5 مگ باشه با فلاتر حجمش چقدر میشه ؟ میخوام بگم توی خروجی نهایی از نظر حجم چقدر تفاوت دارند ؟
سلام
حجم خروجی پروژه اولیه فلاتر 4مگابایت است.
استخدام برنامه نویس فریموورک Flutter با حقوق و مزایای مناسب در شرکت رشد گستران امید
https://jobinja.ir/companies/roshed-gostaran-omid-belaadshapour/jobs/HK3
سلام
جهت خروجی گرفت برای ios نیاز به کامپیوتر مک هست؟
با vmw میشه خروجی گرفت؟
سلام با vm میشه.
رفتی یه متن رو کپی کردی آوردی نوشتی !
اینجا باید ریزتر توضیح بدی که زبان اش چی هست و روی چه بالا اومده
سلام لطفا لینک وبسایتی که ادعا میکنید از اون کپی کردیم و همینجا قرار بدید!
هیچ واژه ای از مطالب وبسایت کپی نیست.
سلام
برای آموزش فلاتر به نظر شما از کجا باید شروع کنم؟
سلام ایا سازگاز با همه یه ورژن هایه اندروید هست؟
بله
با سلام و تشکر بابت مطب بسیار مفیدتون
یک سوالی من داشتم
من برای خودم میخوام به آپ درست کنم بعنوان کتابخونه باشه که فقط هم برای من مهم هست که محل کتاب رو بگه
نه قیمت .. اطلاعات خود کتاب مهم هست که مثلا با نوشتن اسم کتاب نویسنده یا انتشارات و … (فیلدهای مختلف) اون رو سریع برام بیاره
هم میخوام ویندوزی باشه و هم ios
بنظرتون همین فریم ورک رو شروع کنم به یادیری یا پیشنهاد دیگه ای داریم
تشکر
سلام برای اندروید و ios میتونید از همین فلاتر بدون مشکل استفاده کنید اما برای ویندوز هنوز نسخه پایدار اون منتشر نشده که مشخص بشه چقد کارایی داره.
سلام
آیا کدی که برای موبایل می نویسیم دقیقا از همون کد می تونیم خروجی وب(pwa) داشته باشیم یا کدهای وب سایت باید جداگانه توسعه داده بشن؟
سلام بله تقریبا 90% کدها یکی هست فقط برای وب یکم تغییرات ممکن بخواد بعضی قسمتها
تشکر عالی بود
سلام وقت بخیر یه سوال درباره فلاتر داشتم.
آیا این امکان هست که گوگل زبان کاتلین رو بخواد جایگزین دارت کنه ؟ چون تو اپدیت اخری کاتلین ساخت لایه توسط کاتلین شده یه چیزی شبیه به فلاتر و دارت
سلام کسی اطلاعی نمیتونه در حال حاضر داشته باشه از این موضوع اما با توجه به اینکه زبان دارت خیلی شبیه به کاتلین هست بعید میدونم این اتفاق رخ بده.
برای یادگیری فلاتر احتیاج به یادگیری زبان Dart داریم؟
سلام
بله برنامه نویسی در فلاتر به زبان دارت هست.