Codeit Mobile
94 subscribers
3 photos
1 video
243 links
📱 آموزش برنامه‌نویسی موبایل

Kotlin • Android

🚀 آموزش ساده، کاربردی و پروژه‌محور
💡 مخصوص توسعه‌دهندگان موبایل
Download Telegram
🔴 نشت حافظه (Memory Leak) در اندروید؛ قاتل خاموش برنامه‌ها!
🔍 اگه بعد از چند بار باز و بسته کردن صفحه‌ای، اپلیکیشن کندتر میشه یا کرش میکنه، احتمالاً نشتی داری.
🧠 چرا رخ میده؟
وقتی یه شیء (مثلاً Activity) دیگه نیازی نیست ولی هنوز توسط یه مرجع قوی (مثل Context توی یک سینگلتون) نگه داشته بشه، GC نمیتونه پاکش کنه و حافظه هدر میره.

📌 مثال کلاسیک: نگهداشتن Activity داخل سینگلتون یا ViewModel با لامبدا

class MyManager private constructor() {
companion object {
val instance = MyManager()
}
var callback: (() -> Unit)? = null
}

// داخل Activity
MyManager.instance.callback = {
// اینجا داریم reference activity رو نگه می‌داریم
findViewById<TextView>(R.id.textView).text = "Done"
}


🔍 چی میشه؟
وقتی Activity می‌خواد از بین بره، callback هنوز به view‌هاش اشاره داره و Manager هم هنوز زنده‌ست → نشتی

راه‌حل: استفاده از WeakReference یا پاک کردن callback در onDestroy

override fun onDestroy() {
super.onDestroy()
MyManager.instance.callback = null
}


💡 نکته حرفه‌ای: در Jetpack از LiveData یا Flow استفاده کن که خودکار lifecycle رو مدیریت میکنن.

🎯 Takeaway: همیشه بعد از اتمام کار Activity یا Fragment، reference‌های خارجی رو null کن. برای دیباگ از ابزار Memory Profiler داخل Android Studio استفاده کن.

#MemoryLeak #AndroidDev #KotlinTips #Performance #CleanCode #AndroidStudio #MemoryManagement
#Codeit #Android #Kotlin #Jetpack
🌐 Codeit → https://code-it.ir

━━━━━━━━━━━━━━━
@CodeitMobile
2
🐛 اولین قدم برای تبدیل شدن به یک توسعه‌دهنده حرفه‌ای «Android»، یادگیری اصول دیباگ کردن کدهاست. بدون دیباگ، اشکال‌یابی مثل گشتن در تاریکی می‌مونه.

🔍 «Debugging» یعنی اجرای مرحله‌به‌مرحله برنامه و بررسی متغیرها در لحظه. «Android Studio» با ابزارهای قدرتمندش این کار رو برای مبتدی‌ها هم ساده کرده.

⚙️ فرض کن یه تابع ساده داری که قراره مجموع دو عدد رو برگردونه، ولی اشتباهاً ضرب رو نوشته‌ای:

fun calculateSum(a: Int, b: Int): Int {
return a * b // اشتباه: باید a + b باشد
}


🛠 برای پیدا کردن این باگ، کافیه یه «Breakpoint» روی خط return بذاری و برنامه رو با حالت «Debug» اجرا کنی. بعد با دکمه «Step Over» (F8) خط به خط جلو بری و مقدار متغیرها رو توی پنجره «Variables» ببینی.

🧠 وقتی ببینی که a * b خروجی می‌ده، بلافاصله متوجه اشتباه می‌شی. تغییرش میدی به a + b و دیگه خیالت راحته.

هرچقدر بیشتر دیباگ کنی، ذهنت سریع‌تر ریشه خطاها رو پیدا می‌کنه. از همون پروژه اول عادت کن با «Debugger» کار کنی.

#Codeit #Android #Kotlin #Jetpack #Debugging #AndroidStudio #Breakpoint #DeveloperTips
🌐 Codeit → https://code-it.ir

━━━━━━━━━━━━━━━
@CodeitMobile
1👍1🔥1