تبلیغات
تبلیغات

Flutter – فلاتر چیست و چه قابلیت هایی دارد؟!

Flutter
Flutter (فلاتر)، امکان ساخت اپلیکیشن‌های موبایلی زیبا را به سادگی فراهم می‌کند و در واقع اجازه می‌دهد تا بتوان اپلیکیشن‌های بومی (native) را روی iOS و Android و حتی وب، تنها با یک کد پایه (codebase) تولید کرد. فلاتر در واقع، SDK مخصوص اپلیکیشن موبایل است که توسط گوگل توسعه داده شده و برای ایجاد رابط‌های بومی با بالاترین کیفیت در iOS و اندروید و در زمان رکورد (record-time) می‌باشد.

سال ۲۰۱۷، شرکت Google در کنفرانس Google I/O، ابزار جدید برنامه‌نویسی موبایل خود را با نام Flutter معرفی کرد؛ که به صورت Open Source نیز عرضه شد.

ممکن است در ابتدا، Flutter را در کنار دیگر ابزارهای مشابهی مانند React Native, Xamarin, Ionic, PhoneGap قرار دهیم؛ و با اینحال که استفاده از هرکدام از این ابزارها، مزایا و معایبی دارد، اما در این مطلب ما قدرت Flutter را نسبت به ابزارهای مشابه آن را بررسی خواهیم کرد؛ چراکه Flutter امکانات بسیار خوبی داشته و ممکن است برای برنامه‌نویسان اندروید بسیار جذاب باشد.

معرفی فلاتر

فلاتر (Flutter)، یک Software Development Kit و یا به اختصار، SDK ای است که فرآیند تولید اپلیکیشن‌هایی با کارایی بالا و ظاهری زیبا را تسهیل می‌کند. این SDK، هم برای سیستم‌عامل‌های IOS و هم برای اندروید قابل استفاده بوده و ابزاری برای برنامه‌نویسان موبایل می‌باشد تا بتوانند برنامه‌هایی با ظاهر زیبا و به صورت Cross platform (چندسکویی: قابل اجرا برروی انواع پلتفرم‌ها) ایجاد کنند.

فلاتر، از زبان برنامه‌نویسی دارت (Dart) که توسط خود شرکت Google توسعه داده شده، استفاده می‌کند. و اگر چنانچه تا پیش از این از زبان جاوا برای برنامه‌نویسی اندروید استفاده کرده باشید، این زبان بسیار به زبان جاوا نزدیک بوده و به راحتی می‌توانید آن را یاد بگیرید. همچنین، به‌جای استفاده از XML، از Layout Tree در فلاتر استفاده می‌شود. Layout Tree ها با استفاده از Widget ها شکل می‌گیرند و برای پیاده‌سازی اجزای ظاهری باید آنها را در Widget ها پیاده‌سازی کرد.

  • توسعه سریع (Fast Development)
  • UI ظریف و انعطاف‌پذیر (Expressive and Flexible UI)
  • عملکرد بومی (Native Performance)

چارچوب معماری در Flutter:

اجزای اصلی و تشکیل دهنده‌‍‌ی Flutter عبارتند از:

  • Flutter Engine
    موتور Flutter که به طور عمده در زبان ++C نوشته شده است؛ پشتیبانی از رندرهای سطح پایین را با استفاده از کتابخانه‌ی گرافیکی Skia گوگل انجام می‌دهد. موتور فلاتر، SDK ها را مثل SDK های مخصوص پلتفرم‌هایی که توسط اندروید و iOS ارائه می‌شوند، تعبیه می‌کند.
  • Foundation Library
    کتابخانه‌ی بنیاد، در دارت نوشته شده و کلاس‌ها و توابع اولیه‌ای را که برای ساخت برنامه‌های کاربری از فلاتر استفاده می‌کنند (مثل API ها برای ارتباط با موتور) رافراهم می‌کند.
  • Design-specific widgets
    طراحی UI در Flutter، شامل جمع‌آوری و یا ایجاد ویجت‌های مختلف می‌شود. چارچوب فلاتر، حاوی دو مجموعه ویجت است که مطابق با زبان‌های طراحی خاص ایجاد شده‌اند و آن دو، ویجت متریال دیزاین {برای اندروید} و ویجت‍‌های Cupertino {برای iOS} می‌باشند. ویجت متریال دیزاین، از زبان طراحی گوگل استفاده می‌کند و ویجت‌های Cupertino، از روش‌های طراحی iOS تقلید و استفاده می‌کنند.
