در کاتلینکانف ۲۰۲۵ چه گذشت؟
🔹 ویژگیهای جدید زبان Kotlin در نسخه ۲.۲ و ویژگیهای زبانی آیندهی کاتلین
🔹 پیشفرض شدن کامپایلر K2 در IntelliJ IDEA 2025.1
🔹 ابزار جدید Amper
🔹 معرفی Koog: چارچوبی برای ساخت ایجنتهای هوش مصنوعی در Kotlin
🔹 گسترش بنیاد Kotlin و برنامه کمکهزینهها
🔹 ابزارهای هوش مصنوعی JetBrains: Mellum و Junie
🔹 بهروزرسانیهای Kotlin Multiplatform
🔹 پیشرفت در Kotlin برای توسعه سمت سرور
🔹 توسعه LSP برای Kotlin (بالاخره!)
بیشتر بخوانید:
🔗 https://blog.jetbrains.com/kotlin/2025/05/kotlinconf-2025-language-features-ai-powered-development-and-kotlin-multiplatform/
@AdibCodes
🔹 ویژگیهای جدید زبان Kotlin در نسخه ۲.۲ و ویژگیهای زبانی آیندهی کاتلین
🔹 پیشفرض شدن کامپایلر K2 در IntelliJ IDEA 2025.1
🔹 ابزار جدید Amper
🔹 معرفی Koog: چارچوبی برای ساخت ایجنتهای هوش مصنوعی در Kotlin
🔹 گسترش بنیاد Kotlin و برنامه کمکهزینهها
🔹 ابزارهای هوش مصنوعی JetBrains: Mellum و Junie
🔹 بهروزرسانیهای Kotlin Multiplatform
🔹 پیشرفت در Kotlin برای توسعه سمت سرور
🔹 توسعه LSP برای Kotlin (بالاخره!)
بیشتر بخوانید:
🔗 https://blog.jetbrains.com/kotlin/2025/05/kotlinconf-2025-language-features-ai-powered-development-and-kotlin-multiplatform/
@AdibCodes
🔥6👏3❤1
Adib Codes
چهطور تو برنامهنویسی حرفهایتر بشیم؟ (سری دوم) در سری «برنامهنویسی حرفهایتر» مفاهیم مهم و کاربردی برنامهنویسی رو به صورت خلاصه و مفید توضیح میدم؛ نکاتی که به حرفهایتر و تمیزتر برنامهنویسی کردن کمک میکنن و در هر قسمت روی یک مفهوم تمرکز دارن.…
چهطور تو برنامهنویسی حرفهایتر بشیم؟ (سری سوم)
در سری «برنامهنویسی حرفهایتر» مفاهیم مهم و کاربردی برنامهنویسی رو به صورت خلاصه و مفید توضیح میدم؛ نکاتی که به حرفهایتر و تمیزتر برنامهنویسی کردن کمک میکنن و در هر قسمت روی یک مفهوم تمرکز دارن.
🔹 ۲۱ - فانکشن مهم fold در لیستها و آرایهها
🔹 ۲۲ - ریفکتورهای بزرگ با typealias ها
🔹 ۲۳ - سوپرپاور کاتلین در تعریف عملگرهای جدید
🔹 ۲۴ - کاربرد مهم lateinit ها در کاتلین
🔹 ۲۵ - کاربرد و نحوه کار by lazy در کاتلین
🔹 ۲۶ - کاربرد Companion Object ها در کاتلین و تفاوت با جاوا
🔹 ۲۷ - نحوه کار Equals و اهمیت آن
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
در سری «برنامهنویسی حرفهایتر» مفاهیم مهم و کاربردی برنامهنویسی رو به صورت خلاصه و مفید توضیح میدم؛ نکاتی که به حرفهایتر و تمیزتر برنامهنویسی کردن کمک میکنن و در هر قسمت روی یک مفهوم تمرکز دارن.
🔹 ۲۱ - فانکشن مهم fold در لیستها و آرایهها
🔹 ۲۲ - ریفکتورهای بزرگ با typealias ها
🔹 ۲۳ - سوپرپاور کاتلین در تعریف عملگرهای جدید
🔹 ۲۴ - کاربرد مهم lateinit ها در کاتلین
🔹 ۲۵ - کاربرد و نحوه کار by lazy در کاتلین
🔹 ۲۶ - کاربرد Companion Object ها در کاتلین و تفاوت با جاوا
🔹 ۲۷ - نحوه کار Equals و اهمیت آن
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
❤8
آیا مالتیتردینگ همیشه منجر به افزایش پرفورمنس میشه؟
وقتی صحبت از موازیسازی میشه، همه اسمهایی از قبیل ترد، پارالل، کانکارنسی، کوروتین و ... رو شنیدیم. اما واقعاً فرق اینها چیه و چهطور کار میکنن؟
در این ویدئو به این سوالها با مثالهای ساده پاسخ میدم.:
🔷 پارالل و موازیسازی دقیقاً یعنی چی؟
🔷 تفاوت کارهای Parallel با Concurrent چیه؟
🔷 آیا همه چیز رو میشه موازیسازی کرد؟
🔷 چالشهای کانکارنسی کجا خودشون رو نشون میدن؟
🔷 دادههای مشترک و Shared Data چه دردسرهایی درست میکنن؟
🔷 و در نهایت، کوروتینها چی هستن؟
🔗 لینک تماشای ویدئو:
https://youtu.be/lmJISjTWZtg
#multithreading #concurrency #coroutines #parallelism
وقتی صحبت از موازیسازی میشه، همه اسمهایی از قبیل ترد، پارالل، کانکارنسی، کوروتین و ... رو شنیدیم. اما واقعاً فرق اینها چیه و چهطور کار میکنن؟
در این ویدئو به این سوالها با مثالهای ساده پاسخ میدم.:
🔷 پارالل و موازیسازی دقیقاً یعنی چی؟
🔷 تفاوت کارهای Parallel با Concurrent چیه؟
🔷 آیا همه چیز رو میشه موازیسازی کرد؟
🔷 چالشهای کانکارنسی کجا خودشون رو نشون میدن؟
🔷 دادههای مشترک و Shared Data چه دردسرهایی درست میکنن؟
🔷 و در نهایت، کوروتینها چی هستن؟
🔗 لینک تماشای ویدئو:
https://youtu.be/lmJISjTWZtg
#multithreading #concurrency #coroutines #parallelism
YouTube
صفر تا صد مالتی تردینگ، کانکارنسی، کوروتینها - نکاتی کلیدی برای همه برنامهنویسی
در این ویدئو میریم سراغ دنیال چندترده و به سوالهای زیر سعی میکنیم جواب بدیم:
- پارالل و موازیسازی به چی میگن؟
- فرق چیزهای پارالل با کانکارنت چیه؟
- آیا همه چیز رو میشه کانکارنت کرد؟
- مشکلات کانکارنسی چه چیزهایی هستن؟
- دادههای مشترک چه اشکالاتی…
- پارالل و موازیسازی به چی میگن؟
- فرق چیزهای پارالل با کانکارنت چیه؟
- آیا همه چیز رو میشه کانکارنت کرد؟
- مشکلات کانکارنسی چه چیزهایی هستن؟
- دادههای مشترک چه اشکالاتی…
👏11❤3🔥2
چهطور تو برنامهنویسی حرفهایتر بشیم؟ (سری چهارم)
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در این سری...
🔗 کلاس فوقالعاده Duration برای بازههای زمانی
🔗 یک کاربرد مهم Inline Functionها
🔗 نکتهی مهم hashCode در جاوا و کاتلین
🔗 یک فیچر کلیدی در کاتلین و جاوا - Interface Default Method
🔗 در اعماق اینترفیسها چی میگذره؟
🔗 موضوع Method Dispatch در برنامهنویسی چیه و چرا اهمیت داره؟
🔗 در ستایش Extension Function های فوقالعاده
🔗 بررسی اعماق Extension Functionها
🔗 مقایسه و تفاوتهای by Lazy و lateinit در کاتلین
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در این سری...
🔗 کلاس فوقالعاده Duration برای بازههای زمانی
🔗 یک کاربرد مهم Inline Functionها
🔗 نکتهی مهم hashCode در جاوا و کاتلین
🔗 یک فیچر کلیدی در کاتلین و جاوا - Interface Default Method
🔗 در اعماق اینترفیسها چی میگذره؟
🔗 موضوع Method Dispatch در برنامهنویسی چیه و چرا اهمیت داره؟
🔗 در ستایش Extension Function های فوقالعاده
🔗 بررسی اعماق Extension Functionها
🔗 مقایسه و تفاوتهای by Lazy و lateinit در کاتلین
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
🔥11❤1
YouTube
یک ریفکتور حرفهای برای افزایش خوانایی و کدهای بهتر - Guard Clause Refactor
در این ویدئو به سراغ ریفکتور با Guard Clauseها میریم.
بعضی از کدها شرطهایی دارن که در صورت برقرار بودنشون کد ادامه پیدا میکنه و اگر تعداد این شرطها زیاد باشه، Nesting در کد زیاد میشه، خودندنش سخته و تغییر شرایط و کدها هم ممکنه پیچیده بشه.
با ریفکتور…
بعضی از کدها شرطهایی دارن که در صورت برقرار بودنشون کد ادامه پیدا میکنه و اگر تعداد این شرطها زیاد باشه، Nesting در کد زیاد میشه، خودندنش سخته و تغییر شرایط و کدها هم ممکنه پیچیده بشه.
با ریفکتور…
🚨یکی از بهترین ریفکتورها در برنامهنویسی
احتمالاً شده که به کدهایی برسید که شرطهای تو در تو دارن، چشمهای آدم رو در میارن (!) و دنبال کردنشون سخته و در کنارش تغییر دادنشون هم کار پیچیدهایه.
در این ویدئوی کوتاه سراغ یک تکنیک مهم برای ریفکتور کردن این مدل کدها با استفاده از چیزی که کتاب DDD بهش میگه Guard Clause میریم.
🎥 لینک تماشا:
https://www.youtube.com/watch?v=zELBBBl-K5A
@AdibCodes
احتمالاً شده که به کدهایی برسید که شرطهای تو در تو دارن، چشمهای آدم رو در میارن (!) و دنبال کردنشون سخته و در کنارش تغییر دادنشون هم کار پیچیدهایه.
در این ویدئوی کوتاه سراغ یک تکنیک مهم برای ریفکتور کردن این مدل کدها با استفاده از چیزی که کتاب DDD بهش میگه Guard Clause میریم.
🎥 لینک تماشا:
https://www.youtube.com/watch?v=zELBBBl-K5A
@AdibCodes
🔥5😍1
چهطور تو برنامهنویسی حرفهایتر بشیم؟ (سری پنجم)
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در این سری...
🔗چهطور زبان جدید برنامهنویسی رو خوب یاد بگیریم؟
🔗کوروتینها دقیقاً چی هستن؟
🔗ساسپند فانکشنها دقیقاً چین و چیکار میکنن؟ - Suspend Functions
🔗نحوه کارکرد کوروتین اسکوپها رو یاد بگیریم - Coroutine Scope
🔗اهمیت نحوه Error Handling در کوروتینها
🔗ساز و کار Supervisor Scope در کوروتینهای کاتلین
🔗جادوی runBlocking در کاتلین
🔗نکات کلیدی Context و runBlocking در کوروتینها
🔗ساز و کار Coroutine Context ها رو یاد بگیریم
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در این سری...
🔗چهطور زبان جدید برنامهنویسی رو خوب یاد بگیریم؟
🔗کوروتینها دقیقاً چی هستن؟
🔗ساسپند فانکشنها دقیقاً چین و چیکار میکنن؟ - Suspend Functions
🔗نحوه کارکرد کوروتین اسکوپها رو یاد بگیریم - Coroutine Scope
🔗اهمیت نحوه Error Handling در کوروتینها
🔗ساز و کار Supervisor Scope در کوروتینهای کاتلین
🔗جادوی runBlocking در کاتلین
🔗نکات کلیدی Context و runBlocking در کوروتینها
🔗ساز و کار Coroutine Context ها رو یاد بگیریم
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
🔥8❤6
«به انیمیشن نیاز ندارید»
در این مقالهی خوب، به نحوهی پیادهسازی انیمیشنها و نکات ریز و درشتشون (فارغ از پلتفورم مورد استفاده) اشاره شده. از اینکه چرا همه انیمیشنها لازم نیستند، تا چهطوری باید زمان و شیوهاش رو در جهت یوآی بهتر انتخاب کرد.
خوندنش رو به افرادی که سمت کلاینت کار میکنن توصیه میکنم.
🔗 https://emilkowal.ski/ui/you-dont-need-animations
@AdibCodes
در این مقالهی خوب، به نحوهی پیادهسازی انیمیشنها و نکات ریز و درشتشون (فارغ از پلتفورم مورد استفاده) اشاره شده. از اینکه چرا همه انیمیشنها لازم نیستند، تا چهطوری باید زمان و شیوهاش رو در جهت یوآی بهتر انتخاب کرد.
خوندنش رو به افرادی که سمت کلاینت کار میکنن توصیه میکنم.
🔗 https://emilkowal.ski/ui/you-dont-need-animations
@AdibCodes
Emil Kowalski
Why you are animating more often than you should.
❤8🍌1
Adib Codes
چهطور تو برنامهنویسی حرفهایتر بشیم؟ (سری پنجم) در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم. در این سری... 🔗چهطور زبان جدید برنامهنویسی رو خوب یاد بگیریم؟…
چهطور تو برنامهنویسی حرفهایتر بشیم؟ (سری ۶)
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در این سری...
🔗 ساخت فانکشن abstract، در Enumها
🔗 قابلیت خفن کاتلین در مقداردهی به Enumها
🔗 چرا بهتره با Enum به شکل Exhaustive برخورد کنیم؟
🔗 چه زمانی و برای چی بهتره Enum بسازیم؟
🔗 کجا باید از Sealed Class استفاده کنیم و کاربردش چیه؟
🔗 تفاوت Sealed Class ها با Enum ها چیه؟ به چه دردی میخورن؟
🔗 یک ریفکتور مهم در استفاده از Enum ها
🔗 چند روش نوشتن when که باید بلد باشید
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در این سری...
🔗 ساخت فانکشن abstract، در Enumها
🔗 قابلیت خفن کاتلین در مقداردهی به Enumها
🔗 چرا بهتره با Enum به شکل Exhaustive برخورد کنیم؟
🔗 چه زمانی و برای چی بهتره Enum بسازیم؟
🔗 کجا باید از Sealed Class استفاده کنیم و کاربردش چیه؟
🔗 تفاوت Sealed Class ها با Enum ها چیه؟ به چه دردی میخورن؟
🔗 یک ریفکتور مهم در استفاده از Enum ها
🔗 چند روش نوشتن when که باید بلد باشید
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
❤4🔥1
Adib Codes
چهطور تو برنامهنویسی حرفهایتر بشیم؟ (سری ۶) در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم. در این سری... 🔗 ساخت فانکشن abstract، در Enumها 🔗 قابلیت خفن کاتلین…
حرفهای شدن در برنامهنویسی، ریفکتور و دیباگینگ، با قابلیتهای خفن IntelliJ، اندروید استودیو و دوستان
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در سری هفتم...
🔗 پرواز در IntelliJ و بقیه با قابلیت Postfix Completion
🔗 پرانتزگذاری حرفهای در IntelliJ IDEA و اندروید استودیو و...
🔗 دیزاین پترن Factory Method رو یاد بگیریم
🔗 شورتکات حرفهای برگشت به آخرین تغییر رو یاد بگیریم
🔗 ریفکتور سریع یک تکه کد به فایل جدید رو یاد بگیریم
🔗 دیباگ حرفهای در IntelliJ و دوستان رو یاد بگیریم
🔗 ریفکتور بیرون کشیدن فانکشن از کد رو با IntelliJ و دوستان یاد بگیریم
🔗 ریفکتور فانکشن با پارامترهای زیاد در IntelliJ و دوستان رو یاد بگیریم
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در سری هفتم...
🔗 پرواز در IntelliJ و بقیه با قابلیت Postfix Completion
🔗 پرانتزگذاری حرفهای در IntelliJ IDEA و اندروید استودیو و...
🔗 دیزاین پترن Factory Method رو یاد بگیریم
🔗 شورتکات حرفهای برگشت به آخرین تغییر رو یاد بگیریم
🔗 ریفکتور سریع یک تکه کد به فایل جدید رو یاد بگیریم
🔗 دیباگ حرفهای در IntelliJ و دوستان رو یاد بگیریم
🔗 ریفکتور بیرون کشیدن فانکشن از کد رو با IntelliJ و دوستان یاد بگیریم
🔗 ریفکتور فانکشن با پارامترهای زیاد در IntelliJ و دوستان رو یاد بگیریم
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
❤8🔥1👌1
🎬 آیا فرگمنت، بدترین لایبرری در اندروید بود؟
توی این ویدئو سراغ ردهبندی لایبرریهای معروف UI در دنیای اندروید رفتم — از روزهای اول تا امروز.
با هم بررسی میکنیم چرا ساخته شدن، چه تأثیری داشتن، و چطور مسیر ساخت UI رو تشکیل دادن.
از لایبرریهای نوستالژیکی مثل Butterknife گرفته تا نسلهای جدیدتر مثل کامپوز.
البته این وسط، نگاهی میکنم به یکی از بدترین تصمیمات گوگل در طراحی معماری اندروید 🙂
🎥 لینک تماشا:
https://youtube.com/watch?v=ThD8h_wBOrI
اگر از این ویدئو خوشتون اومد ممنون میشم به اشتراکش بگذراید که به دست بقیه هم برسه.
دمتون گرم،
@AdibCodes
توی این ویدئو سراغ ردهبندی لایبرریهای معروف UI در دنیای اندروید رفتم — از روزهای اول تا امروز.
با هم بررسی میکنیم چرا ساخته شدن، چه تأثیری داشتن، و چطور مسیر ساخت UI رو تشکیل دادن.
از لایبرریهای نوستالژیکی مثل Butterknife گرفته تا نسلهای جدیدتر مثل کامپوز.
البته این وسط، نگاهی میکنم به یکی از بدترین تصمیمات گوگل در طراحی معماری اندروید 🙂
🎥 لینک تماشا:
https://youtube.com/watch?v=ThD8h_wBOrI
اگر از این ویدئو خوشتون اومد ممنون میشم به اشتراکش بگذراید که به دست بقیه هم برسه.
دمتون گرم،
@AdibCodes
❤14🔥1
🔥 معرفی Swift SDK برای اندروید
همونطور که احتمالاً در جریان هستید، تیم زبان Swift چندین ماهه که داره روی Swift در اندروید کار میکنه و بالاخره اولین نسخهی رسمی و البته nightly از Swift SDK برای Android رو معرفی کرد. توسط این SDK، شما میتونید در اپلیکیشن خودتون کدهای سوییفت بنویسید و بدون اینکه نیاز به واسطهی دیگهای داشته باشید ازشون استفاده کنید.
این SDK شامل لایبرریهای استاندارد Swift، ابزارهای بیلد و پشتیبانی از CMake هست که کار ساختن پروژهاتون رو سادهتر بکنه. پیشبرد این پروژه به کارگروه اندروید در تیم Swift سپرده شده که که هماهنگی با اندروید با تمرکز بیش از پیش جلو بره.
برای افرادی که فقط با iOS و Swift کار کردن این میتونه خبر خوبی برای مسیر زبان فوقالعاده Swift باشه و البته برای اپل و گسترش این زبان مسیر خوبیه. در ادامه باید دید که در کنار امثال KMP چهطور پیش میرن و استقبال کاربران ازش چهطور خواهد بود.
🔗 لینک خبر
🔗نحوه شروع
🔗 چند مثال از استفاده
@AdibCodes #Swift #Android
همونطور که احتمالاً در جریان هستید، تیم زبان Swift چندین ماهه که داره روی Swift در اندروید کار میکنه و بالاخره اولین نسخهی رسمی و البته nightly از Swift SDK برای Android رو معرفی کرد. توسط این SDK، شما میتونید در اپلیکیشن خودتون کدهای سوییفت بنویسید و بدون اینکه نیاز به واسطهی دیگهای داشته باشید ازشون استفاده کنید.
این SDK شامل لایبرریهای استاندارد Swift، ابزارهای بیلد و پشتیبانی از CMake هست که کار ساختن پروژهاتون رو سادهتر بکنه. پیشبرد این پروژه به کارگروه اندروید در تیم Swift سپرده شده که که هماهنگی با اندروید با تمرکز بیش از پیش جلو بره.
برای افرادی که فقط با iOS و Swift کار کردن این میتونه خبر خوبی برای مسیر زبان فوقالعاده Swift باشه و البته برای اپل و گسترش این زبان مسیر خوبیه. در ادامه باید دید که در کنار امثال KMP چهطور پیش میرن و استقبال کاربران ازش چهطور خواهد بود.
🔗 لینک خبر
🔗نحوه شروع
🔗 چند مثال از استفاده
@AdibCodes #Swift #Android
❤10🆒3
🎬 ردهبندی لایبرریهای نتوورک در اندروید
توی این ویدئو که قسمت دوم از ردهبندی لایبرریهای اندروید هست رفتم سراغش لایبرریهای نتوورک؛ شامل لایبرریهای کلاینت نتوورک، مبدلهای JSON و ابزارهایی که این فرآیند رو راحت میکنن.
از مواردی مثل AsyncTaskهای+!#$ که توسعهدهندگان اندروید رو بدبخت کردن گرفته تا زیباترین ساختههای بشر در اندروید، مثل OkHttp و رتروفیت.
🎥 لینک تماشا:
https://youtu.be/FeSe-By1_fA
اگر از این ویدئو هم خوشتون اومد ممنون میشم به اشتراکش بگذراید که به دست بقیه هم برسه.
دمتون گرم،
@AdibCodes
توی این ویدئو که قسمت دوم از ردهبندی لایبرریهای اندروید هست رفتم سراغش لایبرریهای نتوورک؛ شامل لایبرریهای کلاینت نتوورک، مبدلهای JSON و ابزارهایی که این فرآیند رو راحت میکنن.
از مواردی مثل AsyncTaskهای
🎥 لینک تماشا:
https://youtu.be/FeSe-By1_fA
اگر از این ویدئو هم خوشتون اومد ممنون میشم به اشتراکش بگذراید که به دست بقیه هم برسه.
دمتون گرم،
@AdibCodes
❤12
Adib Codes
حرفهای شدن در برنامهنویسی، ریفکتور و دیباگینگ، با قابلیتهای خفن IntelliJ، اندروید استودیو و دوستان در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم. در سری هفتم...…
یادگیری فوت و فنهای ادیتورهای IntelliJ، اندروید استودیو و ...
در سری قبل - قسمت هفتم از
«برنامهنویسی حرفهایتر»- سراغ فوت و فنهای IDE رفتم و با توجه به استقبالتون از این موضوع، این ویدئوهای کوتاه رو ادامه دادم. در سری هشتم...
🔗 دیباگ حرفهای با Evaluate Expression
🔗 ریفکتور ساختن اتوماتیک پارامترها در فانکشن
🔗 ریفکتور خفن Change Signature
🔗 سرچ حرفهای
🔗 سرچ حرفهای و سریع کلاسها، فیلدها و فانکشنها
🔗 ادیت و جابهجایی حرفهای کد
🔗 سلکت سریع کد
🔗 قابلیت فوقالعاده Scratch Files و نحوه استفاده ازش
🔗 کار کردن با چند زبان در یک فایل با قابلیت Inject Language
🔗 قابلیت پراستفاده Clipboard History
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
در سری قبل - قسمت هفتم از
«برنامهنویسی حرفهایتر»- سراغ فوت و فنهای IDE رفتم و با توجه به استقبالتون از این موضوع، این ویدئوهای کوتاه رو ادامه دادم. در سری هشتم...
🔗 دیباگ حرفهای با Evaluate Expression
🔗 ریفکتور ساختن اتوماتیک پارامترها در فانکشن
🔗 ریفکتور خفن Change Signature
🔗 سرچ حرفهای
🔗 سرچ حرفهای و سریع کلاسها، فیلدها و فانکشنها
🔗 ادیت و جابهجایی حرفهای کد
🔗 سلکت سریع کد
🔗 قابلیت فوقالعاده Scratch Files و نحوه استفاده ازش
🔗 کار کردن با چند زبان در یک فایل با قابلیت Inject Language
🔗 قابلیت پراستفاده Clipboard History
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
❤4🔥3👏1
Adib Codes
🎬 ردهبندی لایبرریهای نتوورک در اندروید توی این ویدئو که قسمت دوم از ردهبندی لایبرریهای اندروید هست رفتم سراغش لایبرریهای نتوورک؛ شامل لایبرریهای کلاینت نتوورک، مبدلهای JSON و ابزارهایی که این فرآیند رو راحت میکنن. از مواردی مثل AsyncTaskهای +!#$ …
🎬 ردهبندی لایبرریهای Dependency Injection در اندروید
توی این ویدئو که قسمت سوم از ردهبندی لایبرریهای اندروید هست میرم سراغ دیآیها؛ از تاریخچهشون گرفته تا چه نکات مثبت و منفیای دارن.
از لایبرریهای قدیمی مثل Guice شروع میکنیم، نگاهی به تکامل Dagger میاندازیم و در انتها میرسیم به Koin و Hilt.
🎥 لینک تماشا:
https://www.youtube.com/watch?v=XVUBSd5KbUY
دمتون گرم،
@AdibCodes
توی این ویدئو که قسمت سوم از ردهبندی لایبرریهای اندروید هست میرم سراغ دیآیها؛ از تاریخچهشون گرفته تا چه نکات مثبت و منفیای دارن.
از لایبرریهای قدیمی مثل Guice شروع میکنیم، نگاهی به تکامل Dagger میاندازیم و در انتها میرسیم به Koin و Hilt.
🎥 لینک تماشا:
https://www.youtube.com/watch?v=XVUBSd5KbUY
دمتون گرم،
@AdibCodes
❤9🔥1👏1
Adib Codes
یادگیری فوت و فنهای ادیتورهای IntelliJ، اندروید استودیو و ... در سری قبل - قسمت هفتم از «برنامهنویسی حرفهایتر»- سراغ فوت و فنهای IDE رفتم و با توجه به استقبالتون از این موضوع، این ویدئوهای کوتاه رو ادامه دادم. در سری هشتم... 🔗 دیباگ حرفهای با Evaluate…
چهطور تو برنامهنویسی حرفهایتر بشیم؟
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در سری نهم...
🔗 دیف گرفتن حرفهای و سریع در IntelliJ
🔗 ریفکتور Extract Constant در IntelliJ
🔗 شورتکات حرفهای Surround With
🔗 آرامش موقع کد زدن؟ قابلیت Distraction-free Mode در IntelliJ
🔗 یک پلاگین عالی در IntelliJ برای یادگیری شورتکاتها
🔗 قابلیت حرفهای IntelliJ برای مشاهده بایتکد کاتلین و تبدیل به جاوا
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
در سری «برنامهنویسی حرفهایتر»، در هر قسمت با تمرکز روی یک موضوع خاص، به مفاهیم مهم و کاربردی برنامهنویسی به صورت خلاصه و مفید میپردازم.
در سری نهم...
🔗 دیف گرفتن حرفهای و سریع در IntelliJ
🔗 ریفکتور Extract Constant در IntelliJ
🔗 شورتکات حرفهای Surround With
🔗 آرامش موقع کد زدن؟ قابلیت Distraction-free Mode در IntelliJ
🔗 یک پلاگین عالی در IntelliJ برای یادگیری شورتکاتها
🔗 قابلیت حرفهای IntelliJ برای مشاهده بایتکد کاتلین و تبدیل به جاوا
این ویدئوها رو در این Playlist یوتیوب هم میتونید ببینید و دنبال کنید.
دمتون گرم و خفن باشید،
@AdibCodes
🔥3👍1👨💻1
کاتلین ورژن 2.3.0 منتشر شد
در این نسخه:
- بهبودهای جدید در زبان و پایدار شدن برخی قابلیتها
- پشتیبانی از Java 25 در JVM
- بهبودهای Kotlin/Native، Kotlin/Wasm و Kotlin/JS
- سازگاری با Gradle 9.0
- بهروزرسانیهایی در کتابخانه استاندارد
بیشتر بخوانید:
https://blog.jetbrains.com/kotlin/2025/12/kotlin-2-3-0-released/
@AdibCodes
در این نسخه:
- بهبودهای جدید در زبان و پایدار شدن برخی قابلیتها
- پشتیبانی از Java 25 در JVM
- بهبودهای Kotlin/Native، Kotlin/Wasm و Kotlin/JS
- سازگاری با Gradle 9.0
- بهروزرسانیهایی در کتابخانه استاندارد
بیشتر بخوانید:
https://blog.jetbrains.com/kotlin/2025/12/kotlin-2-3-0-released/
@AdibCodes
The JetBrains Blog
Kotlin 2.3.0 Released | The Kotlin Blog
The Kotlin 2.3.0 release is out! This version includes new language features, stable ones, and other features now enabled by default. This release also brings tooling updates, performance improvements
🔥8👍4❤3👏1
Adib Codes
کاتلین ورژن 2.3.0 منتشر شد در این نسخه: - بهبودهای جدید در زبان و پایدار شدن برخی قابلیتها - پشتیبانی از Java 25 در JVM - بهبودهای Kotlin/Native، Kotlin/Wasm و Kotlin/JS - سازگاری با Gradle 9.0 - بهروزرسانیهایی در کتابخانه استاندارد بیشتر بخوانید: …
🔥 قابلیت Explicit Backing Fields در کاتلین ۲.۳
یکی از مهمترین تغییرات نسخهی جدید کاتلین که در پست قبلی معرفی شد، قابلیت Explicit backing fields هست که در این پست بهش میپردازم.
یکی از نکات کاتلین (و بسیاری از زبانها) این بود که افراد وقتی یک فیلدی رو تعریف میکردن، فرض کنید یک MutableList، و میخواستن افرادی که خارج از این کلاس به این فیلد دسترسی پیدا میکنن، اون رو به شکل Mutable نبینن و صرفاً یک List رو ببین که بتونن بخوننش.
اغلباً کاری که انجام میشد، تعریف یک فیلد private با تایپ اصلی و یک فیلد public با تایپ کمترتغییرپذیر بود. در واقع یک «backing field» به شکل دستی نوشته میشد.
به طور مثال:
این موضوع مختص لیستها نیست و در انواع کلاسهایی که چندین پیادهسازی دارند (مثل Flow و SharedFlow) هم وجود داشت و چنین Duplicationهایی رو به وجود میآورد؛ علاوه بر نیاز به نامگذاریهای متفاوت برای این فیلدها.
کاتلینِ جدید راهکارش برای این موضوع سادهست و توسطش میتونین این backing fieldها رو به صراحت تعریف کنید و براشون پشت و رویی متفاوت داشته باشید.
خوبی این قابلیت اینه که شما لازم نیست نامگذاری متفاوتی برای این فیلدها داشته باشید و خوانایی بالاتری هم داره.
این موضوع بسیار شبیه به تفاوت visibility در getter و setterهای فیلدهاست، اما با این تفاوت که این تغییر رو در تایپ فیلدها اعمال میکنه.
زبانهای بسیار کمی هستن که چنین قابلیتی رو پشتیبانی میکنن، و کاتلین هم به دستهی اونها پیوست.
این قابلیت در حال حاضر در حالت آزمایشی هست و نیازه توسط یک آرگومان کامپایر (که در پست بالا هست) فعالش کنید.
موفق باشید،
@AdibCodes
یکی از مهمترین تغییرات نسخهی جدید کاتلین که در پست قبلی معرفی شد، قابلیت Explicit backing fields هست که در این پست بهش میپردازم.
یکی از نکات کاتلین (و بسیاری از زبانها) این بود که افراد وقتی یک فیلدی رو تعریف میکردن، فرض کنید یک MutableList، و میخواستن افرادی که خارج از این کلاس به این فیلد دسترسی پیدا میکنن، اون رو به شکل Mutable نبینن و صرفاً یک List رو ببین که بتونن بخوننش.
اغلباً کاری که انجام میشد، تعریف یک فیلد private با تایپ اصلی و یک فیلد public با تایپ کمترتغییرپذیر بود. در واقع یک «backing field» به شکل دستی نوشته میشد.
به طور مثال:
private val _names = MutableList<String>()
val names: List<String> get() = _names
این موضوع مختص لیستها نیست و در انواع کلاسهایی که چندین پیادهسازی دارند (مثل Flow و SharedFlow) هم وجود داشت و چنین Duplicationهایی رو به وجود میآورد؛ علاوه بر نیاز به نامگذاریهای متفاوت برای این فیلدها.
کاتلینِ جدید راهکارش برای این موضوع سادهست و توسطش میتونین این backing fieldها رو به صراحت تعریف کنید و براشون پشت و رویی متفاوت داشته باشید.
val names: StateFlow<String>
field = MutableStateFlow("")
خوبی این قابلیت اینه که شما لازم نیست نامگذاری متفاوتی برای این فیلدها داشته باشید و خوانایی بالاتری هم داره.
این موضوع بسیار شبیه به تفاوت visibility در getter و setterهای فیلدهاست، اما با این تفاوت که این تغییر رو در تایپ فیلدها اعمال میکنه.
زبانهای بسیار کمی هستن که چنین قابلیتی رو پشتیبانی میکنن، و کاتلین هم به دستهی اونها پیوست.
این قابلیت در حال حاضر در حالت آزمایشی هست و نیازه توسط یک آرگومان کامپایر (که در پست بالا هست) فعالش کنید.
موفق باشید،
@AdibCodes
❤15👍5🔥5😍1