آشنایی با فریم ورک فلاتر (Flutter) و کاربردهای آن
فلاتر یک فریم ورک متنباز برای ساخت اپلیکیشنهای موبایل است که در سال ۲۰۱۷ توسط شرکت گوگل معرفی شد. این کتابخانه با استفاده از زبان برنامهنویسی دارت نوشته شده است و به کمک آن، میتوانید برای اندروید و iOS اپلیکیشن بسازید. در مقایسه با فریم ورکهای مبتنی بر موبایل دیگر، فلاتر عمر کوتاهتری دارد. با یادگیری زبان دارت و فریم ورک فلاتر میتوانید رابطهای کاربری زیبا و دینامیک برای اپلیکیشنهای خود ایجاد کنید. همچنین، شرکت علی بابا از این فریم ورک برای ساخت اپلیکیشن خود استفاده کرده است. در این مقاله، بررسی خواهیم کرد که فریم ورک Flutter چیست و چه کاربردهایی دارد.
از آن جایی که جاوا زبان اصلی برنامهنویسی اندروید است و برنامهنویسان iOS از Swift برای توسعه اپلیکیشنهای موبایل استفاده میکنند، زمینهای برای استفاده از زبانهای دیگر در توسعه برنامههای موبایل فراهم شده است. با این حال، کار با جاوا به دلیل پیچیدگیهای خود، میتواند راحتی مورد نظر را در کار با زبانهایی مثل پایتون یا جاوا اسکریپت به همراه نداشته باشد. به همین دلیل، سایر زبانها نیز برای توسعه برنامههای موبایل مورد استفاده قرار میگیرند. به عنوان مثال، React یک راهحل نسبتاً آسان برای ساخت اپلیکیشنهای موبایل مبتنی بر جاوا اسکریپت است و فلاتر نیز یک پیادهسازی خوب از زبان دارت به شمار میآید.
به نظر میرسد که گوگل در حال تلاش برای ارتباط دادن سرویسهای مختلف خود به یکدیگر و تصاحب بازارهای مختلف نیست. پس از موفقیت بیسابقه اندروید، گوگل به دنبال توسعه یک پلتفرم جدید به نام Fuchsia است که از هسته لینوکس پشتیبانی نمیکند و از ریزهسته جدیدی به نام Zircon استفاده میکند. همچنین، گوگل زبان دارت و فریمورک Flutter را معرفی کرده است، که قرار بوده پلی برای ورود برنامههای موبایل به سیستم عامل جدید Fuchsia باشد.
اگر به یادگیری برنامه نویسی علاقه مند هستید توصیه میکنیم این مقاله را نیز مشاهده کنید: ۶ کانال برتر برای یادگیری لاراول (Laravel)
مروری بر معماری قدرتمند فریم ورک Flutter
پلتفرم دارت: زبان دارت هسته اصلی فلاتر را تشکیل میدهد. با این حال، گوگل برای توسعه سرویس خود و اضافه کردن قابلیتهای جدید، از زبانهای دیگر نیز استفاده کرده است.
موتور فلاتر: با زبان C++ نوشته شده و با استفاده از کتابخانه گرافیکی Skia از گوگل، به رندرگیری سطح پایین (Low Level) پشتیبانی میکند. این موتور کتابخانههای هسته فلاتر را به پروژه اضافه میکند؛ کتابخانههایی مانند انیمیشن، گرافیک، فایل، ورودی و خروجی شبکه و غیره.
کتابخانه Foundation: کتابخانه فاندیشن که به زبان دارت نوشته شده است، شامل تعدادی کلاس و تابع است و به برنامهها اجازه میدهد که با فلاتر ساخته شوند. به عنوان مثال، با استفاده از APIها به راحتی میتوان با موتور فلاتر ارتباط برقرار کرد.
ابزارکهای طراحی خاص: فلاتر از دو گروه ویجت استفاده میکند. یکی از آنها متریال دیزاین است که همان زبان طراحی معروف گوگل است و دیگری ویجت Cupertino است که طراحی اپل را شبیه سازی میکند.
بررسی مزایای استفاده از فریمورک فلاتر
در این قسمت، به بررسی مزایای فلاتر پرداخته شده است، با صرف نظر از اینکه رقبای آن چه امکاناتی دارند و بدون مقایسه کردن آن با آنها.
بازدهی مناسب: با توجه به اینکه فلاتر Cross Platform است، میتوانید با آن هم برای اندروید هم برای iOS اپلیکیشن بسازید. این شیوه میتواند در صرفه جویی در زمان و هزینههای خود کمک کند.
کدهای دارت بدون نیاز به تبدیل به کدهای Native میتوانند در فلاتر اجرا شوند، زیرا این مدل در داخل فریم ورک وجود دارد.
توسعه سریع و آسان: یکی از جذابترین قابلیتهای فلاتر Hot Reload نام دارد. با استفاده از آن، در صورت نیاز به تغییر بخشی از کد، بدون نیاز به ریستارت کردن شبیهساز، تغییرات اعمال شده قابل مشاهده هستند. این تکنیک در تغییر UI، اضافه کردن قابلیتهای جدید و دیباگ کردن پروژه بسیار مفید است.
یادگیری فلاتر و کار با آن راحت است. اگر قبلا با زبانهای شیءگرا (OOP) کار کرده باشید، شروع کار به سادگی امکانپذیر خواهد بود. حتی اگر هیچ شناختی از زبانهای برنامهنویسی ندارید، زبان دارت توسط گوگل به خوبی مستندسازی شده است و به عنوان یک زبان سطح بالا شناخته میشود. بنابراین، با شروع به کار با دارت، میتوانید به راحتی وارد دنیای فلاتر شوید.
سازگاری: از آنجایی که ابزارهای مورد استفاده ما (Widgets) بخشی از برنامه ما حساب میشوند نه پلتفرم یا سیستم عاملی که روی آن اجرا میشوند، در فلاتر وابستگی زیادی به نوع سیستم عامل یا نسخه آن نداریم. این یعنی پروژه ما روی نسخههای مختلف یک سیستم عامل به درستی اجرا خواهد شد و تست محصول سبکتر خواهد بود.
فریم ورک فلاتر و زبان برنامهنویسی دارت، هر دو اوپن سورس بوده و همچنین به صورت رایگان در دسترس هستند.
اگر نمی دانید برای شروع کار کدام زبان برنامه نویسی را انتخاب کنید توصیه میکنیم این مقاله را مشاهده کنید:
کدام زبان را برای برنامه نویسی انتخاب کنیم؟
موانع پیشرفت و استفاده گسترده از فریمورک فلاتر
یکی از دلایل اینه که برنامه نویسا که قبلا native برای سیستم عامل خودشون کد میزدن، الان باید سراغ یه زبان جدید برون. یعنی دارت. تو کشور ما اگه یه شرکت بخواد برای توسعه اپ خودش از فلاتر استفاده کنه، احتمالا با انتخاب محدودتر و انسانهای کمتری مواجه میشه نسبت به سایر تکنولوژیها چون دارت نسبتا جدیده. البته یادگیری زبان جدید و نسبتا راحت برای بیشتر برنامه نویسا چالش جدید و هیجان انگیزی به حساب میاد چون یه برنامه نویس موفق کسیه که همیشه تشنه یادگیری و تست چیزای جدیدتره.
اگه شما و یه گروه میخواید یک بازی بزرگ مثل کلاش آو کلنز رو بسازید، یا تصمیم دارید یه اپلیکیشن مالی با خدمات مختلف بسازید، شاید فلاتر بهتون پیشنهاد بشه. ولی در اون میانه راه ممکنه متوجه بشید که بعضی از مفاهیمی که مدنظرتون بود با فلاتر یا ناممکن هستن یا خیلی سختن. به عبارت دیگه فلاتر انتخاب خوبی برای ساخت بازیهای بزرگ و یا اپلیکیشنهای پیچیده نیست.
بسیاری از برنامهنویسان معتقدند که فلاتر هنوز به حد کافی برای ساخت برنامههای بزرگ نرسیده است و بهتر است در پروژههای سادهتر یا برای ساخت نمونه اولیه استفاده شود. همچنین، با توجه به جدید بودن آن، بسیاری از برنامهنویسان احساس ناامنی میکنند و علاقهای به استفاده از آن ندارند. به نظر میرسد، چرا باید زبان جاوا را که برای توسعه برنامههای اندرویدی استفاده شده است، رها کرد و به سمت یک تکنولوژی با استقرار کمتر رفت؟
در دفاع از فلاتر باید بگوییم که جدید بودن آن مشکلی نیست و باید به یک سرویس جدید که معرفی شده فرصت داد تا خودش را ثابت کند. همچنین، اگر انتقالی در اینترنت بزنیم، متوجه خواهیم شد که پروژههای بسیار خوبی با این فریمورک طراحی شدهاند و این نظریه که فلاتر گزینه مناسبی برای توسعه محصولات بزرگ نباشد، پایین آمده است.
میزان محبوبیت فلاتر
فقط یک ماه پس از انتشار اولین نسخه پایدار فلاتر، تعداد ۵۰ هزار ستاره برای این پروژه جدید گوگل در گیتهاب ثبت شده است. همچنین، در یک نظرسنجی آنلاین که توسط تیم تحقیقاتی فلاتر انجام شده، ۹۳% از شرکتکنندگان اعلام کردند که از این فریمورک “بسیار راضی” و “راضی” هستند. این عدد، نسبت به ۹۲% که در جولای ۲۰۱۸ ثبت شده بود، ۱% بالاتر است.
بازار اصلی محصولات اندرویدی، Google Play Store، و برای اپل نیز اپ استور به عنوان مارکت اختصاصی وجود دارد. در طول مقاله توضیح دادیم که فلاتر خیلی محبوب نیست، اما با آمار و ارقام میتوانیم این را تأیید کنیم. تا کنون، فقط ۵% از برنامههای منتشر شده در Google Play و App Store با فلاتر ساخته شدهاند. هرچند که فلاتر هم برای iOS و هم برای Android قابل استفاده است و ۸۱% از برنامهنویسان پروژههای خود را برای هر دو پلتفرم منتشر میکنند، اما در یک حرکت غیرعادی، نزدیک به ۱۲% از برنامهها فقط برای اندروید و ۷% آنها فقط برای iOS ساخته شدهاند. به نظر میرسد این گروه از برنامهنویسان بیشتر در حال تست فلاتر بودهاند.
جمع بندی پایانی و نتیجه گیری
در این مطلب، بررسی کردیم که فلاتر چیست و چه کاربردی دارد. فلاتر یک فریمورک یا Mobile SDK متن باز و رایگان است که توسط شرکت گوگل در سال ۲۰۱۷ معرفی و عرضه شده است. این فریمورک از زبان برنامهنویسی دارت پشتیبانی میکند و به برنامهنویسان کمک میکند تا با یک زبان واحد (دارت) برای اندروید و iOS، اپلیکیشن بسازند. هرچند که آینده زبان دارت در حال حاضر مشخص نیست، اما هنوز هم به دلیل مزایایی که دارد، میتواند یک گزینه ایدهآل برای ساخت برنامههای ساده و متوسط موبایلی باشد. اگر تجربهای در زمینه کار با فلاتر داشتهاید، خوشحال میشویم تجربیات خود را با ما در سون لرن به اشتراک بگذارید.