Kotlin Box | کاتلین باکس
309 subscribers
96 photos
39 videos
16 files
91 links
🔰 کانال برنامه نویسان کاتلین و اندروید
📜 مطالب و نکات آموزشی برنامه نویسی اندروید
🔮 موزیک های باحال مخصوص کد زدن
📣 اخبار به روز
🚀 و...
Download Telegram
#اصطلاحات_مهم

ریفکتور (Refactor) چیه؟ 🧐


ریفکتور یعنی تغییر و بهبود کد بدون تغییر در عملکرد آن. این کار معمولاً برای ساده‌تر کردن کد، بهبود خوانایی و حذف کدهای اضافی انجام می‌شه.✔️


یعنی می‌خواهید کد را به گونه‌ای بنویسید که بهتر خوانده بشه و راحت‌تر نگهداری بشه، ولی بدون اینکه کارایی برنامه تغییر کنه. ⚙️



🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1322
#کوییز_باکس

⚙️ سطح سوال : متوسط رو به بالا ( زیادی راحت )


چرا باید در هنگام استفاده از Retrofit، از GsonConverterFactory استفاده کنید؟




🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍31
Kotlin Box | کاتلین باکس
دلیل ؟
این دیگه زیادی راحت شد 😂😋



🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10👨‍💻1
Kotlin Box | کاتلین باکس
متوسط رو به بالا ( زیادی راحت )
سطح سوال تغییر داده شد 🤬


🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👨‍💻3👍1
Kotlin Box | کاتلین باکس
#کوییز_باکس ⚙️ سطح سوال : متوسط رو به بالا ( زیادی راحت ) چرا باید در هنگام استفاده از Retrofit، از GsonConverterFactory استفاده کنید؟ 🤖 @kotlinbox
پاسخ درست : برای تبدیل داده‌های JSON به آبجکت‌های جاوا و بالعکس



🤔 توضیحات:

در کل GsonConverterFactory برای تبدیل داده‌های JSON به آبجکت‌های جاوا و بالعکس استفاده می‌شود که در تعامل با API‌ها بسیار ضروری است.




🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍1👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
Dream
Work
Think
Risk
Read
Fail
Learn
Win✌️



🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻11👍31
#توصیه
📌 مراقبت از اندازه فایل‌های تصویری


اندازه بزرگ تصاویر می‌تواند باعث کاهش سرعت اپلیکیشن شما بشه. برای بهینه‌سازی تصاویر، از فرمت‌های مناسب مثل WebP استفاده کنید.🔥


🛠 مثال: استفاده از WebP به‌جای فرمت‌های سنگین‌تر مثل PNG برای تصاویر ثابت.📷



🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123
#کوییز_باکس

⚙️ سطح سوال : نسبتا متوسط


چه تفاوتی بین launch و async در coroutines وجود دارد؟




🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Kotlin Box | کاتلین باکس
#کوییز_باکس ⚙️ سطح سوال : نسبتا متوسط چه تفاوتی بین launch و async در coroutines وجود دارد؟ 🤖 @kotlinbox
پاسخ درست : گزینه اول: launch نتیجه‌ای برنمی‌گرداند، اما async نتیجه‌ای برمی‌گرداند.



🤔 توضیحات:

در کاتلین، هر دو launch و async برای ایجاد و مدیریت coroutine‌ها استفاده می‌شوند، اما کاربرد آن‌ها متفاوت است:

کلمه کلیدی launch: زمانی استفاده می‌شود که نیازی به بازگرداندن نتیجه از coroutine ندارید. این تابع به‌صورت پیش‌فرض یک Job برمی‌گرداند که می‌توانید از آن برای لغو یا نظارت بر coroutine استفاده کنید. معمولاً برای انجام عملیات جانبی (مثل به‌روزرسانی UI) مناسب است.
💡


اما async: برای مواردی استفاده می‌شود که می‌خواهید نتیجه‌ای از coroutine دریافت کنید. این تابع یک Deferred برمی‌گرداند که مشابه یک Promise یا Future در زبان‌های دیگر است. برای دریافت نتیجه، باید از متد await() استفاده کنید.



val job = launch {
println("This is a launch coroutine.")
}

val result = async {
5 + 10 // This will return 15
}

println("Result: ${result.await()}")


پ.ن : در ادامه معنی یه سری اصطلاحات هم گفته میشه 👍


🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍51
#اصطلاحات_مهم

عملیات موازی (Parallelism) چیه؟
🧐


عملیات موازی به این معنی است که چندین کار به‌طور هم‌زمان در چندین thread یا core اجرا می‌شوند. در این حالت، برنامه می‌تواند از قدرت پردازش چندین هسته (core) پردازنده استفاده کند و وظایف را به‌طور موازی انجام دهد تا سرعت اجرای برنامه افزایش پیدا کند. ⚡️



این مفهوم معمولاً در پردازش‌های سنگین مانند پردازش داده‌های بزرگ، محاسبات علمی، و پردازش‌های موازی شبکه بیشتر کاربرد دارد. در زبان کاتلین، برای پیاده‌سازی عملیات موازی می‌توان از Coroutines برای مدیریت چندین تسک به‌طور هم‌زمان استفاده کرد.✔️



⚙️ مثال: وقتی می‌خواهید چندین درخواست HTTP را به‌طور هم‌زمان انجام دهید یا چندین عملیات سنگین را به‌طور موازی پردازش کنید.




🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
This media is not supported in your browser
VIEW IN TELEGRAM
هر روز اون یک درصد حتی کمتر هم کافیه 💪



🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1021
#اصطلاحات_مهم

عملیات ترتیبی (Sequential) چیه؟
🧐


عملیات ترتیبی یعنی که کارها یکی پس از دیگری اجرا می‌شوند و هیچ‌کدام به‌طور هم‌زمان اجرا نمی‌شوند. این یعنی که کار بعدی باید منتظر بشه تا کار قبلی تموم بشه. 🔸



مثلاً فرض کنید که می‌خواهید دو فایل رو از اینترنت دانلود کنید. در عملیات ترتیبی، دانلود فایل اول تمام میشه، بعد فایل دوم شروع میشه. این رو می‌شه به یه صف کاری تشبیه کرد که کارها یکی یکی انجام می‌شن. ✔️⚙️





🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121👨‍💻1
#کوییز_باکس #سوال_مصاحبه_ای


⚙️ سطح سوال : متوسط ( بیشتر سوال مصاحبه ای هست )


چه تفاوتی بین val و const val در کاتلین وجود دارد؟





🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9321
پاسخ درست : گزینه دوم: val در زمان اجرا مقداردهی می‌شود، اما const val در زمان کامپایل ثابت است.



🤔 توضیحات:


در کاتلین، هر دو val و const val برای تعریف مقادیر غیرقابل تغییر (immutable) استفاده می‌شوند، اما تفاوت‌های کلیدی میان آن‌ها وجود دارد:


مقداردهی val در زمان اجرا (runtime) انجام می‌شود.🏃
برای مقادیری استفاده می‌شود که ثابت هستند اما ممکن است مقدار آن‌ها تنها در حین اجرای برنامه مشخص شود.

مثال:
val currentTime: Long = System.currentTimeMillis()


در اینجا، مقدار currentTime تنها زمانی مقداردهی می‌شود که کد اجرا شود.👆



مقداردهی const val در زمان کامپایل (compile-time) انجام می‌شود.
🧐
فقط برای مقادیر ثابت اولیه (مثل String یا اعداد) استفاده می‌شود که در زمان کامپایل کاملاً مشخص باشند.
نمی‌توان از const val برای مقادیری که وابسته به زمان اجرا هستند استفاده کرد.

const val APP_NAME = "KotlinBox"

مقدار APP_NAME در زمان کامپایل مشخص و ثابت خواهد بود.



1⃣ نکته اول: const val فقط در سطح کلاس (top-level) یا در companion object استفاده می‌شود و نمی‌توان آن را در متدها یا بلوک‌های محلی تعریف کرد.

🔢 نکته دوم: val می‌تواند در هر جایی از کد تعریف شود و انعطاف بیشتری دارد.



🤖 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14311
بزودی برای جت پک کامپوز هم محتوای خاص تر قراره داشته باشیم


و همچنین ممبر های چنل کمی بالا بره گروه اختصاصی برای شبکه سازی هم خواهیم داشت 📌



📱 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
26👍321
#️⃣#معرفی_ابزار

مصاحبه‌ اندروید داری؟ این ریپازیتوری رو از دست نده!



اگه می‌خوای برای مصاحبه‌های شغلی اندروید آماده بشی، این ریپازیتوری یه لیست کامل از سوالات پرکاربرد مصاحبه‌های اندروید رو جمع‌آوری کرده! 👀


سوالات درباره Jetpack، MVVM، RxJava، Room، Dagger و کلی مبحث دیگه که ممکنه توی مصاحبه ازت بپرسن.🔥

یه مرور روش داشته باش تا آماده‌تر و حرفه‌ای‌تر ظاهر بشی! 📌


🔗 لینک ریپازیتوری


⭐️ تعداد ستاره ها : 11.7k
🌐 تعداد فورک ها : 2.3k



📱 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍43
🌹 سال نو مبارک! 🌹


امیدوارم سال جدید برای همه شما سرشار از موفقیت‌های کاری، پروژه‌های عالی و رشد حرفه‌ای باشه. 💪


با آرزوی بهترین‌ها در مسیر برنامه‌نویسی و توسعه‌ی اپلیکیشن‌های فوق‌العاده ✔️



📱 @kotlinbox
Please open Telegram to view this post
VIEW IN TELEGRAM
7👨‍💻4👍32