آموزش کامل فریم ورک فلاتر
  • مدرس دوره امیرحسین معلمی
  • زمان کل آموزش 70 ساعت
  • حجم پکیج 9 گیگ
  • وضعیت پیشنیاز آموزش برنامه نویسی دارت
  • سطح آموزش مبتدی تا پیشرفته
  • فرمت آموزش شامل ویدیوهای فارسی
  • تعداد ویدیو 536
  • سیستم مورد نیاز ویندوز، مک
  • آخرین آپدیت تابستان 1404
  • دسته آموزشی پکیج‌های آموزشی
  • امتیاز دانشجویان
    4.9

    4.9 / 5. 252

  • قیمت
    3997000 تومان

آموزش فریم‌ورک فِلاتر

تومان ۳,۹۹۷,۰۰۰

شناسه محصول: flutter دسته:
مشاهده و دانلودِ پَکِیج

تست 4 گزینه‌ایی

مهارتِ خودت رو بِسَنج شِرکت در آزمون
nabegheha rules

شَرایطِ اِستفاده از

محصولاتِ سایتِ نابغه ها مشاهدهِ قَوانین
nabegheha rules

آموزش فریم‌ورک فِلاتر

آموزش فلاتر !!

می‌دونم چرا اینجایی. احتمالاً سرت از دست اطلاعات ضد و نقیض در مورد برنامه‌نویسی موبایل داره سوت می‌کشه. دوستت میگه برو کاتلین یاد بگیر، فلان مقاله میگه ری‌اکت نیتیو بهتره، و تو این وسط موندی که برای آینده شغلیت کدوم مسیر رو انتخاب کنی. شاید هم مثل خیلی‌های دیگه، آگهی‌های استخدامی رو زیر و رو کردی و با خودت گفتی «انگار بازار کار برای فلاتر تعریف چندانی نداره».

اگه این فکرها تو سرته، چند دقیقه به من گوش کن. می‌خوام یه حقیقت مهم رو در مورد بازار کار و آینده برنامه‌نویسی بهت بگم که نگاهت رو برای همیشه به یادگیری فلاتر تغییر میده.

راز آگهی‌های کاتلین

بیا خودمونی باشیم. وقتی یه شرکت بزرگ آگهی استخدام برنامه‌نویس کاتلین می‌ده، پیام اصلیش این نیست که «فلاتر به درد نمی‌خوره». پیام واقعی اینه: «ما سال‌ها پیش کلی هزینه کردیم و یه اپلیکیشن با کدهای نیتیو نوشتیم. الان نمی‌تونیم به این راحتی کل پروژه رو عوض کنیم چون هم ریسکش بالاست و هم بودجه‌ش رو نداریم. برای همین دنبال کسی می‌گردیم که بتونه کدهای قدیمی ما رو مدیریت کنه».

flutter 1

اون مدیر پروژه در دلش آرزو می‌کنه که کاش تیمش تخصص فلاتر داشت تا با نصف هزینه و زمان، همون اپلیکیشن رو برای هر دو پلتفرم اندروید و iOS توسعه بده. اینجاست که تو به عنوان یه متخصص فلاتر، یک برگ برنده داری. تو قرار نیست فقط دنبال «آگهی استخدام فلاتر» بگردی؛ تو قراره اون متخصصی باشی که راه‌حل‌های هوشمندانه، سریع‌تر و پول‌سازتر رو به شرکت‌ها پیشنهاد میده.

فلاتر یا بقیه؟ یک مقایسه واقعی

خب اول از همه، این فلاتر که این همه ازش حرف می‌زنیم، اصلاً چی هست؟

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

فلاتر تو دنیای برنامه‌نویسی دقیقاً همین کارو می‌کنه. یه جعبه ابزاره که گوگل ساختتش تا کارت رو راحت کنه. باهاش یه بار کد می‌نویسی، بعد هم برای گوشی اندرویدی، هم آیفون، هم سایت، هم برنامه ویندوز و مک، خروجی می‌گیری! جادوی اصلیش همینه. تازه، برنامه‌هایی که باهاش می‌سازی هم فوق‌العاده خوشگل از آب در میان، هم مثل موشک کار می‌کنن. دلیل سرعتش هم اینه که کُدت صاف میره تبدیل به زبون اصلی خود گوشی میشه، هیچ مترجم و واسطه‌ای این وسط نیست که کارو لنگ کنه.

فلاتر چطوری کار میکنه؟

حالا که فهمیدی فلاتر چه چیز باحالیه، بیا ببینیم در عمل چطور رقیباش رو می‌ذاره تو جیبش:

در برابر کاتلین و جاوا (نیتیو): بزرگترین مزیت فلاتر اینه که با یک تیر دو نشون می‌زنی. یک بار کد می‌نویسی و همزمان خروجی اندروید و iOS می‌گیری. این فقط به معنی صرفه‌جویی در زمان و پول نیست. یعنی ظاهر و حس برنامه تو در هر دو گوشی یکسان و یکپارچه‌ست. اگه یه باگ پیدا بشه، یک جا درستش می‌کنی و مشکل در هر دو پلتفرم حل میشه. این ویژگی برای یک توسعه‌دهنده تنها یا یک تیم کوچیک، مثل یک ابرقدرت می‌مونه.

در برابر ری‌اکت نیتیو: با اینکه ری‌اکت هم کراس‌پلتفرمه، اما برای خیلی از کارها به یک «پُل» (Bridge) برای ارتباط با کدهای نیتیو نیاز داره. این مثل اینه که بخوای با یه نفر حرف بزنی ولی همیشه به مترجم نیاز داشته باشی. این مترجم کار رو کند می‌کنه. اما فلاتر زبان مادری سیستم‌عامل رو بلده و مستقیم باهاش حرف می‌زنه. نتیجه‌ش میشه اپلیکیشن‌هایی که مثل برق کار می‌کنن و هیچکس نمی‌تونه تشخیص بده با کد نیتیو نوشته نشده.

react vs flutter 1
react vs flutter 2 new
react vs flutter 3
react vs flutter 4
react vs flutter 5 new
react vs flutter 6
react vs flutter 7
react vs flutter 8
react vs flutter 9
react vs flutter 10
react vs flutter 11

در برابر زامارین: با تمام احترامی که برای تکنولوژی مایکروسافت قائلیم، این روزها جامعه برنامه‌نویسی و پشتیبانی گوگل از فلاتر اونقدر قوی و گسترده شده که زامارین عملاً از رقابت کنار رفته. تعداد پکیج‌های آماده و آموزش‌های فلاتر به شدت بیشتره و این یعنی برای هر مشکلی، یک راه‌حل آماده وجود داره.

مقایسه فلاتر با ری اکت نیتیو

خودت قضاوت کن! یه نگاه به جدول بالا بنداز. اصلاً لازم نیست من چیزی بگم، اعداد خودشون داد می‌زنن! سرعت فلاتر و نیتیو مو نمی‌زنه و جفتشون مثل بنز کار می‌کنن. ولی ری‌اکت نیتیو… خب، خودت داری می‌بینی دیگه! رسماً له شده، هم CPU رو خورده هم حافظه رو.

حالا شاید بگی: «خب اگه سرعتش مثل نیتیوه، چرا همون نیتیو رو یاد نگیریم؟» اینجاست که فلاتر برگ برنده‌شو رو می‌کنه! چون تو داری همون قدرت رو با کلی امتیاز اضافه به دست میاری. اول اینکه یاد گرفتنش خیییییییلی از برنامه‌نویسی نیتیو راحت‌تره. دوم و مهم‌تر از همه: یه بار کد می‌زنی، هفت جا خروجی می‌گیری! روی اندروید، iOS، وب، ویندوز، مک، لینوکس، حتی ساعت هوشمند!

خلاصه کلام: زحمت کمتر، قدرت بیشتر. دیگه از این بهتر چی می‌خوای؟

غول‌ها هم فلاتری شدن

اینکه می‌گیم آینده با فلاتره، یه ادعای توخالی نیست. شرکت‌های بزرگی که همیشه چند قدم از بقیه جلوترن، این رو فهمیدن.
شرکت BMW برای ساخت سیستم‌های هوشمند داخل خودروهای جدیدش از فلاتر استفاده کرده. غول پرداخت دنیا یعنی Google Pay بخش‌های مهمی از اپلیکیشنش رو با فلاتر بازنویسی کرده. و مهم‌تر از همه، سیستم‌عامل معروف اوبونتو (Ubuntu)، برای نرم‌افزارهای اصلی و حتی صفحه نصب جدیدش، کاملاً به فلاتر اعتماد کرده. وقتی این اسم‌های بزرگ روی فلاتر سرمایه‌گذاری می‌کنن، یعنی تو داری مهارتی رو یاد می‌گیری که برای سال‌های آینده تضمین شده‌ست.

فقط برای موبایل نیست!

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

چرا این دوره بهترین انتخابه؟

خب، من مدرس این دوره هستم. با تجربه‌ی آموزش دادن به بیش از ۱۳ هزار نفر، مسیری رو طراحی کردم که هر کسی با هر سطح دانشی بتونه ازش استفاده کنه. روش تدریس من خیلی ساده و داستان‌محوره. جوری مفاهیم رو توضیح میدم که انگار داریم با هم گپ می‌زنیم و همزمان یه پروژه واقعی رو جلو می‌بریم. هدف من اینه که تو بعد از این دوره فقط یه سری کد بلد نباشی، بلکه «تفکر برنامه‌نویسی» رو یاد بگیری تا بتونی هر ایده‌ای رو به واقعیت تبدیل کنی. برای همین این کامل‌ترین دوره فلاتر برای کسانی است که می‌خواهند به صورت عملی و عمیق یاد بگیرند.

خب، قدم اول چیه؟

ببین، تدریس ساده به معنی معجزه نیست. هر مهارت ارزشمندی، یک نقطه شروع درست و حسابی داره. نقطه شروع فلاتر و اولین قدم برای ورود به این دنیای جذاب، یادگیری زبان برنامه‌نویسی دارت (Dart) هست که خود گوگل اون رو ساخته. اصلاً نگران نباش! ما فکر اینجا رو هم کردیم و کامل‌ترین و جدیدترین آموزش دارت رو هم برات آماده کردیم.
اینم یه پیشنهاد رفاقتی و ویژه: چون هدف ما موفقیت توئه، با تهیه این دوره فلاتر، یک کد تخفیف خیلی خوب برای خرید دوره دارت هم از ما هدیه می‌گیری. اینطوری کل مسیر یادگیریت تکمیل میشه.

نتیجه بچه‌های دوره

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

 

قراره چی بسازیم؟

حرف زدن دیگه بسه. بزرگترین فرق این دوره با آموزش‌های پراکنده توی اینترنت اینه که تو اینجا تیکه تیکه کد یاد نمی‌گیری، بلکه پروژه‌های کامل و واقعی رو از صفر تا صد می‌سازی. پروژه‌هایی که می‌تونی با افتخار توی رزومه‌ت بذاری. این ویدیوها رو ببین تا دقیقاً متوجه بشی که در انتهای این دوره چه توانایی‌های شگفت‌انگیزی به دست میاری.

 
 

سرفصل ها

1 آشنایی با مدرس و پکیج
  • مدرس دوره کیست؟ مشاهده
  • آشنایی با فولدرها
  • بهترین روش برای یادگیری برنامه‌نویسی مشاهده
  • آموزش حل مشکلات
2 آشنایی با فریم‌ورکِ فِلـاتِر
3 نصب و راه اندازی فِلـاتِر
4 ساختِ یک پروژه از صِفر
  • ایجاد پروژه جدید با VSCode
  • معرفی فولدرهای پروژه
  • شرح فولدر android و ios
  • فولدر lib و main.dart
  • فایل‌های پیکربندی و pubspec.yaml
  • شروع نوشتن برنامه ساده
  • متد main و runApp
  • ویجت Text و اجزای آن
  • معرفی child و children در ویجت‌ها
  • معرفی ویجت MaterialApp
  • صحبت در مورد متریال دیزاین
  • تفاوت MaterialApp با حالت ساده
  • صحبت در مورد سیستم‌های طراحی
  • تفاوت بین Fluent Design و Material Design
  • نحوه‌ی استفاده از سازنده‌ها در فلاتر
  • صحبت درباره‌ی key در فلاتر
  • آموزش استفاده از داکیومنت فلاتر
5 معرفی ویجت‌های اولیه و مهم
  • معرفی ویجت MaterialApp
  • صحبت درباره‌ی Routes و Home
  • صحبت درباره‌ی Debug Banner و Semantics Debugger
  • صحبت درباره‌ی Material Theme
  • تعریف تم سفارشی با ThemeData
  • تغییر رنگ‌ها و فونت‌ها در تم
  • مقایسه ThemeData با CSS در طراحی وب
  • معرفی ویجت Scaffold
  • صحبت درباره‌ی ویجت SafeArea
  • خواندن داکیومنت Scaffold و اهمیت آن
  • پیاده‌سازی PreferredSizeWidget
  • معرفی ویجت AppBar
  • افزودن آیکون و اکشن
  • درست کردن AppBar اختصاصی
  • معرفی ویجت BottomAppBar
  • اتصال به bottomNavigationBar
  • ارتباط با FAB (FloatingActionButton)
  • استفاده از CircularNotchedRectangle
  • معرفی ویجت آیکن (Icon)
  • اضافه کردن فونت آیکن اختصاصی
  • تنظیمات سایز آیکن
  • تعیین رنگ آیکن
  • صحبت درباره‌ی ویجت IconButton
  • کاربرد semanticLabel در screen reader
  • ساختار فولدر Assets
  • معرفی ویجت Images
  • آموزش فایل pubspec.yaml
  • اضافه کردن فونت فارسی اختصاصی
  • رفع باگ فونت‌ها
  • اضافه کردن عکس از فولدر
  • اضافه کردن عکس از اینترنت
  • تنظیم رنگ و سایز عکس
  • جادوی BlendMode
  • ساخت قاب با FrameBuilder
  • بالا بردن کیفیت عکس
  • ماتریس و افکت‌های خاص
  • معرفی ویجت Text و کاربردهای ساده
  • آموزش کار با TextDirection
  • آموزش کار با TextOverflow
  • نحوه‌ی استفاده از Clip, Ellipsis, Fade, Visible
  • آموزش کار با Wrap, Soft Wrap
  • آموزش کار با Style ,TextStyle
  • آموزش کار با TextAlign, TextDirection
  • معرفی ویجت TextStyle
  • آموزش کار با BackgroundColor
  • آموزش کار با Paint
  • آموزش کار با Decoration & TextDecoration
  • نحوه‌ی استفاده از Underline, Overline, LineThrough
  • نحوه‌ی استفاده از FontWeight, LetterSpacing
  • معرفی ویجت RichText
6 ساختارِ ویجت‌ها در فِلـاتِر
  • چرا چیدمان مهمه؟
  • ویجت‌ها چند دسته‌ان؟
  • ویجت Center چطوری کار می‌کنه؟
  • فرق بین Single Child و Multi Child ویجت
  • چطوری چند ویجت وسط بچینیم؟
  • اهمیت استفاده از کلاس‌ها
  • معرفی StatelessWidget و StatefulWidget
  • ساخت کلاس MyApp از StatelessWidget
  • مدیریت کد و تقسیم فایل‌ها
  • قابلیت Hot Reload چطوری کار میکنه؟
  • قوانین فلاتر برای StatelessWidget
7 ویجت‌های تک فَرزند
  • معرفی ویجت Container و کاربردهایش
  • نحوه‌ی استفاده از ویجت Alignment
  • نحوه‌ی استفاده از Box Decoration
  • نحوه‌ی استفاده از Decoration Image
  • نحوه‌ی استفاده از Gradient ,Linear Gradient
  • نحوه‌ی استفاده از ویجت Border & Border.All
  • نحوه‌ی استفاده از ویجت Border Radius
  • نحوه‌ی استفاده از ویجت Box Shadow
  • آموزش کامل کار با ویجت Padding و Margin
  • نحوه‌ی استفاده از EdgeInsets.All, Only, Symmetric, FromLTRB
  • آموزش کامل کار با ویجت Constrained Box
  • آموزش کامل کار با ویجت Sized Box
  • نحوه‌ی استفاده از Double.infinity
  • نحوه‌ی استفاده از Sized Box.Expand
  • آموزش کامل کار با ویجت Fractionally Sized Box
  • نحوه‌ی استفاده از Flexible
  • نحوه‌ی استفاده از heightFactor, widthFactor
  • آموزش کامل کار با ویجت Limited Box
  • فرق بین Sized Box و Limited Box
  • آموزش کامل کار با ویجت Fitted Box
  • آموزش کامل کار با ویجت BoxFit
  • آموزش کامل کار با ویجت Aspect Ratio
8 ویجت‌های چَند فَرزند
  • آموزش کامل کار با ویجت Column, Row
  • نحوه‌ی استفاده از mainAxisAlignment, crossAxisAlignment
  • نحوه‌ی استفاده از verticalDirection, mainAxisSize
  • معرفی ویجت Spacer
  • نحوه‌ی استفاده از Flexible & Flex
  • نحوه‌ی استفاده از Expanded
  • آموزش کامل کار با ویجت Wrap
  • نحوه‌ی استفاده از Spacing, runSpacing
  • آموزش کامل کار با ویجت ListView
  • نحوه‌ی استفاده از scrollDirection, Reverse, Physics
  • آموزش کامل کار با ویجت listView.builder
  • آموزش کامل کار با ویجت Divider
  • آموزش کامل کار با ویجت GridView
  • آموزش کامل کار با ویجت GridView.count
  • آموزش کامل کار با ویجت GridView.builder
  • معرفی SliverGridDelegateWithFixedCrossAxisCount
  • معرفی SliverGridDelegateWithMaxCrossAxisExtent
  • آموزش کامل کار با ویجت Stack
  • آموزش کامل کار با ویجت Card
  • آموزش کامل کار با ویجت RoundedRectangleBorder
  • آموزش کامل کار با ویجت SingleChildScrollView
9 ویجت‌های کاربر پَسند
  • ویجت‌هایی که stateful هستند
  • فرق بین stateful و stateless
  • نحوه‌ی ساخت ویجت‌های stateful
  • صحبت درباره‌ی آبجکت State
  • صحبت درباره‌ی متود setState
  • صحبت درباره‌ی context و BuildContext
  • صحبت درباره‌ی متود createElement
  • صحبت درباره‌ی StatelessElement
  • آموزش کار با ویجت Form
  • صحبت درباره‌ی GlobalKey
  • صحبت درباره‌ی TextFormField
  • صحبت درباره‌ی InputDecoration
  • صحبت درباره‌ی Regex
  • آموزش کار با ویجت CheckBox
  • آموزش کار با ویجت CheckboxListTile
  • آموزش کار با ویجت Switch
  • آموزش کار با ویجت SwitchListTile
  • آموزش کار با ویجت RadioButtons
  • آموزش کار با ویجت RadioListTile
  • آموزش کار با ویجت DropDownButton
  • نحوه‌ی استفاده از DropdownMenuItem
  • آموزش کار با ویجت TextButton
  • آموزش کار با ویجت TextButton.styleFrom
  • آموزش کار با ویجت TextButton.icon
  • آموزش کار با ویجت OutlinedButton
  • آموزش کار با ویجت OutlinedButton.styleFrom
  • آموزش کار با ویجت IconButton
  • آموزش کار با ویجت Ink
  • آموزش کار با ویجت ShapeDecoration
  • آموزش کار با ویجت ElevatedButton
  • آموزش کار با ویجت ElevatedButton.icon
  • آموزش کار با ویجت ElevatedButton.styleFrom
  • آموزش کار با ویجت inkwell و inkresponse
  • آموزش کار با ویجت FloatingActionButton
  • آموزش کار با ویجت FloatingActionButton.extended
  • آموزش کار با ویجت FloatingActionButton.extended
  • آموزش کار با FloatingActionButtonLocation
  • آموزش کار با CircularNotchedRectangle
  • آموزش کار با ویجت Slider
  • آموزش کار با ویجت SliderTheme
  • آموزش کار با RectangularSliderTrackShape
  • آموزش کار با RoundSliderThumbShape
  • آموزش کار با RoundSliderOverlayShape
  • صحبت درباره‌ی RangeValues
  • آموزش کار با ویجت RangeSlider
  • صحبت درباره‌ی RangeLabels
  • معرفی پروژه‌های آماده برای Slider
  • آموزش کار با ویجت BottomNavigationBar
  • آموزش کار با BottomNavigationBarType
  • آموزش کار با ویجت SnackBar
  • آموزش کار با ScaffoldMessenger.of
  • آموزش کار با SnackBarBehavior
  • آموزش کار با SnackBarAction
  • آموزش استفاده از کلاس Duration
  • آموزش استفاده از PersistentBottomSheet
  • آموزش استفاده از showModalBottomSheet
  • آموزش استفاده از PopupMenuButton
  • آموزش استفاده از PopupMenuItem
  • آموزش استفاده از کلاس DateTime
  • آموزش استفاده از showDatePicker
  • آموزش استفاده از showDialog
  • آموزش استفاده از ویجت AlertDialog
  • آموزش استفاده از showDialog
10 پروژه اول
  • انجام پروژه اول
  • انجام تمرین توسط دانشجو
11 ریسپانسیو کردنِ بَرنامه‌ها
  • صحبت درباره ریسپانسیو
  • صحبت درباره MediaQuery.of
  • صحبت درباره MediaQuery.maybeOf
  • علت ارورهای مرتبط با متودهای Of دار
  • آموزش استفاده از Builder
  • آموزش استفاده از SystemChrome
  • آموزش استفاده از WidgetsFlutterBinding
  • ساخت یک صفحه ریسپانسیو مانند آپارات
  • آموزش استفاده از LayoutBuilder
12 مسیردهی صفحات در فِلـاتِر
  • آموزش استفاده از ویجت Navigator
  • آموزش استفاده از ویجت MaterialPageRoute
  • آموزش استفاده از Push و Pop
  • آموزش استفاده از NamedRoutes
  • آموزش استفاده از PushNamed
  • آموزش مسیریابی پیشرفته در فلاتر
  • آموزش انتقال اطلاعات بین صفحات
  • آموزش استفاده از ModalRoute.of
13 اِستفاده از اَنیمیشن‌ در فِلـاتِر
  • اصلاً انیمیشن چیه؟ چرا مهمه؟
  • تعریف انیمیشن و کاربردش تو رابط کاربری
  • مفهوم فریم (frame) و نرخ فریم (fps)
  • تفاوت 60fps و... + Refresh Rate نمایشگرها
  • چرا انیمیشن تجربه کاربر رو بهتر می‌کنه؟
  • استفاده از setState برای تغییر حالت
  • آموزش کار با Implicit Animations
  • آموزش کار با ویجت AnimatedOpacity
  • آموزش کار با ویجت AnimatedAlign
  • حرکت دادن لوگو با انیمیشن
  • آموزش کار با ویجت AnimatedContainer
  • آموزش کار با کلاس AlignmentDirectional
  • آموزش کار با ویجت AnimatedDefaultTextStyle
  • آموزش کار با ویجت AnimatedPadding
  • آموزش ساخت انیمیشن اختصاصی
  • آموزش کار با کلاس Animation
  • آموزش استفاده از AnimationController
  • آموزش استفاده از CurvedAnimation
  • آموزش استفاده از Tween
  • صحبت درباره‌ی Vsync
  • آموزش استفاده از SingleTickerProviderStateMixin
  • آموزش استفاده از ColorTween
  • آموزش استفاده از TextStyleTween
  • آموزش استفاده از IntTween
  • آموزش استفاده از ScaleTransition
  • آموزش استفاده از SlideTransition
  • آموزش استفاده از FadeTransition
  • آموزش استفاده از RotationTransition
  • آموزش استفاده از متود Init
  • معرفی PageRouteBuilder برای انیمیشن
  • ساخت متد _createRoute با pageBuilder
  • تعریف انیمیشن با transitionsBuilder
  • استفاده از SlideTransition با Tween و drive
  • افزودن Curve برای نرمی انیمیشن
  • ویجت Hero چیه و چه کاربردی داره؟
  • استفاده از Hero با tag مشترک
  • کلیک‌پذیر کردن با GestureDetector
  • استفاده از placeholderBuilder
14 پیشرفته‌سازی ظاهر اَپلیکیشن
  • آموزش Sliver در فلاتر
  • ویجت Sliver چیه و کجا به کار میاد؟
  • تفاوت Sliver با لیست‌ویو و گرید‌ویو
  • کی باید از Sliver استفاده کنیم؟
  • معرفی CustomScrollView
  • اضافه‌کردن Sliver به CustomScrollView
  • ساخت اپ‌بار با SliverAppBar
  • ویژگی expandedHeight چیه؟
  • تنظیم title و آیکن برای SliverAppBar
  • فرق pinned، floating و snap
  • نمایش لیست با SliverList
  • تنظیم delegate توی SliverList
  • فرق بین BuilderDelegate و ListDelegate
  • چرا Builder بهینه‌تره؟
  • مثال با SliverChildBuilderDelegate
  • مثال با SliverChildListDelegate
  • نکات مهم برای ساخت لیست حرفه‌ای با Sliver
  • معرفی مفهوم Grid و تفاوتش با List
  • آشنایی با SliverGrid و کاربردش توی اسکرول
  • تعریف gridDelegate داخل SliverGrid
  • استفاده از SliverGridDelegateWithMaxCrossAxisExtent
  • معرفی خاصیت maxCrossAxisExtent
  • تنظیم فاصله بین آیتم‌ها
  • استفاده از SliverChildBuilderDelegate
  • معرفی خاصیت crossAxisCount
  • معرفی Gesture و کاربردش
  • تعریف GestureDetector
  • بررسی onTap برای تشخیص کلیک
  • ویجت‌هایی که خودشون Gesture دارن
  • معرفی InkWell برای ایجاد ریپل افکت
  • تفاوت GestureDetector و InkWell
  • آپدیت UI با setState بر اساس کلیک
15 جعبه‌ابزار پنهان فلاتر
  • معرفی کلی Future و Stream توی دارت
  • ویجت FutureBuilder برای نمایش داده‌های Async
  • ساخت متغیر Future با مثال delay
  • استفاده از builder و دریافت AsyncSnapshot
  • فرق Future و Stream توی فلاتر و دارت
  • تعریف Future و مثال سفارش غذا
  • تعریف Stream و مثال نقاله غذا
  • ساخت Stream با تابع async* و yield
  • ساخت StreamBuilder و استفاده از initialData
  • نمایش داده‌های stream و وضعیت لودینگ
  • معرفی ویجت Dismissible
  • کاربرد Dismissible توی برنامه‌های ایمیل
  • ساخت لیست با ListView
  • استفاده از کلاس UniqueColorGenerator
  • اضافه کردن ویجت Dismissible
  • استفاده از onDismissed برای حذف آیتم
  • تغییر رنگ‌ها با rebuild و setState
  • محدود کردن جهت Swipe
  • استفاده از confirmDismiss برای گرفتن تایید
  • نمایش AlertDialog
  • تنظیم dismissThresholds و movementDuration
  • معرفی کلی Draggable و DragTarget
  • نمای اصلی ویجت وقتی درگ نشده
  • محدود کردن جهت درگ
  • استفاده از data برای انتقال داده
  • بررسی اجازه پذیرش داده با onWillAccept
  • نمایش پیام با showSnackBar
  • ساخت بازی با Draggable و DragTarget
  • معرفی کلی DraggableScrollableSheet
  • نقش builder و ScrollController
  • ایجاد یک لیست با DraggableScrollableSheet
  • تنظیم initialChildSize، minChildSize
  • معرفی InteractiveViewer و کاربردش
  • ساختار پایه استفاده از InteractiveViewer
  • فعال‌سازی و غیرفعال‌سازی زوم
  • معرفی Drawer (منوی تلگرام)
  • قرار دادن Drawer داخل Scaffold
  • استفاده از DrawerHeader
  • استفاده از UserAccountsDrawerHeader
  • ساخت منوی شبیه تلگرام
  • تنظیم elevation برای Drawer
  • معرفی TabBar و کاربردش
  • استفاده ساده از DefaultTabController
  • تعریف آیکن‌ها در تب‌ها با ویجت Tab
  • نمایش محتوای هر تب با TabBarView
  • تغییر رنگ خط زیر تب‌ها با indicatorColor
  • اسکرول تب‌ها با isScrollable
  • استفاده از NestedScrollView و SliverAppBar
  • تنظیمات SliverAppBar مثل pinned و floating
  • معرفی MaterialBanner و کاربردهاش
  • استفاده از content برای متن اصلی بنر
  • گرد کردن گوشه‌ها با ClipRRect و borderRadius
  • استخراج بنر در یک متد جداگانه
  • استفاده از setState برای مخفی کردن بنر
  • معرفی ویجت Card و کاربردهاش
  • ساختار پایه Card با استفاده از ListTile
  • قرار دادن چند Card داخل یک Column
  • ساخت Card پیشرفته‌تر با چند ویجت داخلی
  • سفارشی‌سازی splashColor در InkWell
  • معرفی ویجت Chip و کاربردهاش
  • ساخت ساده‌ترین Chip با label متنی
  • اضافه کردن avatar به Chip
  • نمونه‌سازی چند Chip به صورت داینامیک
  • معرفی کلی ProgressIndicator و کاربردش
  • ساخت ساده‌ترین CircularProgressIndicator
  • معرفی LinearProgressIndicator
  • معرفی CupertinoActivityIndicator برای استایل iOS
  • معرفی کلی MaterialStateProperty
  • چرا MaterialStateProperty به وجود اومد؟
  • مثال ساده استفاده از MaterialStateProperty.all
  • تفاوت متود All با متود ResolveWith
  • اضافه کردن BuildContext به کلاس سفارشی
  • معرفی MaterialStateColor به عنوان زیرکلاس
  • مقدمه و کاربرد DataTable برای نمایش جدول
  • تعریف سطرها (Rows) با DataRow
  • استفاده از DataCell برای هر سلول
  • تنظیمات ظاهری DataTable
  • استفاده از ListView برای اسکرول کردن جدول
  • تغییر رنگ سطرها با MaterialStateProperty
  • خاصیت sortAscending و sortColumnIndex
  • اضافه کردن قابلیت onSort در DataColumn
  • استفاده از خاصیت headingRowColor
  • معرفی Tooltip و کاربردش
  • پیچیدن ویجت دلخواه داخل Tooltip
  • نوشتن متن راهنما داخل message
  • اهمیت Tooltip برای Accessibility
  • کمک به کم‌بیناها و خواندن توسط Screen Reader
  • شخصی‌سازی ظاهر Tooltip
  • معرفی ویجت Divider و کاربردش
  • آشنایی با property های مهم Divider
  • تعریف DividerThemeData داخل ThemeData
  • معرفی ویجت Stepper و کاربردش
  • مدیریت مرحله جاری با currentStep
  • ساخت Stepper با فرم‌های ورودی
  • کنترل اعتبار سنجی فرم‌ها
  • معرفی SVG و تفاوتش با تصویرهای معمولی
  • ویجت CustomPaint چیه؟
  • کلاس CustomPainter و متد paint
  • متد shouldRepaint و کاربردش
  • سیستم مختصات صفحه در فلاتر
  • کشیدن خط ساده با drawLine
  • تعریف رنگ و ضخامت با Paint
  • استفاده از Path برای رسم شکل
  • تفاوت drawLine و drawPath
  • کشیدن منحنی با quadraticBezierTo
  • سایت‌های آموزشی و ابزار آنلاین
  • نمایش SVG با SvgPicture.asset
  • مقایسه کشیدن دستی و استفاده از SVG
  • معرفی کلی ویجت‌های Clip در فلاتر
  • کاربرد کلی ClipOval برای برش دایره‌ای عکس
  • ساخت کلاس CustomClipper
  • نقش متد shouldReclip در بازسازی برش
  • آشنایی با ویجت BackdropFilter
  • تعریف فیلتر بلور با ImageFilter.blur
  • معرفی کلی ویجت Transform و کاربردش
  • آشنایی با Transform.translate
  • تعریف پارامتر offset در Transform.translate
  • معرفی Transform.rotate برای چرخش ویجت
  • کاربرد origin در Transform.rotate
  • معرفی Transform.scale
  • معرفی ویجت RotatedBox و کاربردش
  • تفاوت RotatedBox با Transform.rotate
  • چرخش ویجت با زاویه‌های دقیق
  • ترکیب RotatedBox با سایر ویجت‌ها
16 وصل کردن فِرانت و بَک‌اند
  • معرفی HTTP و HTTPS و تفاوتشون
  • ساختار URL و اجزای مهمش
  • مفهوم HTTP Request چیه؟
  • ساختار هدر درخواست و اطلاعات مهم داخلش
  • مفهوم HTTP Response و اجزای اون
  • داستان پیدایشش API
  • معنی API و کاربردش؟
  • ویندوز و استفاده از API
  • ساختار کلی SDK و قسمت‌های مختلف آن
  • معماری‌ وب سرویس GraphQL
  • معماری‌ وب سرویس RPC
  • معماری وب سرویس RESTful
  • دسته‌بندی API از نظر دسترسی
  • وب‌سرویس اتصال سایت به بانک
  • اهمیت یادگیری API
  • معنی REST و کاربردش در رد و بدل دیتا
  • مثال نمایش پست‌های اینستاگرام با API
  • ارتباط API با پروتکل HTTP
  • ابزارهای کار با API: مرورگر، curl و Postman
  • سایت تست رایگان API برای تمرین
  • مثال ارسال داده با POST در curl
  • کاربرد PUT برای ویرایش اطلاعات
  • نصب نرم‌افزار Postman
  • آموزش کامل PostMan برای API
  • مشکل تحریم Postman و معرفی جایگزین
  • اهمیت API تستی برای فرانت‌اند دولوپرها
  • احراز هویت با استفاده از API وردپرس
  • استفاده از وردپرس برای API
  • بررسی فعال بودن API با /wp-json/
  • ارسال درخواست POST برای تغییر محتوا
  • دیدن نتیجه تغییرات در سایت
  • پیاده‌سازی درخواست‌ها در فلاتر
  • مثال عملی کار با API وردپرس
  • کار با API و کتابخونه‌های http و dio
  • تنظیمات دسترسی اینترنت
  • نوشتن تابع async با متد GET و Future
  • تبدیل JSON به Map با jsonDecode
  • متد toJson برای تبدیل مدل به JSON
  • بررسی وضعیت پاسخ (statusCode)
  • استفاده از async/await
  • معرفی Record در Dart
  • ساخت مدل Todo با factory و Map
  • احراز هویت Basic Auth و API Key
  • تولید کد Authorization با افزونه vscode
  • گرفتن پست‌ها از وردپرس با API
  • مدل‌سازی داده‌های تو در تو
  • نمایش اطلاعات یک پست روی صفحه
  • مدیریت خطاهای API
  • حل ارورهای مرورگر در فلاتر وب
  • امنیت و نگهداری کلید API
  • ابزار تبدیل JSON به کلاس دارت
  • ارسال و آپدیت داده در API
  • ارسال اطلاعات به وردپرس
  • نمایش وضعیت ارسال با FutureBuilder
  • استفاده از SmartRefresher برای رفرش
  • مدیریت رفرش با RefreshController
  • بروزرسانی state در زمان رفرش
  • نهایی‌سازی رابط کاربری
  • ساخت متد حذف پست در فایل API
  • نمایش آیکن حذف کنار هر پست
  • استفاده از Dismissible برای حذف کشیدنی
  • ساخت متد ویرایش پست توسط API
  • مقدمه اتصال فلاتر به ووکامرس
  • رمزگذاری کلیدها با Base64
  • ساخت متد fetchProducts
  • نمایش محصول به شکل کارتی
  • استفاده از زرین‌پال در سیستم‌های اختصاصی
  • آشنایی با مستندات زرین‌پال
  • یادگیری اصول خواندن داکیومنت API
  • ارسال درخواست POST به آدرس زرین‌پال
17 ذخیره‌سازی دائمی اطلاعات
  • ذخیره‌سازی اطلاعات روی گوشی
  • فرق بین ذخیره در رم و هارد دیسک
  • ذخیره تم اپلیکیشن (دارک / لایت)
  • آشنایی با Shared Preferences
  • چه چیزهایی رو نباید داخل SharedPreferences ذخیره کنیم؟
  • مثال‌هایی از کاربردهای واقعی SharedPreferences
  • فعال کردن Developer Mode در گوشی
  • مقدمه‌ای بر دیتابیس در فلاتر
  • معرفی کتابخونه sqflite
  • ساخت اپلیکیشن Notes با دیتابیس
18 آموزش State Managment
  • چرا همه چیز باید منطق داشته باشه؟
  • مشکل پاس دادن داده بین صفحه‌ها
  • راه‌حل؟؟ InheritedWidget
  • ساخت ساده‌ترین InheritedWidget
  • ساخت متد of برای دسترسی آسان
  • ساخت StateModel برای نگهداری وضعیت
  • متد copy برای آپدیت بدون تغییر کل داده
  • استفاده از StateModel در StatefulWidget
  • استفاده از Builder برای دسترسی به context
  • معرفی provider و مقایسه با inherited widget
  • محدودیت کانال کشی داده در provider
  • اهمیت قرار دادن provider
  • نحوه استفاده ساده Provider
  • دریافت داده در ویجت‌های پایین‌دست
  • استفاده از context.watch و context.read
  • استفاده از کلاس به جای داده ساده
  • مدیریت داده با Future و FutureBuilder
  • معرفی ChangeNotifierProvider
  • ساخت کلاس ChangeNotifier
  • ایجاد متد API در provider
  • ساخت getter برای داده‌ها
  • صدا زدن notifyListeners
  • صدا زدن API در initState ویجت
  • مشکل setState داخل build و راه‌حل
  • نکات پایانی و منابع برای درک بهتر موضوع
19 پروژه پایانی فلاتر
  • گیت‌هاب چرا مهمه؟
  • اتصال VSCode به گیت‌هاب
  • مزایای گیت‌هاب برای بکاپ
  • تنظیم نام کاربری و ایمیل گیت
  • شروع ریپازیتوری با git init
  • اتصال پروژه لوکال به گیت‌هاب
  • بررسی فایل‌ها در گیت‌هاب
  • پـــروژه پــایانی اول - Plant App
  • پروژه پایانی دوم - Meditation App
  • پروژه پایانی سوم - WooCommerce App
  • آماده‌سازی اپ برای انتشار
  • ساخت کلید (keystore) برای اندروید
  • تنظیم فایل gradle برای امضا و نسخه‌بندی
  • ساخت نسخه APK یا AAB ریلیز شده
  • ساخت اکانت توسعه‌دهنده در بازار
  • ثبت اطلاعات اپ در بازار
  • آپلود فایل APK در بازار
  • پر کردن فرم‌های مربوط به دسترسی‌ها
  • تعیین قیمت و انتشار برنامه
  • مدیریت انتشار و بررسی وضعیت انتشار
