💊Capsule
🔥GlobalKey
2⃣
🟢اولین کاربرد مهم GlobalKey برای این هست که به context یک ویجت و همچنین به state اون (در صورتی که ویجت استیت فول) باشه، در بقیه قسمت های اپ دسترسی داشته باشیم.
✅با استفاده از دو variable به نام های
✔️currentContext
✔️currentState
میتونیم به این منظور برسیم.
🔥علت اینکه توی نام از current استفاده شده چون که این موارد میتونن در طول lifetime یک GlobalKey تغییر کنن.
مثال)
✅با دادن GlobalKey به نویگیتور به جای استفاده از
Navigator.of(context).push
میگیم
navigatorKey.currentState.push
🔥این کار از لحاظ پرفرمانس عملکرد بهتری داره.
🟢به همین صورت میتونید به ویجت مورد نظر GlobalKey بدید و در بقیه قسمت های اپ به state اون دسترسی پیدا کنین و متد های داخل state اش رو کال کنید (مثل نویگیتور)
یا به contextاش دسترسی پیدا کنید.
❌بیش از اندازه استفاده نکنید (مطابق نیاز)
#capsule
#advanced
🔥GlobalKey
2⃣
🟢اولین کاربرد مهم GlobalKey برای این هست که به context یک ویجت و همچنین به state اون (در صورتی که ویجت استیت فول) باشه، در بقیه قسمت های اپ دسترسی داشته باشیم.
✅با استفاده از دو variable به نام های
✔️currentContext
✔️currentState
میتونیم به این منظور برسیم.
🔥علت اینکه توی نام از current استفاده شده چون که این موارد میتونن در طول lifetime یک GlobalKey تغییر کنن.
مثال)
✅با دادن GlobalKey به نویگیتور به جای استفاده از
Navigator.of(context).push
میگیم
navigatorKey.currentState.push
🔥این کار از لحاظ پرفرمانس عملکرد بهتری داره.
🟢به همین صورت میتونید به ویجت مورد نظر GlobalKey بدید و در بقیه قسمت های اپ به state اون دسترسی پیدا کنین و متد های داخل state اش رو کال کنید (مثل نویگیتور)
یا به contextاش دسترسی پیدا کنید.
❌بیش از اندازه استفاده نکنید (مطابق نیاز)
#capsule
#advanced
💊Capsule
🔥GlobalKey
3️⃣
🟢در مورد کاربرد اول GlobalKey گفتیم که میتونیم با استفاده از اون به context و state یک ویجت برسیم.
🔥با استفاده از state میتونیم به متد های داخل state ویجت مورد نظر دسترسی داشته باشیم و کالشون کنیم.
مثلا برای Navigator , Scaffold و ... میتونه مفید باشه.
❌سعی کنید برای ویجت هایی که خودتون مینویسید از این مورد استفاده نکنید مگر اینکه واقعا لازم بود.
✅خیلی مواقع راه حل استفاده از استیت منجمنت هست.
🔥با استفاده از context هم میتونیم کار هایی از قبیل :
✔️دسترسی به renderObject ویجت مورد نظر
✔️نوتیف فرستادن به وسیله context
✔️و...
رو انجام داد.
#capsule
🔥GlobalKey
3️⃣
🟢در مورد کاربرد اول GlobalKey گفتیم که میتونیم با استفاده از اون به context و state یک ویجت برسیم.
🔥با استفاده از state میتونیم به متد های داخل state ویجت مورد نظر دسترسی داشته باشیم و کالشون کنیم.
مثلا برای Navigator , Scaffold و ... میتونه مفید باشه.
❌سعی کنید برای ویجت هایی که خودتون مینویسید از این مورد استفاده نکنید مگر اینکه واقعا لازم بود.
✅خیلی مواقع راه حل استفاده از استیت منجمنت هست.
🔥با استفاده از context هم میتونیم کار هایی از قبیل :
✔️دسترسی به renderObject ویجت مورد نظر
✔️نوتیف فرستادن به وسیله context
✔️و...
رو انجام داد.
#capsule
Pure Coder
Screenshot from 2022-09-16 12-14-56.png
این فایل رو میتونید توی قسمت snippets های vscode کپی کنید و همون طور که توی عکس نشون دادم از short cut هاش برای نوشتن unit test ها استفاده کنید.
توی پروژه هاتون تست مینویسید؟
Anonymous Poll
50%
نه بیخیال بابا
11%
اره و از TDD پیروی میکنم
8%
اره ولی از TDD پیروی نمیکنم
32%
نمیدونم چیه (دیدن نتایج)
🔥برای اینکه توی گیت یک یا چندcommit قدیمی رو ویرایش کنید و message اون ها رو تغییر بدید میتونید از مقاله زیر استفاده کنید
https://linuxize.com/post/change-git-commit-message/
😍این کار برای تر و تمیز کردن commit های قدیمی خیلی به درد میخوره.
مثلا من میخواستم یک سری commit های قدیمی که داشتم رو طبق قوانینی که توی پست زیر قبلا توی کانال توضیح دادم ویرایش کنم.
https://t.me/FlutterChallenges/354
https://linuxize.com/post/change-git-commit-message/
😍این کار برای تر و تمیز کردن commit های قدیمی خیلی به درد میخوره.
مثلا من میخواستم یک سری commit های قدیمی که داشتم رو طبق قوانینی که توی پست زیر قبلا توی کانال توضیح دادم ویرایش کنم.
https://t.me/FlutterChallenges/354
Linuxize
How to Change a Git Commit Message
This guide explains how to change the message of the most recent or older Git commits.
🔥clean_test
🟢یک library نوشتم که کمک میکنه که unit test ها رو توی Dart تمیز تر بنویسیم.
❌فعلا براش README قرار ندادم و فقط میتونید کد های library رو ببینید
🔥در اینده یک سری مثال ها رو با استفاده از این library قرار میدم که با نحوه کار باهاش اشنا بشید.
❌توی pub.dev نذاشتم و میتونید با لینک گیتهاب پروژه اون رو به قسمت dev dependency های پروژتون توی pubspec اضافه کنید و براش نوشتن تست های clean ازش استفاده کنید. 😍
https://github.com/mohammadtaherri/clean_test
🟢یک library نوشتم که کمک میکنه که unit test ها رو توی Dart تمیز تر بنویسیم.
❌فعلا براش README قرار ندادم و فقط میتونید کد های library رو ببینید
🔥در اینده یک سری مثال ها رو با استفاده از این library قرار میدم که با نحوه کار باهاش اشنا بشید.
❌توی pub.dev نذاشتم و میتونید با لینک گیتهاب پروژه اون رو به قسمت dev dependency های پروژتون توی pubspec اضافه کنید و براش نوشتن تست های clean ازش استفاده کنید. 😍
https://github.com/mohammadtaherri/clean_test
GitHub
GitHub - mohammadtaherri/clean_test
Contribute to mohammadtaherri/clean_test development by creating an account on GitHub.
🔥TDD data structures and algorithms
🟢همون طور که گفتم پکیج clean_test رو برای دارت توسعه دادم که این پکیج کوچک کمک میکنه به تمیز تر نوشتن unit test ها توی دارت.
😍و همون طور که قول دادم قرار شد مثال هایی رو برای کار با این پکیج عنوان کنم.
🔥یک ریپوزیتوری توی گیتهاب ایجاد کردم و توی این ریپو قراره که data structure ها و الگوریتم های معروف رو با روش TDD بزنیم.
و برای نوشتن تست ها هم از پکیج clean_test استفاده میکنم.
🔥اولین دیتا استراکچری که قرار دادم Stack هست.
🙏لطفا کدها و تست ها رو بررسی کنید و به پروژه هم ستاره بدید .
https://github.com/mohammadtaherri/tdd_data_structures_and_algorithms
🟢همون طور که گفتم پکیج clean_test رو برای دارت توسعه دادم که این پکیج کوچک کمک میکنه به تمیز تر نوشتن unit test ها توی دارت.
😍و همون طور که قول دادم قرار شد مثال هایی رو برای کار با این پکیج عنوان کنم.
🔥یک ریپوزیتوری توی گیتهاب ایجاد کردم و توی این ریپو قراره که data structure ها و الگوریتم های معروف رو با روش TDD بزنیم.
و برای نوشتن تست ها هم از پکیج clean_test استفاده میکنم.
🔥اولین دیتا استراکچری که قرار دادم Stack هست.
🙏لطفا کدها و تست ها رو بررسی کنید و به پروژه هم ستاره بدید .
https://github.com/mohammadtaherri/tdd_data_structures_and_algorithms
GitHub
GitHub - mohammadtaherri/tdd_data_structures_and_algorithms: TDD data structures and algorithms
TDD data structures and algorithms. Contribute to mohammadtaherri/tdd_data_structures_and_algorithms development by creating an account on GitHub.
Pure Coder
🔥TDD data structures and algorithms 🟢همون طور که گفتم پکیج clean_test رو برای دارت توسعه دادم که این پکیج کوچک کمک میکنه به تمیز تر نوشتن unit test ها توی دارت. 😍و همون طور که قول دادم قرار شد مثال هایی رو برای کار با این پکیج عنوان کنم. 🔥یک ریپوزیتوری…
پکیج clean_test رو توی pub هم گذاشتم و برای استفاده از پکیج میتونید اون رو از pub بگیرید.
همچنین میتونید توی این پروژه همکاری کنید و دیتا استراکچر ها و الگوریتم های مدنظرتون رو به پروژه اضافه کنید.
همچنین میتونید توی این پروژه همکاری کنید و دیتا استراکچر ها و الگوریتم های مدنظرتون رو به پروژه اضافه کنید.
🔥Challenge
😍یه چالش جذاب
🔥طراحی انیمیشن Loading اپ Outline
🟢دو تا نمونه قرار داد شده رو با دقت ببینید
یکی از اون ها مربوط به اپ outline هست و یکی رو هم خودم طراحی کردم
یک progress indicator شبیه به این طراحی کنید و لینک کد گیتهابتون رو توی کامنت ها بفرستید...
😍بعضی از دوستان قبلا این چالش انجام دادن که لینک پروژشون رو توی کامنت قرار میدم.
#challenge
😍یه چالش جذاب
🔥طراحی انیمیشن Loading اپ Outline
🟢دو تا نمونه قرار داد شده رو با دقت ببینید
یکی از اون ها مربوط به اپ outline هست و یکی رو هم خودم طراحی کردم
یک progress indicator شبیه به این طراحی کنید و لینک کد گیتهابتون رو توی کامنت ها بفرستید...
😍بعضی از دوستان قبلا این چالش انجام دادن که لینک پروژشون رو توی کامنت قرار میدم.
#challenge
امروز سالروز بزرگداشت کوروش بزرگ هست.❤️
امروز رو به همراه همه ی ایرانی های عزیز و همه ایرانی های گران قدری که در جغرافیای کنونی مادر گیتی نیستند ولی تکه ای از این تمدن بزرگ بودند و هستند, گرامی میداریم.
به امید ایران قوی , با شکوه و بزرگ ❤️
به شکوه و پهناوری ایران هخامنشی و ساسانی❤️
امروز رو به همراه همه ی ایرانی های عزیز و همه ایرانی های گران قدری که در جغرافیای کنونی مادر گیتی نیستند ولی تکه ای از این تمدن بزرگ بودند و هستند, گرامی میداریم.
به امید ایران قوی , با شکوه و بزرگ ❤️
به شکوه و پهناوری ایران هخامنشی و ساسانی❤️
🔥Challenge
❓چالش :
تفاوت exception و error توی دارت چی هست؟
✅throw Exception()
✅throw Error()
#challenge
❓چالش :
تفاوت exception و error توی دارت چی هست؟
✅throw Exception()
✅throw Error()
#challenge
🔥dartunit
یه پکیج جدید برای نوشتن unit test توی دارت توسعه دادم.(dartunit)
🟢دوستانی که با junit توی جاوا آشنایی دارند این پکیج هم مثل junit از annotation ها استفاده میکنه.
🟢به این ترتیب شما میتونید به جای نوشتن group که قبلا توی دارت داشتیم یه کلاس بسازید و با انوتیشن @TestCase اون رو به پکیج معرفی کنید.
🟢امکان نوشتن group های تو در تو که قبلا وجود داشت این جا به وسیله ارث بری کلاس های تست از هم فراهم شده.
🟢همچنین به جای نوشتن test که قبلا داشتیم میتونید متد های مختلف داخل کلاستون بنویسید و با انوتیشن @Test اون رو به پکیج معرفی کنید.
🟢همچنین انوتیشین های
@SetUp @TearDown
@SetUpAll @TearDownAll
هم برای نوشتن فانکشن های مربوطه قابل استفاده هستند.
🔥🔥توی این پکیج دیگه نیاز نیست مثل قبل برای گروه ها و تست هاتون description مشخص کنید 😡😡 و خود پکیج از روی اسم کلاس ها و متد ها description ها رو میسازه.
البته امکان وارد کردن description به صورت اختیاری هم هست.
🔥🔥تمام امکاناتی که قبلا برای تست توی پکیج test وجود داشت این ها هم وجود داره. (مثل skip کردن یه تست یا گروه خاص یا ...)
❤️لطفا این پکیج رو توی Pub لایک کنید و نظراتتون رو بگید.
https://pub.dev/packages/dartunit
https://github.com/mohammadtaherri/dartunit
یه پکیج جدید برای نوشتن unit test توی دارت توسعه دادم.(dartunit)
🟢دوستانی که با junit توی جاوا آشنایی دارند این پکیج هم مثل junit از annotation ها استفاده میکنه.
🟢به این ترتیب شما میتونید به جای نوشتن group که قبلا توی دارت داشتیم یه کلاس بسازید و با انوتیشن @TestCase اون رو به پکیج معرفی کنید.
🟢امکان نوشتن group های تو در تو که قبلا وجود داشت این جا به وسیله ارث بری کلاس های تست از هم فراهم شده.
🟢همچنین به جای نوشتن test که قبلا داشتیم میتونید متد های مختلف داخل کلاستون بنویسید و با انوتیشن @Test اون رو به پکیج معرفی کنید.
🟢همچنین انوتیشین های
@SetUp @TearDown
@SetUpAll @TearDownAll
هم برای نوشتن فانکشن های مربوطه قابل استفاده هستند.
🔥🔥توی این پکیج دیگه نیاز نیست مثل قبل برای گروه ها و تست هاتون description مشخص کنید 😡😡 و خود پکیج از روی اسم کلاس ها و متد ها description ها رو میسازه.
البته امکان وارد کردن description به صورت اختیاری هم هست.
🔥🔥تمام امکاناتی که قبلا برای تست توی پکیج test وجود داشت این ها هم وجود داره. (مثل skip کردن یه تست یا گروه خاص یا ...)
❤️لطفا این پکیج رو توی Pub لایک کنید و نظراتتون رو بگید.
https://pub.dev/packages/dartunit
https://github.com/mohammadtaherri/dartunit
Dart packages
dartunit | Dart package
A Dart package for writing unit tests based on xUnit patterns.This package helps you implement unit test patterns and write unit tests in a cleaner way.
Pure Coder
🔥dartunit یه پکیج جدید برای نوشتن unit test توی دارت توسعه دادم.(dartunit) 🟢دوستانی که با junit توی جاوا آشنایی دارند این پکیج هم مثل junit از annotation ها استفاده میکنه. 🟢به این ترتیب شما میتونید به جای نوشتن group که قبلا توی دارت داشتیم یه کلاس بسازید…
چون که این پکیج از dart:mirror برای شناسایی انوتیشن ها و ران کردن تست ها استفاده میکنه در حال حاضر امکان اجرای تست ها توی پروژه های فلاتر به وسیله IDE وجود نداره.
چون که فلاتر از dart:mirror پشتیبانی نمیکنه.
ولی توی پروژه های فلاتر میتونید از طریق ترمینال و با کامند زیر تست ها رو ران کنید.
dart test test/your_file.dart --reporter=expanded
و به صورتی که توی تصویر مشخص شده نتایج رو مشاهده کنید.
چون که فلاتر از dart:mirror پشتیبانی نمیکنه.
ولی توی پروژه های فلاتر میتونید از طریق ترمینال و با کامند زیر تست ها رو ران کنید.
dart test test/your_file.dart --reporter=expanded
و به صورتی که توی تصویر مشخص شده نتایج رو مشاهده کنید.
This media is not supported in your browser
VIEW IN TELEGRAM
کد مربوط به چالش بالا رو توی گیتهاب قرار دادم...
😱توی این مینی پروژه میتونید با ساختن RenderObject ها از پایه و نحوه استفاده از ProxyAnimation و ... اشنا بشید.
❤️لطفا حمایت کنید و ستاره بزنید و در صورت نیاز پروژه رو فورک کنید.
❓اگه سوالی داشتید توی کامنت های این پست بپرسید.
https://github.com/mohammadtaherri/multi_slice_progress_indicator
😱توی این مینی پروژه میتونید با ساختن RenderObject ها از پایه و نحوه استفاده از ProxyAnimation و ... اشنا بشید.
❤️لطفا حمایت کنید و ستاره بزنید و در صورت نیاز پروژه رو فورک کنید.
❓اگه سوالی داشتید توی کامنت های این پست بپرسید.
https://github.com/mohammadtaherri/multi_slice_progress_indicator
🔥ریپوزیتوری زیر یه خلاصه مختصر و مفید از دستورات مقدماتی و ضروری گیت هست که هر برنامه نویسی باید بلد باشه
منبع : جادی❤️
https://github.com/jadijadi/gittutorial/blob/master/Jadi's-git-tutorial-contents.md
منبع : جادی❤️
https://github.com/jadijadi/gittutorial/blob/master/Jadi's-git-tutorial-contents.md
Pure Coder
اولین زبان برنامه نویسی شی گرا ؟
🔥اطلاعات عمومی
✅توی این لیست Fortran از همه مسن تره
این زبان به دهه ۵۰ میلادی برمیکرده.
✅به غیر از Fortran بقیه زبان ها، شی گرا هستن.
✅پارادایم شی گرایی سال ۱۹۶۶ ابداع شد و زبان Simula 67 به عنوان اولین زبان شی گرا طراحی شد.
✅زبان JAVA جوان ترین زبان بین زبان های بالا هست و طبیعتا اشتباه ترین گزینه برای انتخاب.
✅جاوا رو با حروف بزرگ مینویسن JAVA
چون که این کلمه مخفف هست.
مخفف نام های ۳ طراح اصلی این زبان که شده JAVA.
✅لوگوی زبان جاوا یک فنجون قهوه هست
موقعی که میخواستن برای این زبان اسم انتخاب کنن جلسشون رو توی یک کافه برگزار میکنن و اونجا به این نتیجه میرسن که اول اسم هاشون رو کنار هم بگذارن و...
و چون توی کافه بودن همون جا به ذهنشون میرسه که فنجون قهوه رو به عنوان لوگو انتخاب کنن.
✅البته اسم زبان جاوا در ابتدا یه چیز دیگه بوده و بعدا تغییر کرده
✅توی این لیست Fortran از همه مسن تره
این زبان به دهه ۵۰ میلادی برمیکرده.
✅به غیر از Fortran بقیه زبان ها، شی گرا هستن.
✅پارادایم شی گرایی سال ۱۹۶۶ ابداع شد و زبان Simula 67 به عنوان اولین زبان شی گرا طراحی شد.
✅زبان JAVA جوان ترین زبان بین زبان های بالا هست و طبیعتا اشتباه ترین گزینه برای انتخاب.
✅جاوا رو با حروف بزرگ مینویسن JAVA
چون که این کلمه مخفف هست.
مخفف نام های ۳ طراح اصلی این زبان که شده JAVA.
✅لوگوی زبان جاوا یک فنجون قهوه هست
موقعی که میخواستن برای این زبان اسم انتخاب کنن جلسشون رو توی یک کافه برگزار میکنن و اونجا به این نتیجه میرسن که اول اسم هاشون رو کنار هم بگذارن و...
و چون توی کافه بودن همون جا به ذهنشون میرسه که فنجون قهوه رو به عنوان لوگو انتخاب کنن.
✅البته اسم زبان جاوا در ابتدا یه چیز دیگه بوده و بعدا تغییر کرده