فلاتر به سرعت در حال تبدیل شدن به یکی از محبوب‌ترین فریمورک‌ها برای توسعه‌ی اپلیکیشن‌های چند پلتفرمی موبایل است. اغلب توسعه‌دهندگان اندروید و iOS، امروزه بر این باور هستند که این فریمورک، از بسیاری از فریمورک‌های چند پلتفرمی رقیب مانند React Native و NativeScript سریع‌تر بوده و جایگزین مطمئن‌تری برای سال‌های آتی محسوب می‌شود.

خود گوگل نهایت تلاش خود را کرده است تا هر چه می‌تواند توسعه‌دهندگان بیشتری را به این فریمورک جذب کند. برای نمونه در کنفرانس I/O امسال، گوگل چند جلسه بررسی عمیق برگزار کرد که بر روی توسعه اپلیکیشن‌های سازگار با متریال دیزاین با استفاده از فلاتر تمرکز داشت. در طی یکی از این جلسه‌ها، گوگل اعلام کرد که فلاتر در حال تبدیل شدن به یکی از پلتفرم‌های درجه یک برای توسعه متریال دیزاین است.

قابلیت Hot Reload

یکی از ویژیگی‌های بسیار کاربردی در برنامه نویسی اندروید، امکان Instance Run است؛ که وقتی یک برنامه را بیلد (Build) می‌کنیم، تنها کدهایی که نسبت به نسخه‌ی قبل تغییر یافته‌اند، در برنامه اعمال می‌شوند. به این ترتیب، سرعت اجرای کدِ نوشته شده بالاتر می‌رود.

در Flutter نیز این امکان وجود دارد! Instance Run در فلاتر، به اندازه‌ی بارگذاری مجدد یک صفحه وب سریع است؛ اما Hot Reload محدود به سرعت اجرا نمی‌شود. اگر برنامه شما یکسری تغییرات در ظاهر خود داشته باشد که توسط کاربر استفاده کننده ایجاد شده است، Hot Reload این تغییرات را نگهداری می‌کند.

برای مثال، فرض کنید یک Label داریم و با کلیک بر روی یک دکمه، رنگ آن به رنگ سبز تغییر کرده است؛ حال اگر برنامه را مجددا اجرا کنیم، رنگ Label در آخرین وضعیت خود، یعنی رنگ سبز باقی می‌ماند! زیبا نیست؟!

مجموعه‌ای از آیتم های Material

از دیگر ویژگی های این فریمورک، این است که مجموعه‌ای از آیتم‌های Material را در خود دارد. دو دسته آیتم ظاهری در این Framework قرار دارد که Material Design برای اندروید و Cupertino برای iOS استفاده می‌شود. انتخاب و پیاده‌سازی هریک از این اجزاء ظاهری، بسیار آسان بوده و به این ترتیب، به برنامه‌نویسان کمک می‌کند تا در زمان کدنویسی صرفه‌جویی کنند. نکته‌ی قابل توجه در آیتم‌های ظاهری Flutter این است که دیگر نگران تغییر ابعاد صفحات در گوشی‌های گوناگون نیستیم و کدهای نوشته شده در ابعاد مختلف تغییر نمی‌کنند.

گاهی برنامه‌نویسان نیاز دارند تا تم (Theme) برنامه‌های iOS با تم برنامه‌های اندروید متفاوت باشد؛ این امکان نیز در Flutter قرار داده شده است که بتوان برای یک کد مشخص، تم‌های گوناگونی را تنظیم کرد.

پکیج‌ها (Packages)

یکی از مواردی که برنامه‌نویسان برای شروع یک زبان برنامه‌نویسی به آن اهمیت می‌دهند، تعداد پکیج‌هایی است که در آن زبان قابل استفاده می‌باشند. فلاتر تعداد زیادی از پکیج‌ها، مانند Firebase, Http Request و تصاویر را پشتیبانی می‌کند.


لینک‌های دانلود در ادامه قرار دارند؛ توجه داشته باشید که ممکن است برای دانلود، نیاز به چیزی برای عبور از تحریم داشته باشید.
آموزش راه اندازی Flutter
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک‌گذاری اطلاعات در هر زمینه‌ای
برنامه‌نویس فول استک

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه