پرش به محتوا
Dart & Flutter

درباره دوره


با گسترش استفاده از گوشی هاي موبایل توسط افراد مختلف در سراسر جهان صنعت نـرم افـزار نیـز دچار تحولات بسیار زیادي در این چند سال شده است.

از سال 2007 همزمان با معرفی اولین نسخه از گوشی موبایل آیفـون توسـط شـرکت اپـل سیسـتم عاملهاي مورد استفاده در گوشی ها نیز دستخوش تغییرات بنیادي عظیمی شدند و بـه سـمت سیسـتم عاملی با محوریت اپلیکیشن ها سوق پیدا کردند، که نتیجه آن اسـتقبال بسـیار زیـاد مـردم از ایـن نـوع گوشیها شد  .

اپل با معرفی سیستم عامل iOS و گوگل با توسعه اندروید تقریباً تمام بازار گوشی هـاي هوشـمند و تبلت ها را به خود اختصاص دادند. تا قبل از این گسترش استفاده از گوشی هاي هوشمند ، برنامه هاي مربـوط بـه یـک گوشـی موبایـل توسط کمپانی از قبل توسعه پیدا میکرد و نصب نرم افزارهاي مختلـف روي گوشـی بـه شـکل امـروزي مرسوم نبود؛ اما در این میان بـا افـزایش اسـتفاده از ایـن دو سیسـتم عامـل نیـاز بـه توسـعه و سـاخت اپلیکیشن هاي کاربردي براي گوشی هاي هوشمند نیـز افـزایش پیـدا کـرد و بـا معرفـی فروشـگاه هـاي اختصاصی براي اپلیکیشن و بازيهاي موبایل، مهندسان نرم افـزار و توسـعه دهنـدگان بـا پلتفـرم نسـبتاً جدیدي در دنیاي کامپیوتر مواجه شدند . شرکت گوگل براي طراحی و ساخت نرم افزارهاي اندرویدي زبان جاوا را به عنوان زبـان رسـمی ایـن سیستم عامل معرفی کرد و نرم افزار اندروید استودیو را نیز به عنوان محیط توسعه به کاربران ارائه کرد . گوگل در سال 2017 همزمان با معرفی نسخه 3.0 اندرویـد اسـتودیو شـروع بـه پشـتیبانی از زبـان برنامه نویسی کاتلین در مسیر توسعه اندروید کرد. در نهایت، در سال 2019 گوگل زبان کاتلین را زبـان مناسب براي برنامه نویسی سیستم عامل اندروید برگزید و در حال حاضر زبان رسمی آن میباشد. در این میان رقیب اصلی اندروید؛ یعنی iOS که سیسـتم عامـل اختصاصـی گوشـی آیفـون و آیپـد میباشد ، از زبان برنامه نویسی C-Objective و محیط توسعه xCode بـراي سـاخت اپلیکیشـن هـاي موبایل استفاده میکند. اپل نیز مثل گوگل با گذشت زمان از زبان برنامه نویسی جدیدي به عنوان زبـان رسمی سیستم عامل گوشیهاي موبایل خود براي توسعه اپلیکیشن رونمایی کرد . زبان C-Objective تقریباً از دهه هشتاد تا به امروز به روزرسانی و تغییر بزرگی به خود ندیده بود؛ به همین دلیل در سال 2014 شرکت اپل زبان برنامه نویسی سویفت   swift را بـه عنـوان زبـان رسـمی براي توسعه اپلیکیشن هاي مربوط به تمام گجتهاي این شرکت؛ مثل آیفون، آیپد، ساعت هوشمند، لپ تاپ هاي مک بوك و تلویزیون اپل معرفی کرد. تا به اینجا متوجه شدیم که این دو سیستم عامل گوشیهاي هوشمند امـروزي هـر کـدام از زبـان و محیط هاي توسعه مختلفی براي طراحی اپلیکیشنهاي کاربردي استفاده میکنند، که ایـن بـدان معنـی است که اگر شخصی قصد داشته باشد براي هر دوي این گوشیها برنامه اي طراحی کند باید با دو زبـان برنامه نویسی مختلف کاملاً آشنا باشد و همچنین تقریباً به دوبرابر زمان بیشتـر نیـز نیـاز دارد؛ یـا اگـر شرکتی قصد داشته باشد نسخه اي مخصوص از محصـول خـود را در قالـب یـک اپلیکیشـن موبایـل بـه کاربران ارائه دهد، نیاز به استخدام تعدادي زیادي برنامه نویس براي هر کدام از این سیستم عامل ها دارد، که باعث افزایش هزینه توسعه و نگهداري آن میشود. اما در پلتفرم هاي مختلف؛ مثل طراحی یک سایت با چنین مشکلاتی مواجه نیسـتیم . وب سـایتی کـه طراحی میشود در تمام کامپیوترهاي سراسر دنیا و گوشی هاي موبایل، به طور کلـی هـر وسـیله اي کـه داراي یک مرورگر اینترنتی باشد، تقریباً به یـک شـکل نمـایش داده مـی شـود و نیـازي بـه اسـتفاده از ابزارهاي جداگانه براي آنها نداریم . این مسأله باعث شد تا مفهومی تحت عنوان برنامـه نویسـی چندسـکویی یـا platform Cross در توسعه اپلیکیشن هاي موبایل روز به روز بیشتر شنیده شود.  برنامه نویسی چندسکویی به شکل ساده؛ شامل فریمورك هایی هستند که با یـک بـار کدنویسـی بـه شما امکان دریافت خروجی هاي مختلف را میدهند؛ براي مثال شما با یکبار کدنویسی میتوانیـد بـر اي دو سیستم عامل اندروید و iOS خروجی مختلف بگیرید و از آن استفاده کنید. تا به امروز فریمورك هاي مختلفی براي این کار توسط شرکت هاي گوناگون معرفی شدهانـد ؛ امـا در ابتدا هیچکدام از آنها به دلیل ضعف هاي مختلفی که داشتند، نتوانستند انتظـارات توسـعه دهنـدگان را برآورده کنند؛ مانند فریمورك native React که توسط فیسبوك معرفی شد و از زبان جاوا اسکریپت استفاده میکرد و یا xamarin از طرف شرکت مایکروسافت که از زبان برنامه نویسی سی شـارپ قـدرت گرفته است. در این بین شرکتهاي دیگري هم بودند، که از فریمورك هاي چندسکویی مخـتص بـه خـود بـراي تولید محصولات مورد نیازشان استفاده میکردند؛ مثل شرکت اوبر که از فریمورك اختصاصی خـود بـه نام RIBs براي توسعه اپلیکیشن هاي موبایل استفاده میکنـد و باعـث صـرفه جـویی بسـیار زیـادي در هزینه و زمان شده است .   با پیشرفت روز به روز تکنولوژي، فریمورك هاي چندسکویی نیز خود را نسبت به گذشته دستخـوش تغییرات و بهینه سازيهاي مختلفی قرار داده اند تا پا در جاي اپلیکیشنهاي بـومی (برنامـه هـاي نوشـته شده توسط زبان رسمی آن سیستم عامل) بگذارند و بتوانند سهم بیشتـري از صـنعت نـرم افـزار داشـته باشند. شرکتهاي بزرگ دنیا هم با پذیرش این ابزارها سهم قابـل تـوجهی در پیشـرفت برنامـه نویسـی چندسکویی داشته اند؛ از جمله این شرکت ها میتوان به اینستاگرام، اوبر، گوگل پلی و … اشاره کرد.

