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

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

 

قصد داریم درمورد یک زبان برنامه نویسی صحبت کنیم که زندگی را برای توسعه دهندگان جاوا و اندروید آسان‌تر کرده است. زبان برنامه‌نویسی کاتلین (Kotlin).
همه ما، برنامه نویس‌های جاوا میدانیم که زبان جاوا 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 ویژگی های جالبی دارد که در آینده درباره آن بیشتر صحبت خواهیم کرد.

 

آموزش مقدماتی Kotlin

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

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

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

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

 

اجازه دهید قبل از پایان یک چیز بسیار جالب دیگر معرفی کنم به نام Kotlin Android Extensions . این plugin هم مانند Anko توسط JetBrains تولید شده است.

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

 


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

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

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

 

مهاجرت به کاتلین در اندروید
دوست عزیز شما میتوانید با تخفیف ویژه در این دوره شرکت کنید
کد تخفیف:
inlmg20

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

منابع: medium.com

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