20 ویدیوهای پایانی
  • صحبت در مورد شغل
  • صحبت های مهم پایانی
آموزش فلاتر با اقساط

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

چرا باید از سایت نابغه ها آموزش فلـاتر تهیه کنم؟

سبک آموزشی نابغه‌ها کاملاً منحصربه‌فرد و متفاوت است. شما می‌توانید نمونه ویدیوهای متعددی از نحوه‌ی تدریس مدرس را در آپارات، یوتیوب و اینستاگرام مشاهده کنید تا با روش آموزشی ما آشنا شوید. در فرآیند یادگیری، اهمیت زیادی دارد که توانایی و تخصص مدرس را در انتقال مفاهیم بررسی کنید. همچنین، پیشنهاد می‌کنم حتماً به هایلایت #رضایتمندی در صفحه اینستاگرام نابغه‌ها نگاهی بیندازید تا از نظرات و تجربیات دیگر دانشجویان مطلع شوید.

بین فلـاتر، کاتلین و جاوا اسکریپت نمیدونم کدوم باید انتخاب کنم؟

فلاتر یک فریمورک بسیار قدرتمند در زمینه ساخت اپلیکیشن‌ها است. هدف نهایی تمامی زبان‌های برنامه‌نویسی و فریمورک‌ها این است که یک برنامه با کیفیت بالا به دست کارفرما برسد. اما عوامل مهمی مانند زمانِ توسعه، بهینه بودنِ برنامه و همچنین قابلیت پشتیبانی و نگهداری از آن، اهمیت بسیاری دارند. یکی از بزرگترین مزایای فلاتر، سهولت یادگیری آن است. برای مثال، اگر ساخت یک برنامه در فلاتر تنها یک ساعت زمان ببرد، ممکن است همان پروژه در جاوا، سوئیفت یا ری‌اکت نیاز به 10 ساعت زمان داشته باشد (این اعداد تقریبی هستند). علاوه بر این، سرعت اجرای اپلیکیشن‌های فلاتر بسیار بالاست و نگهداری و پشتیبانی از این برنامه‌ها به مراتب ساده‌تر از سایر ابزارها است.

یادگیری فلـاتر آسونه؟

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

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

برای یادگیری فلاتر، ابتدا باید به زبان برنامه‌نویسی دارت ۳ مسلط باشید. بنابراین، اگر با دارت آشنایی ندارید، توصیه می‌کنم ابتدا به یادگیری دارت بپردازید و سپس شروع به کار با فلاتر کنید.

پشتیبانی هم داره دوره؟

بله. پشتیبانی آموزشی داریم و ویدیو نحوه پشتیبانی هم یکم بالاتر گذاشته شده. حتماً مشاهده کنید.

با فلاتر چیکار میشه کرد؟

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

از فلاتر میشه کسب درآمد کرد؟

با فلاتر خیلی راحت می‌تونی پول دربیاری. می‌تونی یه بار کدنویسی کنی و همزمان اپلیکیشن‌هایی برای اندروید، iOS، وب و دسکتاپ بسازی و توی مارکت‌های مختلف بفروشی. از پروژه‌های فریلنسری گرفته تا ساخت بازی‌ها و اپ‌های تجاری، کلی فرصت برای کسب درآمد هست.

چقدر زمان میبره تا فلاتر رو یاد بگیرم؟

مدت زمان یادگیری فلاتر بستگی به پیش‌زمینه برنامه‌نویسی‌ات داره، ولی اگر با برنامه‌نویسی آشنایی داشته باشی، می‌تونی توی چند هفته تا چند ماه اصولش رو یاد بگیری. برای حرفه‌ای شدن و تسلط کامل، شاید چند ماه تا یک سال زمان نیاز داشته باشی.

سوالِ شما وجود نداشت ؟ تماس با ما

نمونه ویدئو

25 نقد و بررسی‌ها
  • اشکان
    اشکان 22 اسفند 1400

    دوره عالیه

    ( 6 )
  • امیر غمزه
    امیر غمزه 27 بهمن 1400

    بالاخره خریدمش. عالی عالی عالی عالی

    ( 6 )
  • محمد حسن طاهری
    محمد حسن طاهری 22 بهمن 1400

    به شدت منتظر این پکیج هستم چون میدونم که عالییی هستش دقیقا مثل بقیه پکیج ها و البته بسیار بسیار ممنونم از امیرحسین جان بابت بهترین اموزش ها یعنی اگر کسی تهیه نکنه واقعا ضرر کرده

    ( 12 )
  • ابوالفضل
    ابوالفضل 20 بهمن 1400

    منتظر این پکیج قدرتمند هستیم امیر حسین جان امیدوارم همه چی رو به صورت کامل توضیح داده باشید دوره کاملی رو داشته باشیم دمتون گرم

    ( 13 )
  • الهه شفیعی
    الهه شفیعی 29 دی 1400

    با اشتیاق منتظر این پکیج فلاتر هستم من از سایت های زیادی فلاتر رو یاد گرفتم ولی شما خیلی خوب یاد میدین پکیج دارت که خیلی خوب بود، یه خواهشی که دارم اینه که یه نقشه راه درباره بازی سازی راه های ورود به برنامه سازی و نیازهاش رو برامون ضبط کنید واقعااا ممنونتون میشم ……

    ( 12 )
1 2
+ ارسال دیدگاه به عنوان مهمان دیدگاه ارسال نمایید
Social media icons

نابغه‌ها را در   دنبال کنید