در یک دهه اخیر صنعت نرم‌افزار با رشد بسیار زیادی در زمینه توسعه اپلیکیشن‌های موبایل روبرو شده است .

اکثر تلفن‌های هوشمند موجود از دو سیستم عامل IOS و یا اندروید استفاده می‌کنند که روز به روز بر تعداد استفاده کنندگان این سیستم‌عامل‌ها افزوده می‌شود. سال ۲۰۱۷ بود که گوگل فریمورک متن باز فلاتر را عرضه کرد. با استفاده از این فریمورک می‌تواند از برنامه نوشته شده برای هر دو سیستم عامل اندروید و IOS خروجی با کیفیت‌تر نسبت به سایر زبان‌های Cross Platform دریافت نمایید. فلاتر بر اساس زبان برنامه نویسی گوگل، یعنی دارت (Dart) توسعه یافته است. عملکرد اپلیکیشن‌هایی توسعه داده یافته با فلاتر همچون اپلیکیشن‌های Native است.

جالب است بدانید علی بابا، یکی از بزرگترین شرکت‌های چینی در دنیا به فلاتر اعتماد کرده و اپلیکیشن خود را با این فریم ورک ساخته است.

پیش نیازه های دوره


آشنایی با مباحث مقدماتی کامپیوتر و ICDL
داشتن دانش کلی الگوریتم و برنامه نویسی

مخاطب هدف دوره


فارغ التحصیلان رشته های کامپیوتر
فارغ التحصیلان دوره های فول استک مجتمع بین الملل
علاقه مندان به دنیای برنامه نویسی موبایل

سوالات متداول

برای یادگیری و کسب درآمد فلاتر بهتر است یا جاوا؟

