فلاتر (Flutter) چیست؟

فلاتر (Flutter) چیست؟
Author Avatar
محمدهادی میردامادی
2 سال پیش
زمان مطالعه: دقیقه

در سال­‌های اخیر، محبوبیت اپلیکیشن‌­های موبایل بیشتر و بیشتر شده است. طیفی از افراد را به برنامه نویسی این اپلیکیشن­‌ها علاقه‌­مند کرده است. خوشبختانه ابزارهای برنامه نویسی بسیاری در دسترس توسعه دهندگانی است که می‌خواهند اپلیکیشن­‌های تلفن­‌های همراه را بسازند. در میان این ابزارها فلاتر (Flutter) وجود دارد که اخیراً خود را از رقیبانش متمایز کرده است.

 

فلاتر (Flutter) چیست ؟

فلاتر یک کیت توسعه نرم‌افزار UI منبع باز است که توسط گوگل ایجاد شده است. برای توسعه اپلیکیشن‌­های اندروید (Android)، ios، لینوکس(Linux)، ویندوز و وب از یک پایگاه کد استفاده می­‌شود. اولین نسخه fluttetr با نام (Sky) شناخته می­شد که روی سیستم عامل اندروید اجرا شد. به بیان ساده، فلاتر به شما این امکان را می­‌دهد که یک اپلیکیشن تلفن همراه فقط با یک پایگاه کد ایجاد کنید. این بدان معناست که شما می‌توانید از یک زبان برنامه­ نویسی و یک کد برای ایجاد دو برنامه مختلف برای اندروید و ios استفاده کنید(Cross platform). دلیل اینکه گوگل fluttetr را ساخت این بود که کار توسعه دهندگان را آسان‌­تر کند تا بهترین برنامه‌­های ممکن را بسازند. از توسعه دهندگان برنامه‌­ها انتظار می­‌رود ویژگی‌­های جدیدی برای برنامه‌­ها ایجاد کنند که سرعت و عملکرد برنامه را به خطر نیاندازد.

دقت کنید که fluttetr یک زبان برنامه نویسی نیست، بلکه یک فریمورک می­‌باشد. برای توسعه فلاتر، از یک زبان برنامه نویسی به نام دارت (Dart) استفاده می­‌شود. این زبان در اکتبر ۲۰۱۱ توسط گوگل ایجاد شد. اما در طی سال­‌های گذشته بسیار پیشرفت کرده است. دارت بر روی توسعه  front-end تمرکز دارد و شما می‌­توانید از آن برای ایجاد برنامه‌­های موبایل و وب استفاده کنید. همچنین برای توسعه اندروید از زبان‌­های برنامه نویسی جاوا و کاتلین (Java / Kotlin) نیز استفاده می­‌شود.

علاوه بر زبان برنامه نویسی دارت، از (c++)  نیز در فلاتر استفاده می‌­شود. اما به یاد داشته باشید که دارت و fluttetr به شما کمک می‌­کنند تجربه‌های شگفت‌انگیزی را در ios، اندروید و وب ایجاد کنید. با توجه به اهمیت فلاتر در توسعه موبایل و وب، ترکیب fluttetr و دارت یک گزینه عالی در این زمینه است.

فلاتر - flutter

Flutter – نحوه کار کردن آن

ویجت‌ها

ایده اصلی پشت فلاتر استفاده از ویجت‌ها است. با ترکیب ویجت‌ها توسعه‌دهندگان می‌توانند کل رابط کاربری را بسازند. هر یک از این ویجت‌ها یک عنصر ساختاری( مانند یک دکمه یا منو)، استایل‌ها( مانند قلم یا رنگ)، طرح‌بندی layout( مانند padding) و بسیاری دیگر را تعیین می‌کنند.

توجه داشته باشید که فلاتر از ویجت‌های OEM استفاده نمی‌کند، اما به توسعه‌دهندگان ویجت‌های آماده خود را که شبیه به کامپوننت‌های اندروید یا ios است(بر اساس متریال دیزاین یا Cupretino) را ارائه می‌دهد.

فلاتر همچنین نماهایی به سبک واکنش‌گرا به توسعه‌دهندگان می‌دهد. فلاتر از دارت استفاده می‌کند تا از مشکلات عملکرد ناشی از استفاده از یک زبان برنامه‌نویسی کامپایل شده به عنوان پل javaScript، جلوگیری کند. فلاتر دارت را به صورت AOT( ahead of time) به کد native برای چند پلتفرم کامپایل می‌کند.

