سلام . امروز قصد دارم در مورد زبان برنامه نویس جدید Kotlin (طبق گفته Siri اپل بخوانیم کاتلن یا کاتلین) صحبت کنم و تجربه ی خودم رو در مورد این زبان در اختیار شما قرار بدم . 

کاتلن یا کاتلین یک زبان برنامه نویسی منبع باز و جدیده که توسط مهندسین روسی شرکت JetBrains  ساخته شده و در سال 2017 به صورت رسمی به Android Studio 3.0 اضافه شد و از پشتیبانی شرکت بزرگ Google برخورداره (برای اطلاعات بیشتر به صفحه wikipedia مراجعه کنید) .

طی برسی که از این زبان انجام دادم متوجه شدم که بسیار بسیار شبیه به زبان Swift هست (زبان قدرتمند و زیبایی که توسط شرکت بزرگ Apple خلق شده برای برنامه نویسان IOS و Mac OSX) و حالا Kotlin میتونه به برنامه نویسان IOS بیشتر کمک کنه تا سریعتر برنامه نویسی اندروید رو یاد بگیرن و یا اینکه برنامه نویسان Kotlin سریعتر توسعه اپلیکیشن های IOS رو یاد بگیرن .

به همراه پلاگین های Kotlin ابزاری ارائه شده تحت عنوان Convert Java to Kotlin که همانطور که از نام این ابزار مشخص هست کد های جاوا را به Kotlin تبدیل میکنه و من برای تست یکی از پروژه های خودم رو که نوشته بودم با این ابزار به کاتلن تبدیل کردم . هر چند که هنوز اشکالاتی داره و مجبور شدم خودم کد ها رو تا حدودی اصلاح کنم (یک ساعت زمان برد) اما بعد از تبدیل شگفت زده شدم به طوری که کاتلن 523 هزار خط کد جاوا رو در کمتر از یک دقیقه به 281  هزار خط کد تبدیل کرده بود 🙂 راستش را بخواهید اول فکر کردم پروژه نابود شده اما بعد از کامپایل دیدم کار میکنه و خب برای من خوشایند بود 🙂

مقایسه حجم کد های کاتلن با جاوا :

Java :

Kotlin :

نکته : همانطور که میبینید عملیات getter و setter در جاوا باید توسط خود برنامه نویس انجام بشه اما در کاتلین این عملیات به صورت خودکار و به استاندارد ترین شکل انجام میشه .

نکته ای که در مورد Kotlin وجود داره این هست که بجز حجم کمتر کد ها Syntax بسیار زیبایی دارن و در هنگام کد نویسی این رو احساس میکنید که با زبان مدرن تری کد نویسی انجام دادین نسبت به جاوا .

مقایسه کد جاوا و کاتلن :

Java :

Kotlin :

نکته بعدی این هست که در کاتلن شما مدیریت کد های امن رو به کاتلن میسپارید از این نظر که کامپایلر گرامری زبان از تزریغ و برگشت مقادیر null به صورت امن جلوگیری میکنه (در واقع میشه گفت null pointer exception رو از بین برده مگر اینکه خود برنامه نویس کد های غیر استاندارد بنویسه).

مقایسه کد جاوا و کاتلن:

Java :

Kotlin :

استفاده از extension ها در کاتلین : قابلیتی که من رو شگفت زده کرد و نمونه این رو در هیچ زبان یا پلتفرمی تا حالا ندیدم extension ها هستن extension به شما این قابلیت رو میده که به Class ها View ها و … بتونید متد Inject یا تزریغ کنید , مثلا تصور کنید بدون اینکه به کلاس پایه TextView دسترسی داشته باشید و یا اینکه سورس این کلاس رو که توسط گوگل نوشته شده تغییر بدین بتونید در هنگام فراخوانی این کلاس از نوع View بهش یک متد Inject کنید به عنوان مثال به کد زیر توجه کنید :

Kotlin :

خب Context رو که همه میشناسیم و قطعا میدونید که متدی به اسم toast نداره اما ما بهش این متد رو اضافه میکنیم و بعد از اون در تمام برنامه در هر اکتیویتی یا فرگمنت یا کلاسی که Context داشته باشیم میتونیم متد toast رو فراخوانی کنید به صورت زیر  :

Kotlin : 

 

خلاصی از شر findViewById : بار اولی که متوجه شدم کاتلن findViewById رو حذف کرده واقعا شگفت زده شدم واقعا مشکل بزگی بود و صد ها خط کد به برنامه اضافه میکرد برای شناسایی View ها در کد های Java .

از این به بعد در کاتلین دیگه نیاز نیست از findViewById استفاده کنید :

Java :

Kotlin :

 

نکته : برای اینکه این کار عملیاتی بشه باید در فایل گریدل پروژه علاوه بر پلاگین application باید موارد زیر هم حتما در فایل build.gradle وجود داشته باشن :

نظر شما در مورد این مطلب و زبان جدید Kotlin چیه ؟

دسته‌ها: آموزشاندروید

1 دیدگاه

از Java تا Kotlin قسمت دوم – توسعه دهنده کد خوب · 1396-12-11 در 22:48

[…] . در مقاله از Java تا Kotlin قسمت اول دیدیم که زبان کاتلن به کمک برنامه نویسان اندروید آمده […]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.