بسیاری هنوز بر این باورند که برای یادگیری برنامه نویسی اندروید ، زبان برنامه نویسی جاوا بهتر است اما از زمان ارائه فریم ورک فلاتر با زبان برنامه نویسی دارت بسیاری از شرکت‌ها تمایل به ساخت اپلیکیشن‌های اندرویدی با فریم ورک فلاتر داشتند چراکه : • زبان برنامه نویسی دارت ساده‌تر است و برنامه نویس به سرعت می‌تواند بر روی این زبان مسلط شود. • یک بار کد زنی در فلاتر دو خروجی اندروید و IOS را همزمان به شما می‌دهد ، اینکار باعث می‌شود هزینه‌های شرکت به مراتب پایین بیاید و سرعت بالا آمدن اپلیکیشن زیاد‌تر شود. • کدهای دارت بدون نیاز به مدل OEM به کدهای Native تبدیل می‌شوند. • توسعه سریع و آسان : یکی از قابلیت‌های فریم ورک فلاتر قابلیت Hot Reload است که به شما امکان این را می‌دهد تا بدون نیاز به اجرای مجدد emulator در لحظه تغییرات برنامه خود را مشاهده کنید. • عدم وابستگی به نسخه‌های سیستم عامل خاص: در فلاتر وابستگی به سیستم عامل خاصی نیست یعنی یک برنامه فلاتر روی تمامی ورژن‌های سیستم عامل‌ها بدرستی اجرا می‌شود. • متن باز بودن : فریم ورک فلاتر و زبان برنامه نویسی دارت متن باز (Open Source) بوده و همین امکان به نسبت ساده دست بسیاری از برنامه نویسان را برای تغییرات گسترده باز می‌گذارد.

بازار کار فلاتر چطور است؟

اگر سری به آگهی‌های استخدامی در جابینجا و سایر وب سایت هایی استخدامی بزنید متوجه خواهید شد که حجم تمایل بازار برای جذب متخصص فلاتر بسیار بالاتر از سایر زبان‌ها و فریم ورک‌های برنامه نویسی اندروید است . حداقل دستمزد یک برنامه نویس فلاتر بی تجربه 10 میلیون تومان و حداکثر آن بالای ماهانه 70 میلیون تومان هم دیده شده است.

سرفصل های دوره

Part 1 : Introduction Dart language
1- Variables and data types
2- List review, Map review, difference between const and final
3- If, else if and switch-case control commands in Dart (Control Flow)
4- for, for each, while and do while loops in Dart
5- Library in Dart
6- Object Orientation in Dart
7- Definition of class (class) and constructor (Constructor) in Dart
8- Inheritance in Dart
9- Polymorphism in darts
10- The concept of abstraction or (Abstraction) - abstract class in Dart
11- The concept of interface in Dart
12- get, set and the concept of encapsulation in Dart
13- mixin in darts
14- Concurrency in Dart - async await

Part 2 : Introduction Flutter language
1- Flutter basic concepts
2- User interface challenges in Flutter
3- Basic concepts of State Management, Dependency injection and GetX package in Flutter
4- Concepts of connection to the server and Api
5- Refactoring, error handling
6- Advanced animation in Flutter
7- Di, StateManagement, Design Pattern and Bloc introduction
8- Socket concepts and Real Time communication
9- Flutter web and output web app (Pwa) from Flutter
اشتراک گذاری
وضعیت دوره : درحال برگزاری

اساتید دوره :

مدت زمان : 70 ساعت
تاریخ شروع : 1402/12/10
تقویم برگزاری کلاس :
دوشنبه 17 الی 19
پنج شنبه 17 الی 19
ظرفیت دانشجویان : 21 نفر
تعداد جلسات در هفته : 2 جلسه
محل برگزاری : آنلاین
دوره های دیگر در حال ثبت نام بین الملل
پک ویژه
درحال ثبت نام
NET 8 / Microservice.
حضوری / آنلاین
کد 1561
دوره برنامه نویسی Backend
با C# Asp.Net

مدت زمان

100 ساعت

تاریخ شروع

1403/03/20

محل برگزاری

لابراتوار A
پک ویژه
درحال ثبت نام
Master Network Administration
حضوری / آنلاین
کد 1559
دوره جامع ارشد شبکه
بصورت پک ویژه

مدت زمان

240 ساعت

تاریخ شروع

1403/02/22

محل برگزاری

لابراتوار B
پک ویژه
درحال ثبت نام
VMware
حضوری / آنلاین
کد 1558
دوره مجازی سازی
در شبکه های کامپیوتری

مدت زمان

45 ساعت

تاریخ شروع

1403/02/17

محل برگزاری

لابراتوار B

درخواست مشاوره ثبت نام

درصورت نیاز به مشاوره برای ثبت نام فرم درخواست زیر را تکمیل فرمایید.