به این ترتیب فلاتر می‌تواند بدون نیاز به پل جاوا اسکیپت که باعث ایجاد تعویض context بین کد جاوااسکیپت و native می‌شود، با پلت‌فرم ارتباط برقرار می‌کند. همانطور که می‌توانید تصور کنید کامپایل کردن به کد native باعث افزایش زمان راه‌اندازی برنامه می‌شود.

اکنون، Flutter تنها SDK موبایل است که بدون نیاز به پل جاوااسکریپت نماهای واکنش‌گرا را ارئه می‌دهد. به همین دلیل است که بسیاری از توسعه‌دهندگان موبایل آن را در پروژه‌های خود امتحان کرده‌اند.

در ادامه برخی دیگر از مزایای توسعه نرم‌افزار موبایل با Flutter آورده شده است.

زبان برنامه نویسی دارت

یکی از جالب‌ترین ویژگی‌های فلاتر زبانی است که از آن استفاده می‌کند، یعنی دارت. مانند سایر سیستم‌های واکنش‌گرا فلاتر نیز view tree را برای هر فریم جدید تازه می‌کند. برای دستیابی به آن، Flutter اشیاء زیادی ایجاد می‌کند که ممکن است بیش از یک فریم زنده نمانند. دارت از generational garbage collection استفاده می‌کند، که ثابت شده برای این نوع سیستم‌ها بسیار کار آمد است.

علاوه بر این، دارت دارای کامپایلر “tree shaking” است که فقط شامل کدی است که شما در برنامه خود نیاز دارید. حتی اگر فقط به یک یا دو ویجت نیاز دارید، می‌توانید از کتابخانه بزرگ ویجت‌های آن به صورت آزاد استفاده کنید.

و در آخر، دارت مخزن بسته‌های نرم‌افزاری برای گسترش قابلیت‌های برنامه را ارائه کرده است. به عنوان مثال، چند بسته ارائه داده است که به دسترسی به Firebase کمک می‌کند تا توسعه‌دهندگان بتوانند برنامه‌های بدون سرور بسازند. همچنین بسته‌های دیگری برای دسترسی به Redux یا دسترسی به خدمات سخت‌افزارهای پلت‌فرم مانند دوربین را آسان می‌کند.

flutter - فلاتر

Flutter باعث صرفه جویی در وقت و هزینه شما می‌شود

فلاتر ابزاری برای توسعه نرم‌افزار برای همه پلت‌فرم‌ها(cross-platform) است، این بدان معنی است که توسعه‌دهندگان می‌توانند از همان کد برای ساخت برنامه اندروید و ios استفاده کنند. توسعه cross-platform بهترین روش برای صرفه‌جویی در وقت و منابع در تمام مراحل است.

کارایی عالی

فلاتر به دو دلیل عملکرد فوق‌العاده‌ای را ارئه می‌دهد. اول استفاده از دارت است که به صورت native کامپایل می‌شود. دوم فلاتر ویجت‌های خاص خود را دارد، بنابراین نیازی به دسترسی به کامپوننت‌های اصلی ندارد. درنتیجه ارتباط کمتری بین برنامه و سیستم‌عامل وجود دارد. این دو ویژگی فلاتر اجرای سریع برنامه و مشکلات عملکردی کمتری را تضمین می‌کند.

توسعه سریع به لطف hot reload

فلاتر به دلیل hot reload مورد توجه بسیاری از توسعه‌دهندگان قرار گرفته است. Hot reload باعث می‌شود که که تغییرات اعمال شده در کد در شبیه‌سازها و سخت‌افزارها فوراً اعمال شود. کد تغییر یافته در کمتر از یک ثانیه اعمال خواهد شد. در تمام مدت، برنامه در حال اجرا است و توسعه‌دهندگان نیازی به اتلاف وقت برای راه اندازی مجدد آن ندارند.

Hot reload باعث شده است که ایجاد Ui، افزودن ویژگی جدید و رفع اشکلات آسان‌تر شود. اگر برنامه‌ای با خطا روبرو شود، می‌توانید آن را برطرف کنید و سپس استفاده از برنامه را ادامه دهید، انگار که هرگز رخ نداده است. حتی اگر مجبور باشید کل برنامه را دوباره راه‌‌اندازی کنید، می‌توانید مطمئن باشید که برنامه در کمترین زمان ممکن انجام می‌شود و روند توسعه را تسریع می‌کند.

