محمد سنچولی
یکتا سلطانی
Udemy
Angela Yu
ساسان صفری
سپهر شکیبی
کاظم مریدی
محمد سنچولی
اگر به آموزش برنامه نویسی در حوزه توسعه و ساخت اپلیکیشنهای موبایلی علاقهمند باشید، فلاتر یکی از فریمورکهایی است که میتواند شما را هم در برنامهنویسی اندروید و هم در برنامهنویسی iOS پشتیبانی کند. ازآنجاییکه این روزها بازار توسعه اپلیکیشنهای گوشیهای هوشمند داغتر از همیشه است و هر کسبوکاری، حتی کوچکترین آنها، یک برنامه کاربردی ارائه داده است، آموزش فلاتر نیز اهمیت بیشتری پیدا کرده است.
ما در مکتبخونه نیز به این فکر افتادیم که این اهمیت را با روشی درست پاسخ دهیم و انواع دوره آموزشی فلاتر بهصورت جامع به شما عزیزان ارائه دهیم. البته قبل از یادگیری فلاتر به شما پیشنهاد میکنیم مزایا و معایب، بازار کار و آینده شغلی این فریمورک برنامهنویسی را بخوانید تا با دید بازتری نسبت به آموزش فلاتر، قدم بردارید.
زبان برنامه نویسی فلاتر که به آن دارت (Dart) میگویند، در ابتدا بهعنوان جایگزینی برای جاوا اسکریپت در نظر گرفته شده بود. این زبان بهخاطر رایگان و منبعباز بودن آن بسیار محبوب شد. در حال حاضر، محبوبیت فلاتر با محبوبیت React Native در گیتهاب (GitHub) و StackOverflow برابر است. گوگل از فلاتر برای ماژولهای مختلف گوگل اسیستنت (Google Assistant) و رابط کاربری Google Home Hub استفاده میکند. به علاوه، در حال حاضر 50 هزار برنامه فلاتر در گوگل پلی استور موجود است و تعداد آنها همچنان با سرعت بالایی در حال افزایش است. Alibaba Group، eBay، Groupon و سایر ارائهدهندگان تجارت الکترونیکی معروف از فلاتر برای یکپارچه کردن ظاهر اپلیکیشنهای موبایل و وب خود استفاده میکنند.
در سال 2015 چیزی به نام فلاتر وجود نداشت و این باعث به وجود آمدن جنگ مرورگر میشد. توسعهدهندگان کروم در این فکر بودند که چگونه میتوانند مرورگر خود را بهینه کنند. در نتیجه این افکار تیم توسعه تصمیم گرفتند که CSS را از موتور مرورگر جدا کنند. تمام این موارد چیزی را به وجود آورد که امروزه به آن فلاتر میگوییم.
فلاتر بهعنوان یک فناوری منبع باز (Open Source) برای کدنویسی و ایجاد اپلیکیشنهای نیتیو (native) برای برنامه نویسی اندروید و iOS توسط گوگل معرفی شد. اولین نسخه پایدار فلاتر در دسامبر 2018 و در رویداد Flutter Live بهطور رسمی ارائه شد.
زبان فلاتر یک زبان برنامهنویسی منبع باز و چندمنظوره است. این زبان در اصل توسط گوگل ساخته شده و یک زبان شیءگراست که با سینتکس زبان C نوشته شده است. برخلاف سایر زبانهای برنامهنویسی، دارت از آرایهها پشتیبانی نمیکند، اما مفاهیم برنامهنویسی مانند رابطها و کلاسها در این زبان قابل پشتیبانی هستند. از کلکسیونهای دارت میتوان برای تکرار ساختارهای داده مانند آرایهها، ژنریکها و تایپ اختیاری استفاده کرد.
زبان برنامهنویسی dart همانطور که در بخش قبل به آن اشاره شد یکی از زبانهای برنامهنویسی محبوب حال حاضر است که با رویکرد رفع ایرادات جاوا اسکریپت در سال 2011 توسط گوگل منتشر شد. البته که بسیاری معتقدند خود این زبان ایرادات زیادی دارد و نمیتواند برای رفع ایرادات یک زبان قدرتمند مثل جاوا اسکریپت عرضه شود، اما این روزها، حداقل در کشور خودمان دارت جایگاه ویژهای کسب کرده و میتوان پیشبینی کرد این جایگاه در آیندهای نهچندان دور ویژهتر نیز خواهد شد.
جالب است بدانید که اگر دانش ابتدایی از سی پلاس پلاس یا جاوا اسکریپت دارید، آموزش برنامهنویسی دارت برایتان مثل آب خوردن میشود چراکه این زبان به لحاظ syntax تشابه زیادی به دو زبان ذکر شده دارد. از سویی اگر بر شیء گرایی تسلط کافی داشته باشید، میتوانید بهراحتی و در کوتاهترین مدت توسط زبان برنامهنویسی dart به یک اپلیکیشن دولوپر تبدیل شوید.
اگر به یادگیری این زبان علاقهمند هستید، دوره آموزش فلاتر مکتبخونه را از دست ندهید.
فریمورک فلاتر ویژگیهای زیر را به توسعهدهندگان خود ارائه میدهد:
فریمورک فلاتر که به زبان برنامه نویسی دارت نوشته شده است، شامل موتور فلاتر، کتابخانه Foundation و ویجتها (widget) میشود. رویکرد توسعه در فلاتر با سایر فریمورکها متفاوت است. در فلاتر باید توسعه از انتها شروع شود؛ این بدان معناست که کاربر باید قبل از شروع توسعه بعضی از عناصر، تصویر کاملی از نوع UI (رابط کاربری) در ذهن خود داشته باشد.
ایده اصلی فلاتر این است که توسعهدهندگان میتوانند با ترکیب ساده ویجتهای مختلف، کل رابط کاربری را ایجاد کنند. رابط اپلیکیشن از عناصر مختلف تودرتو تشکیل شده است که میتواند هرکدام از اشیا باشد. با ترکیب این ویجتها توسعهدهنده میتواند برنامه را کاملاً شخصیسازی کند.
ویجتها میتوانند روی یکدیگر هم تأثیر بگذارند و از توابع داخلی استفاده کنند تا به تغییرات خارجی پاسخ دهند. ویجتها عناصر مهم رابط کاربری هستند و با مشخصات طراحی اندروید، iOS و اپلیکیشنهای وب معمولی مطابقت دارند. با فلاتر توسعه دهندگان میتوانند ویجتهای سفارشی ایجاد کنند که بهراحتی با ویجتهای موجود ترکیب شوند.
برای توسعه اپلیکیشنها، توسعهدهندگان خود را یک فریمورک موبایل چند پلتفرمی محدود نمیکنند. در واقع آمار نشان میدهد که اکثر توسعهدهندگان (42 درصد) از React Native استفاده میکنند. میزان استفاده از فلاتر در سال 2020 (39 درصد) در مقایسه با سال 2019 (30 درصد) رشد چشمگیری داشته است. از جمله دلایل این رشد چشمگیر میتوان به موارد زیر اشاره کرد:
سازندگان فلاتر با اضافه کردن ویژگیهایی مانند ویجتها به این فناوری فرایند ارائه یک اپلیکیشن موبایل با عملکرد عالی و چند پلتفرمی را سریعتر کردند.
معماری فلاتر برای ساختن رابط کاربری زیبا و سفارشی طراحی شده است. هدف اصلی فلاتر این است که ساخت رابط کاربری را برای طراحان و توسعهدهندگان سریعتر و لذتبخشتر کند. فریمورک فلاتر به قدری قدرتمند است که میتواند هر آنچه را که طراحان میخواهند، ترسیم کند.
فلاتر یک فناوری جدید است و هنوز ایرادات و محدودیتهای خاص خود را دارد. البته انتظار میرود که این محدودیتها در آیندهای نزدیک برطرف شود. بعضی از آنها عبارتاند از:
یکی از بزرگترین مشکلات فلاتر این است که اپلیکیشنهایی که با این فریمورک توسعه داده میشوند، حجم نسبتاً بالایی دارند. حتی با وجود افزایش ظرفیت ذخیرهسازی تلفنهای همراه، این مشکل وجود دارد. البته حجم زیاد اپلیکیشنهای فلاتر باعث کاهش زمان اجرا و افزایش سرعت میشود. با این حال باید بدانید که اولویت کاربر با سرعت اپلیکیشن است یا حجم پایین.
فلاتر یک ابزار نوپا برای توسعه اپلیکیشنهاست؛ بنابراین هنوز از نظر بستهها و کتابخانههای شخص ثالث چندان غنی نشده است.
فلاتر برای اندروید و توسط گوگل توسعه داده شده است؛ بنابراین ممکن است نگرانیهایی برای توسعهدهندگان iOS وجود داشته باشد. اخیراً فلاتر بهروزرسانیهایی انجام داده که باعث سازگار شدن فلاتر با iOS شده است؛ بنابراین این محدودیت در حال برطرف شدن است.
فلاتر از برنامه نویسی دارت استفاده میکند. با وجود اینکه این زبان یک زبان شیءگراست اما به خوبی زبانهایی مانند C، C#، جاوا و جاوا اسکریپت نیست. آموزش برنامه نویسی فلاتر با دارت ممکن است برای مبتدیان دشوار باشد.
خوشبختانه ما در مکتبخونه توانستیم دورههای آموزشی کاربردی و مفیدی را تاکنون برای فراگیران عزیز فراهم کنیم. یکی دیگر از آموزشهای محبوبی که توسط مکتبخونه برای شما عزیزان در دسترس قرار گرفته، آموزش زبان برنامهنویسی dart است که بخشی از دوره آموزشی جامع فلاتر را در برمیگیرد. امیدواریم در این جلسه از دوره آموزشی فلاتر به طور کامل با آموزش برنامه نویسی دارت آشنا شوید و با کمک مفاهیم بیان شده در این جلسه و به دنیای برنامهنویسی دارت، سلامی تازه بدهید.
این زبان نیز بهمانند بسیاری از زبانهای برنامهنویسی دیگر، مزایا و معایب خود را دارد که بد نیست آنها را قبل از اقدام به آموزش زبان برنامهنویسی دارت، بررسی کنیم.
1. سرعت اجرای بسیار بالایی دارد.
2. آموزش زبان dart توسط گوگل ارائه شده است پس یادگیری آن از دقیقترین منبع ممکن میشود.
3. نصب و یادگیری دارت بسیار ساده است.
4. قابلیت بالایی در تولید اپلیکیشنهای وب و موبایلی دارد.
5. کسانی که با جاوا اسکریپت آشنایی دارند بهتر آن را درک میکنند.
1. کمبود موقعیتهایی شغلی دارت باوجوداینکه این زبان قابلیت خود را ثابت کرده، همچنان وجود دارد.
2. پشتیبانی native باید توسط برنامهنویسان فراهم شود.
3. این زبان هنوز بهعنوان زبانی درحالتوسعه شناخته میشود.
در سالهای اخیر فلاتر به یکی از محبوبترین فریمورکهای توسعه اپلیکیشن تبدیل شده است. بهصورتی که هزاران اپلیکیشن در پلی استور گوگل و سایر فروشگاههای اپلیکیشن وجود دارد. ازجمله دلایلی که آموزش flutter را به شما توصیه میکنیم، عبارتاند از:
یادگیری و استفاده از فلاتر در مقایسه با فریمورکهای مشابه از جمله React Native، Swift و جاوا بسیار راحتتر است. تنظیم فلاتر روی دستگاههای ویندوز، مک یا لینوکس یک فرایند ساده است. از طرفی گوگل دارت را در پکیج نصب فلاتر قرار داده است و بدین ترتیب تمام اجزا همزمان نصب میشوند.
فلاتر از ابزارها (ویجت) استفاده میکند که استفاده از رابط کاربری را بسیار آسان کرده است. در واقع تمام ویژگیهایی که برای ساخت یک اپلیکیشن نیاز دارید، بهعنوان بلوکهای سازنده یا ابزار ارائه شدهاند. این ابزارها روند توسعه را تسهیل کرده و به توسعهدهندگان امکان کنترل کامل توسعه برنامه را میدهند.
استفاده فلاتر از زبان برنامه نویسی دارت آن را از سایر ابزارهای توسعه برنامههای چند پلتفرمی مانند Xamarin، lonic، React Native و غیره متمایز میکند. ابزارهای دیگر از پل برای برقراری ارتباط با محیط نیتیو (native) استفاده میکنند. این کار روی عملکرد، سرعت و کیفیت انیمیشن تأثیر میگذارد. در حالی که دارت از پل استفاده نمیکند و وظایفی مانند پردازش تصویر و جزئیات گرافیکی را بهصورت داخلی مدیریت میکند. این کار سرعت و کیفیت کار را بسیار افزایش میدهد.
MVPها یا محصولات قابل حیات امروزه بخش مهمی از فرایند توسعه برنامه هستند. کل ایده ساخت یک MVP حول سرعت و کارایی میچرخد؛ بنابراین امروزه شرکتها ترجیح میدهند که با ابزارهایی کار کنند که بتوانند به سرعت به نتایج خوبی برسند. فلاتر میتواند این نیاز شرکتها را برآورده کند، بنابراین به سرعت در حال تبدیل شدن به یک فریمورک محبوب است.
از طرفی کدهای فلاتر هم در اندروید و هم در iOS کار میکنند و دیگر نیازی به چندین دستگاه یا اپلیکیشن نیست. عملکرد یک برنامه ساخته شده با فلاتر با عملکرد یک برنامه نیتیو برابر باشد.
IDE یا محیط توسعه یکپارچه نرمافزاری است که ابزارهای لازم برای توسعه برنامه را فراهم میکند. ابزارهایی مانند ویرایشگر سورس کدها، دیباگر، کامپایلر، مفسر و غیره در یک برنامه جمع شده و روند توسعه نرمافزار را ساده میکنند.
مزیت فراگیری آموزش فلاتر این است که این فریمورک برای IDEهای مختلف افزونه (Extension) دارد؛ مانند Android Studio، Visual Studio Code که دو ویرایشگر کد محبوب در جهان هستند. بنابراین شما میتوانید IDE مورد استفاده خود را انتخاب کنید.
گوگل بهطور مدام فلاتر و دارت را بهبود میدهد. افزایش محبوبیت و استفاده از فلاتر یک جامعه پشتیبانی قوی و فعال را ایجاد کرده است. این جامعه تمام کتابخانهها و ابزارهای فلاتر، انجمنهای پشتیبانی، اسناد آنلاین و غیره را شامل میشود.
راه صحیح یادگیری مهارتهای فلاتر شرکت در دوره فلاتر و دریافت گواهینامه است. مکتبخونه دوره های فلاتر پروژه محور را برای شما عزیزان تدارک دیده است که. این دورهها دانش لازم را برای شروع کار در زمینه توسعه برنامه فراهم میکند. در پایان هردوره گواهینامه شرکت در این دورهها تقدیم دانشجویان میشود.
در حالت کلی اگر قصد یادگیری فلاتر را دارید، باید مباحث مهم و مرتبط با این فریمورک را گامبهگام آموزش ببینید:
گام اول این است که شما کامل به مباحث شیءگرایی مسلط باشید. این نوع برنامهنویسی بر پایه مفهوم شیء شکل گرفته است. شیءگرایی در توسعه اپلیکیشنهای موبایلی اهمیت ویژهای دارد. بدین منظور میتوانید دورههای آموزش شیءگرایی مکتبخونه را مشاهده کنید و به طور حرفهای و عملی این نوع برنامهنویسی را یاد بگیرید.
فلاتر یک جعبهابزار یا فریمورک است که از زبان برنامه نویسی دارت استفاده میکند؛ بنابراین بهتر است قبل از شروع کار با فلاتر، برنامهنویسی به این زبان را یاد بگیرید.
از فریمورک فلاتر بیشتر برای توسعه اپلیکیشنهای موبایل استفاده میشود؛ بنابراین توصیه میکنیم قبل از شروع فلاتر با توسعه اپلیکیشن موبایل آشنایی داشته باشید. یادگیری یکی از فریمورکهای مهم ساخت اپلیکیشن موبایل میتواند کار شما را برای شروع آموزش برنامه نویسی فلاتر راحتتر کند. بعضی از این فریمورکها عبارتاند از: اندروید، iOS Native، React Native، Xamain، Ironic و Swift.
برای نصب فلاتر باید به سیستمعامل خود توجه کنید. فلاتر روی انواع سیستمها از جمله ویندوز، مک OS، لینوکس و غیره قابل نصب است. راهنمای نصب مربوط به هریک از سیستمعاملها را میتوانید در سایت https://flutter.dev/docs/get-started/install مشاهده کنید.
ازآنجاییکه فلاتر یکی از بهترین و محبوبترین فریمورکهای توسعه اپلیکیشنهای موبایل و وب است، قطعاً آینده روشنی دارد. قدرتمندترین رقیب فلاتر در دنیای امروز React Native محسوب میشود؛ بهطوریکه آمار استفاده از این دو فریمورک بسیار به هم نزدیک است.
البته با توجه به قدیمی بودن React همچنان این فریمورک توانسته است جایگاه خود را در بازار توسعه اپلیکیشنهای چند پلتفرمی حفظ کند. اما شک نداشته باشید که با رشد روزافزون فلاتر، میزان تقاضا برای توسعهدهندگان فلاتر بیشتر خواهد شد.
فلاتر در سالهای اخیر رشد چشمگیری در توسعه اپلیکیشنهای موبایل داشته است؛ بهطوریکه ماهانه تقریباً 500 توسعهدهنده از این فریمورک استفاده میکنند. وجود نام گوگل در این فریمورک قطعاً یک پشتوانه محکم برای فلاتر محسوب میشود و رشد آن را تضمین میکند. پروژههای بزرگ و معروفی که با استفاده از فلاتر نوشته شدهاند، عبارتاند از:
این سرویسها هم در دستگاههای اندروید و هم iOS موجود است که با استفاده از فلاتر نوشته شدهاند. به عنوان مثال برنامه Stadia با استفاده از Flutter SDK ساخته شده است. همچنین از این فریمورک در اپلیکیشنهای تلفن همراه برای مدیریت Google Ads استفاده شده است.
این اپلیکیشن یک فروشگاه خردهفروشی بزرگ است که به Alibaba Group تعلق دارد. انتخاب فلاتر به آنها کمک کرد تا در وقت خود به شدت صرفهجویی کنند؛ چرا که با استفاده از کدها و ابزارها میتوانستند به راحتی برنامه خود را ایجاد و حفظ کنند.
این برنامه که به کاربران امکان خرید و فروش وسایل نقلیه با تلفن هوشمند را میدهد، با استفاده از فلاتر نوشته شده است. تیم مهندسی eBay تنها یک سال فرصت داشتند تا وارد بازار شوند؛ از این رو فلاتر بهترین انتخاب برای آنها بود تا بتوانند در سریعترین زمان ممکن پروژه خود را به سرانجام برسانند.
فلاتر از نوآورانهترین تکنولوژیها در حوزه موبایل است که امروزه شاهد رشد روزافزون و فوقالعاده آن در بازار هستیم. بدون شک این فریمورک تا سالهای سال جایگاه خود را در بازار حفظ خواهد کرد و سهم وسیعی از آن را به خود تعلق خواهد داد؛ بنابراین شاید هماکنون بهترین زمان برای شروع آموزش فلاتر باشد. اگر نمیخواهید هیچ زمانی را برای یادگیری فریمورک فلاتر از دست ندهید، به دورههای آموزش برنامه نویسی flutter مکتبخونه سر بزنید.