آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

۳ مطلب در مهر ۱۴۰۲ ثبت شده است

کتابخانه های ktx در اندروید یه سری API جدید و ساده با استفاده از لامبدا اینا برای ما ایجاد میکنن. این لایبرری ها رو باید به صورت دستی در پروژه اضافه کنیم. یکی از بهترین هاش که معمولا استفاده میشه، برای instance کردن ویو مدل هست که توسط delegation انجام میشه. 

 

private val myViewModel : MyViewModel by viewModels() //لایف سایکل متصل به فرگمنت
private val myViewModel1 by viewModels<MyViewModel>() //لایف سایکل متصل به فرگمنت 
private val myViewModel2 : MyViewModel by activityViewModels() // لایف سایکل متصل به اکتیویتی

 

موقع ساخت آبجکت ویو مدل باید به اینکه میخوایم در چه لایف سایکلی از اپ زنده باشه دقت کنیم.

 

روش کلاسیک ایجاد ویومدل:

 

val vm = ViewModelProvider(this).get(MyViewModel::class.java)

 

ایجاد ویو مدل با استفاده از lazy:

 

private val MyViewModelby lazy {
    ViewModelProvider(this).get(MyViewModel::class.java)
}

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۲ مهر ۰۲ ، ۰۳:۵۸
میم دال

برای push کردن فاینال، اول باید باید pull بگیری. برای اینکه ممکنه از قبل آپدیتی وجود داشته باشه یا پروژه لوکال به هر علت ایراد داشته باشه.

وقتی pull بگیری ممکنه conflict بده. در این صورت merge میکنی و در نهایت تغییرات رو push میکنی.

 

از merge بدم میاد واقعا :|

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ مهر ۰۲ ، ۱۳:۵۸
میم دال

وقتی یه کلاسی لود میشه تمامی فیلدهای اون هم لود میشن. بعضی از آبجکت ها سنگین هستن (مثل دیتابیس اینا) و initial شدن اونها کاست زیادی داره. به همین خاطر از lazy توی کاتلین استفاده میشه و باعث میشه به محض استفاده از اون آبجکت، لود بشه.

 

مثال:

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ مهر ۰۲ ، ۲۰:۳۴
میم دال