کدام برنامه ها با فلاتر ساخته شده‌­اند؟

فلاتر ( flutter ) در دسامبر ۲۰۱۸ وارد بازار شد. اگرچه فلاتر یک چارچوب جدید است، اما با این وجود فضا و بازار صنعت را با موفقیت اشغال کرده است. در حال حاضر، علی بابا (Alibaba) و تنسنت (Tencent) از این سیستم عامل استفاده می­‌کنند. گوگل حتی از فلاتر در توسعه برنامه (Google Ads) استفاده کرده است. در ادامه به برنامه­‌های ابتکاری دیگری که با استفاده از فلاتر ساخته می­‌شوند و نمونه‌­ای از توانایی آن برای ساخت برنامه‌­ها در دسته‌­های مختلف اشاره می‌­کنیم: (Reflectly app)، (eBay motors)، (Hamilton musical app) و …

علاوه بر برنامه‌­های تلفن همراه، فلاتر از تولید محتوای وب ارائه شده با استفاده از فنآوری‌­های وب پشتیبانی می‌­کند مثل: HTML ، CSS و JavaScript . همچنین fluttetr برای برنامه‌­های موبایلی که می­‌خواهند هم در اندروید و هم در  ios اجرا شوند(Cross platform)، بهینه شده است. فلاتر برای برنامه‌­های تعاملی که می­‌خواهید در صفحات وب یا دسک تاپ خود اجرا کنید بسیار مناسب است. البته شما با فلاتر نمی‌­توانید یک سری از کارها را انجام دهید. مثلا شما نمی‌­توانید از فلاتر برای ساخت برنامه برای tvos ، watchOS، کارپلی(CarPlay) یا اندروید آتو (Android Auto) استفاده کنید. همچنین fluttetr محدویت‌­های زیادی در پشتیبانی از Wear OS دارد.

مزایا و معایب فلاتر چیست؟

یکی از بزرگترین مزایای fluttetr توسعه بین پلتفرمی است که توسعه دهندگان می­‌توانند همزمان برنامه­‌های جذابی را در سیستم عامل­‌های ios و اندروید بسازند. علاوه بر این، برنامه نویسی فلاتر باعث صرفه‌جویی در وقت و هزینه بیشتری نسبت به توسعه‌­های گذشته می­‌شود. fluttetr دارای مزایای زیادی نسبت به رقباست. این مزایای ذاتی زبان برنامه نویسی و مجموعه­‌ای از ابزارهای توسعه است که به flutter اجازه می­‌دهد تا مشکلات و معایبی را حل کند که سایر فناوری­‌ها از پس آن بر نمی‌­آیند.

البته فلاتر معایبی نیز دارد که از جمله آن­ها این است که flutter فضای زیادی را اشغال می­‌کند و بارگیری یا به روزرسانی آن­ها بیشتر طول می­‌کشد. fluttetr با استفاده از کتابخانه خود تا حدودی طراحی مواد و مولفه­‌های مخصوص ios و اندروید را تکرار می­‌کند، اما کاملاً یکسان نیست.

چرا  باید فلاتر را یاد بگیریم ؟

 فلاتر توسط گوگل پشتیبانی می­‌شود. همین جمله باعث می­‌شود بدانیم که زبان دارت و fluttetr قرار است پیشرفت­‌ها و بروز رسانی‌­های زیادی داشته باشند. flutter تازه شروع به کار کرده و پیش‌بینی می­‌شود پیشرفت­‌های زیادی داشته باشد. fluttetr هم خروجی iosو هم اندروید را به ما می­‌دهد. این یعنی ما برنامه‌­ی (Cross platform) می­نویسیم و می­‌توانیم اپلیکشین خود را در اختیار همگان قرار دهیم. این موضوع یعنی صرفه­‌جویی در وقت و هزینه و بازدهی بالاتر. امیدوارم با این مقاله تا حدودی با فلاتر آشنا شده باشید.

برچسب‌ها
#اپلیکیشن
#فلاتر
#برنامه_نویسی
دیدگاه
دیدگاهی تاکنون ثبت نشده