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