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

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

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

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

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

۱۳ مطلب با موضوع «کاتلین» ثبت شده است

1. چنل Canary: این چنل unStable ترین هست و زود به زود (هفتگی) آپدیت میشه. برای اینه که یوزرا متوجه بشن چیا جدید اومده ولی این نسخه اصلا مناسب پروداکشن نیست.

 

2. چنل Dev: نسخه این کانال از Canary با ثبات تر هست. به روز رسانی هایی کمتر از Canary داره و مناسب توسعه دهندگانی است که میخواهند قبل از انتشار عمومی، نسخه های جدید اندروید استودیو را آزمایش کنند. مناسب پروداکشن نیست.

 

3. چنل Beta: این چنل شامل نسخه ای است که به طور کامل آزمایش شده و آماده انتشار عمومی هست. اما ممکن است شامل تمام ویژگی های جدید نباشد.

 

4. چنل Stable: نسخه پایدار که مناسب پروداکشن و تمامی کاربران است.

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

توی کاتلین مفهوم استاتیک مثل جاوا وجود نداره. با این حال یه سری امکاناتی برای معرفی فیلد و متدهای استاتیک در نظر گرفته شده است.

در هر کلاسی میشه companion object تعریف کرد و داخل بلاک آن فیلدها و متدهای استاتیک تعریف کرد.

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ ارديبهشت ۰۰ ، ۱۷:۰۵
میم دال

در کاتلین برای مقداردهی فیلدهایی که در ابتدای کلاس معرفی شده و قرار است در اواسط کلاس مقداردهی شوند، دو روش وجود دارد:

 

1. {...} by lazy

2. lateinit

 

{...} by lazy همون جا مقدار متغیر مشخص میشه اما به محض استفاده از آن متغیر مقداردهی می شود. حتما باید از نوع val باشه.

 

lateinit نمیتونه nullable باشه و حتما باید از نوع var باشد.

توضیحات بهتر و کامل تر

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ ارديبهشت ۰۰ ، ۰۷:۵۱
میم دال

اگر کلاس viewModel دارای آرگومان باشد، در این صورت برای instance کردن آن باید کلاس فکتوری تعریف کنیم:

class ViewModelFactory(private val num:Int): ViewModelProvider.Factory{
    override fun <T : ViewModel?> create(modelClass: Class<T>): T {
        if(modelClass.isAssignableFrom(MyViewModel::class.java)){
            return MyViewModel(num) as T
        }
        throw IllegalArgumentException("Not Found")

    }
}

این کلاس همیشه به همین فرمت نوشته میشه.

۰ نظر موافقین ۰ مخالفین ۰ ۰۳ ارديبهشت ۰۰ ، ۰۶:۳۷
میم دال

کاتلین با پیاده سازی فایل Standard.kt به تمامی کلاس ها این امکان را میدهد که از اسکوپ فانکشن ها استفاده کنند. اگر اسکوپ فانکشن ها رو دیکامپایل کنیم، توابع خاصی نیستند و به صورت ساده (با بررسی چند شرط) پیاده سازی شده اند.

۰ نظر موافقین ۰ مخالفین ۰ ۲۸ فروردين ۰۰ ، ۱۹:۱۹
میم دال