مهاجرت به کاتلین ۲.۰
اگر از Consumer SDK برای اندروید ۳.۰+ استفاده میکنید، باید به Kotlin 2.0 ارتقا دهید. این صفحه راهنماییهایی را برای سهولت انتقال به نسخه جدید Kotlin ارائه میدهد.
سازگاری با Gradle و AGP
کاتلین ۲.۰ الزاماتی برای حداقل و حداکثر نسخههای Gradle و نسخه Android Gradle Plugin (AGP) شما دارد. مطمئن شوید که پروژه شما این الزامات را برای کاتلین ۲.۰ برآورده میکند.
حداقل نسخه AGP برای Consumer SDK 3.0+
نسخه Consumer SDK 3.0 نیاز به استفاده از AGP 7.3+ دارد.
حالت کامل R8
نسخه ۳ و پایینتر کیت توسعه نرمافزار Consumer SDK از حالت R8 کامل پشتیبانی نمیکند. اگر برنامه شما از AGP 8.0+ پشتیبانی میکند، باید صریحاً حالت R8 کامل را غیرفعال کنید.
# settings.gradle
android.enableR8.fullMode=false
سازگاری نسخه کاتلین
کاتلین از سازگاری معکوس با سه نسخه قبلی زبان پشتیبانی میکند. این بدان معناست که اگر در حال حاضر از کاتلین ۱.۷+ با SDK Consumer استفاده میکنید، باید بتوانید بدون نیاز به رفع تمام تغییرات اساسی، به کاتلین ۲.۰ ارتقا دهید. با این حال، سازگاری کاتلین فقط برای ویژگیهای پایدار زبان اعمال میشود . اگر از ویژگیهای آلفا، بتا یا آزمایشی در زبان کاتلین استفاده میکنید، ممکن است هنگام ارتقا مجبور به ایجاد تغییرات اضافی شوید.
پرچمهای سازگاری کاتلین
همانطور که در بخش قبلی اشاره شد، کاتلین هنگام ارتقا تا ۳ نسخه قبلی زبان را پشتیبانی میکند. کاتلین دو پرچم (flag) برای کمک به محدود کردن تغییرات ناقص ارائه میدهد :
زبان-نسخه XY
این پرچم تغییرات اساسی را به رفتار نسخه قبلی کاتلین برمیگرداند. برای مثال، اگر از کاتلین ۱.۷ استفاده میکنید، میتوانید [ - language-version 1.7] را مشخص کنید و تغییرات اساسی جدید دیگر اعمال نمیشوند:
android {
kotlinOptions {
languageVersion = '1.7'
}
}
نسخه API XY
این پرچم از استفاده از API های جدید قبل از آماده شدن کد وابسته برای ادغام با کاتلین ۲.۰ جلوگیری میکند.
android {
kotlinOptions {
apiVersion = '1.7'
}
}
رویکردی هدفمندتر
علاوه بر استفاده از پرچمهای سازگاری کاتلین، توصیه میکنیم یادداشتهای انتشار کاتلین را بررسی کنید و رفتارهایی را که میخواهید از نسخهای که از آن ارتقا میدهید حفظ شوند، انتخاب کنید. کاتلین فهرستی از تغییرات مهم و پرچمهایی را که میتوان برای حفظ رفتار اصلی تنظیم کرد، در راهنماهای سازگاری خود برای هر نسخه ارائه میدهد: