کاتلین: چیزهایی هست که باید بدانی

فرض بر این است که فرقی نکند شما بدانید یا ندانید Kotlin یا کاتلین یا کوتلین چیست. چند صباحی است که دارم تلاش می‌کنم از جاوا به کاتلین مهاجرت کنم. پلتفورم هدف من برای توسعه اندروید است. در این پست که هر از گاهی آپدیت خواهد شد تلاش می‌کنم لینک‌ها و کتاب‌ها و ویدیوهایی را که می‌بینیم لیست کنم و اگر فرصت شد یک خطی در موردشان بنویسم. سعی می‌کنم یه جوری برم جلو که شما از بالا به پایین روند آشنا شدن من با کاتلین و کار کردن باهاش رو ببینید. ولی خب ممکنه بعضی وقت‌ها نظمش به هم بخوره، یا شما ترجیح بدید نظم خودتون رو بوجود بیارید. به هر حال...

(امیدوارم فیلم چیزهایی هست که نمی‌دانی را دیده باشید تا عنوان این پست قلمبه سلمبه ننماید)

برای شروع اجازه بدید اضافه شدن کاتلین به عنوان یک زبان برنامه‌نویسی جدید به اندروید رو جشن بگیریم و ببینیم چقدر ساده می‌شه ازش استفاده کرد:

https://www.youtube.com/watch?v=czKo-jPVweg
https://www.youtube.com/watch?v=czKo-jPVweg

و بشنویم که چرا باید شاد باشیم:

https://www.youtube.com/watch?v=c6mhYGCKeaI
https://www.youtube.com/watch?v=c6mhYGCKeaI

خب این که کافی نیست، اصلن چرا باید کاتلین رو یاد بگیریم و چه خوبی‌هایی و احیانن بدی‌هایی داره:

Why Kotlin is my next programming language

An ode to the language you’ve never heard of

بعدش خوبه که یه نگاهی بندازیم ببینیم کدهایی که قبلن با جاوا می‌زدیم الان در کاتلین چه شکلی هستند:

From Java To Kotlin - Your Cheat Sheet For Java To Kotlin

احتمالن تا الان باید عاشق کاتلین شده باشید. حالا وقتشه که نگاهی بندازیم به کلیات. پیشنهاد من اینه که اول یه نگاه سریع و حتا سرسری به داکیومنت کاتلین بندازید. درسته که ممکنه یکم طول بکشه و حوصله سربر باشه اما در ادامه به شدت کمک می‌کنه که همه چیز آشنا به نظر بیاد و هم سرعت رو بالا می‌بره و هم گیج کننده نمی‌شه هر چیز جدید:

Provides a complete reference to the Kotlin language and the standard library

و اگر بخواید همه‌اش رو یکجا به شکل فایل داشته باشید:

Full Kotlin Reference - PDF

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

Using Kotlin for Android Development

که به طور کلی یکم خودش رو تبلیغ می‌کنه و بعد ۳ مورد مهاجرت به کاتلین رو معرفی می‌کنه، اولی اپلیکیشن پینترست است که درکنفرانس Droidcon NYC 2016 خانم Christina Lee مهندس اندروید پینترست توضیح می‌ده که چرا و چگونه کاتلین رو به پروژه‌اشون اضافه کردن:

https://www.youtube.com/watch?v=mDpnc45WwlI
https://www.youtube.com/watch?v=mDpnc45WwlI

اسلایدهاش رو هم می‌تونید از اینجا بگیرید:

KOTLIN IN PROD - Slides

بعد پست خوبی از Dan Kim که توضیح می‌ده چطور تمام Basecamp 3 رو با کاتلین پیاده‌سازی کردند. خودش هم چند تا ارجاع خوب به چند پست بلاگ و ویدیوی خوب Jake Wharton داره:

How we made Basecamp 3’s Android app 100% Kotlin

Our best advice based on a year of real-world shipping

و در آخر هم مهندس ارشد App Lock در Keepsafe توضیح می‌ده که کل اپلیکیشن رو با کاتلین پیاده کردند:

Lessons from converting an app to 100% Kotlin

هنوز قانع نشدید؟ خب این پست رو در مدیوم بخونید:

Why you should totally switch to Kotlin

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

  • Kotlin on Android. Now official
  • Why Kotlin is my next programming language
  • Scala vs Kotlin
  • Swift is like Kotlin
  • The Road to Gradle Script Kotlin 1.0
  • Introducing Kotlin support in Spring Framework 5.0
  • 10 cool things about Kotlin
  • Kotlin full stack application example
  • Why I abandoned Java in favour of Kotlin
  • I used Kotlin at Hackathon
  • From Java to Kotlin
  • Kotlin Idioms

تا اینجا ما با اینکه چرا کاتلین خوبه و چرا می‌خوایم از کاتلین استفاده کنیم و چرا باید یه چیزایی رو در مورد کاتلین بدونیم آشنا شدیم. حالا وقتشه که بیشتر جلو بریم و وارد جزییات بشیم. یکی از کسایی که در تیم توسعه کاتلین فعاله هادی حریری است. دو مجموعه آموزشی خیلی خوب داره. یکی مقدماتی و دیگری پیشرفته. به نظرم خیلی ساده و خوب همه چیز رو توضیح می‌ده. خیلی توصیه‌اش می‌کنم:

Introduction to Kotlin Programming

From Hello World to Interoperability with Java | By Hadi Hariri

O'Reilly Media | October 2016 | 5 hours 14 minutes

بعد از دیدن این دوره یه کتاب خیلی ساده و روون که خوندم Programming Kotlin از انتشارات پکت بود:

عناوین سرفصل کتاب:

  • Getting Started with Kotlin
  • Kotlin Basics
  • Object-Oriented Programming in Kotlin
  • Functions in Kotlin
  • Higher Order Functions and Functional Programming
  • Properties
  • Null Safety, Reflection, and Annotations
  • Generics
  • Data Classes
  • Collections
  • Testing in Kotlin
  • Microservices with Kotlin
  • Concurrency

بعد از این کتاب رفتم سراغ دوره پیشرفته هادی حریری:

Advanced Kotlin Programming

From Nested Functions to Asynchronous Programming | By Hadi Hariri

O'Reilly Media | October 2016 | 3 hours 00 minutes