برنامه نویسی اندروید با kotlin

شنبه ۲۶ اسفند ۹۶ توسط یوسف رضا مختاری

 

میخواهیم درباره زبان برنامه نویسی kotlin صحبت کنیم که زندگی رو برای توسعه دهندگان جاوا و اندروید آسان تر می کند.

Kotlin توسط JetBrains (سازنده ی IDE های محبوب و قدرتمند نظیر Android Studio) تولید شد.

ما برنامه نویس های جاوا میدونیم که زبان جاوا boilerplate زیاد دارد.

boilerplate به کدهایی می گویند که جزء syntax های زبان جاوا هستند ، مدام تکرار می شوند و قابل حذف نیستند

مثلا به onClickListener نگاه کنید :

View.OnClickListener() {
     @Override
     public void onClick(View v) {
          showMessage("Message");
     }
}


می توانیم به این شکل بنویسیم:

view.setOnClickListener { v -> showMessage("Message") }

 

میتوان گفت در کاتلین boilerplate نداریم و روند نوشتن و خواندن کد سریع تر انجام میشود.

در ضمن کاتلین در زمان اجرا بهره وری و انعطاف پذیری بیشتری دارد.

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

در این بخش تلاش میکنم تا نشان دهم چگونه کاتلین میتواند یک گزینه خوب برای برنامه نویسی اندروید باشد.

Syntax بهتر و کد کم تر

اجازه بدهید با یک مثال آغاز کنیم:

syntax بهتر kotlin
کلاس های ناشناس خوب نیست


همان کد در کاتلین:

Lambdas عالی می باشد

 

توجه: یک پلاگین به نام Kotlin Android Extensions وجود دارد که حتی اجازه خلاص شدن از ()findViewById در آن وجود دارد. (جزئیات بیشتر در مورد آن در انتهای این مقاله)

یکی از ویژگی های جالب کاتلین extension function یا تابع توسعه می باشد و باعث خوانایی و تمیزی کد می شود

کاتلین این قابلیت را به ما میدهد که هر کلاسی را با استفاده از extension function توسعه دهیم

برای مثال در کلاس ActionBarActivity از extension function استفاده کردیم.

 

حالا شما میتوانید در هر کجا که از ActionBarActivity استفاده کردید می توانید به شکل زیر Toast را نمایش بدهید.


ANKO!

Anko یک کتابخانه جدید کاتلین برای اندروید می باشد و به ما اجازه می دهد از DSL بجای xml در کد های layout خود استفاده کنیم.

شاید این سوال برای شما پیش آید که xml چه مشکلی دارد؟!

  • Typesafe نمی باشد (از رخداد خطاها مربوط به انواع داده ها جلوگیری نمیکند)
  • null-safe نمی باشد (از خطاهای Null pointer exception جلوگیری نمی کند)
  • برای هر layout مجبوریم بعضی کد ها رو تکرار کنیم.
  • XML در مصرف CPU و باتری بهینه نمی باشد
  • و امکان استفاده مجدد از کد را نمیدهد

با استفاده Anko شما می توانید از دست XML خلاص شوید و بهترین مزیت این کار این می باشد که شما قادر به استفاده مجدد از layout ها می باشید.

کد کاتلین و Anko DSL


همان طور که در تصویر مشاهده می کنید کد های DSL بسیار واضح می باشند و شما میتوانید یک پیش نمایش از layout خود در هنگام کد زدن داشته باشید(البته شما باید به صورت دستی پیش نمایش را رفرش کنید)

Anko ویژگی های جالبی دارد که در آینده درباره آن بیشتر صحبت میکنیم.

 

برنامه نویسی functional در اندروید

برنامه نویسی تابعی یا functional یک چیز فوق العاده است و البته پیاده سازی آن با جاوا (6 و 7) ممکن است بسیار پیچیده باشد.

برای مثال فیلتر کردن اعداد زوج , فرد و بزرگتر از 2 (توجه میکنید که کدهای جاوا زیاد زیبا نیستند؟!)

بله !جاوا هیچ متدی برای فیلتر کردن مجموعه ها آماده نکرده است.

بنابراین باید خودمان بنویسیم

همین کار را میتوان در Kotlin با متد فیلتر انجام داد که به طور قابل توجهی حجم کد را کاهش می دهد.

همین کد در Kotlin:

 

اجازه دهید قبل از پایان یک چیز بسیار جالب دیگر معرفی کنم به نام Kotlin Android Extensions .

این plugin هم مانند Anko توسط JetBrains تولید شده است.

اگر شما می خواهید از Xml استفاده کنید می توانید از این plugin استفاده کنید و با استفاده از آن شما میتوانید در Activity یا Fragment خود به طور مستقیم به آیتم های طرح (layout views) خود دسترسی داشته باشید.

 


حالا شما میتوانید به Button خود دسترسی مسقیم داشته باشید.

بنابراین دیگر نیازی به findViewById ها و casting نمی باشد.

در این مطلب در مورد برخی ویژیگی های کاتلین صحبت کردیم امیدوارم برای شما مفید بوده باشد.

 


کلیدواژه: Kotlin کاتلین آموزش برنامه نویسی kotlin زبان برنامه نویسی kotlin آموزش برنامه نویسی اندروید

منابع: medium.com

ارسال دیدگاه:
برای ارسال دیگاه باید به سیستم وارد شوید و یا ثبت نام کنید. ثبت نام چند لحظه بیشتر زمان شما را نمیگیرد.