کاتلین ،‌ زبانی جدید اما قوی و شیرین برای برنامه نویسی اندروید

سلام

زبان برنامه نویسی جدید کاتلین چطوره ؟

من یکسالی میشه که برنامه نویسی اندروید با کاتلین را شروع کردم

باید بگم که من قبلا هم برنامه نویسی اندروید ( تقریبا از سال 92 که کافه بازار جون گرفت ) انجام میدادم البته زبان اصلی من زبان برنامه نویسی جاوا بود .

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

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

به همین علت هم بود که گوگل سالهای بعدی یک محیط جدیدی ساخت به نام اندروید استودیو و از برنامه نویسان خواست تا از محیط قدیمی ایکلیپس سریعا کوچ کنند به محیط اندروید استودیو جدید .

مشکلات جدید با اندروید استودیو

مشکلات جدید با اندروید استودیو
مشکلات جدید با اندروید استودیو


خب نسخه های اولیه خود اندروید استودیو هم کلی باگ داشت و مشکلات کند بودن و اشغال کردن خیلی زیاد از منابع بطوریکه من رم 8 داشتم و لپتاپم با نسخه های اولیه اندروید استودیو هنگ میکرد ...

این کمی سرعت و سنگینی هم بخاطر وجود سیستم گردل در اندروید استودیو بود . ...

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

یکی از روش هایی که برای حل مشکلات سرعت اندروید استودیو پیشنهاد میشه خریدن یک هارد SSD بود و ارتقا رم به بالای 8 گیگ ...

البته من همه ی این کارها رو کردم ولی محیط اندروید استودیو بازم ادم رو اذیت میکرد

راستی یادم رفت بگم نسخه های اولیه این محیط خیلی سرد بود ادم بازش میکرد فکر میکرد یه محیط نرم افزاری مثل فتوشاپ باز کرده اصلا شبیه چیزی برای برنامه نویسی نبود :‌))))

مشکلات اندروید استودیو با انتشار سریع نسخه های جدید توسط تیم گوگل بهبود پیدا کرد و رفته رفته بهتر شد و اینجا بود که من برای همیشه به ایکلیپس گفتم بای بای ... :)

حالا با محیط جدید یعنی اندروید استودیو انس گرفتم ولی باز برنامه نویسی اندروید مشکلات خودش را داشت

مشکلات زبان جاوا در برنامه نویسی اندروید

جاوا یک زبان قوی هست و تجربه ی خیلی زیادی داره فکر کنم یه سی سال سن داره و شاید سنش از من بیشتره جاوا همه جا کاربرد داره و یکی از زبان های قدرتمنده

ولی چیزی که جاوا نداره سادگی اونه کدهاش خیلی پیچیده هستن ... شاید این چیزی بود که به پایتون میدان داد تا موفق بشه پایتون برعکس جاوا سادگی داره ... کدها قابل فهم و بسیار کوتاه و ساده هستند درست برعکس جاوا که همه چی در هم برهمه و یه عالمه اسم کلاس و تابع و کدها و سینتکس های عجیب غریب و مشکلات و خطاهای برنامه نویسی که واقعا رفع کردنش صبر ایوب میخاد ...

یکی از اون خطاها که بلاخره در هر برنامه نویس اندرویدی میخابه خطای معروف NullPointerException بود که اسمشو نمیدونم خطای چند میلیون دلاری گذاشته بودن ....

ولی این مسئله نبود فقط کدهای جاوا برای برنامه نویسی اندروید سالم نبودند یعنی اگر در یک جایی یک هو یک متغیری مقدارش خالی میشد اپلیکیشن شما کرش میکرد ...

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

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

یعنی عملا هسته ی اندروید استودیو برمیگرده به توسعه دهندگان جت برینز ....

خب از بحث دور نشیم داشتیم درمورد محصول جدید جت برینز میگفتیم بله ! تا اینکه در شرکت خوب جت برینز یک زبان برنامه نویسی جدیدی خلق شد به نام کاتلین ( kotlin ) که این زبان برنامه نویسی در ماشین مجازی جاوا اجرا میشد درست مثل خود کدهای جاوا !

یعنی قابلیت این رو داشت که کدهایی با این زبان نوشته بشه و در اندروید اجرا بشه !‌

تولد زبان کاتلین

تولد زبانی به نام کاتلین kotlin
تولد زبانی به نام کاتلین kotlin


اما کاتلین در دل اکثر برنامه نویسان اندرویدی جا باز کرد . این مسئله زمانی بود که هنوز خیلی ها نمیدونستن کاتلین چیه ولی خیلی های دیگه اپلیکیشن های خودشون رو با کاتلین مینوشتن و در نهایت خیلی از مشکلات جاوا ، دردسرهای جاوا و همچنین باگ هایی که با جاوا تولید میشد را دیگه نداشتن

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

  1. کدنویسی باهاش راحت تره
  2. کد های کمتری قراره بنویسید (‌ خلاصه است )
  3. یادگیریش آسون تره
  4. کدهای سالمی داره بخاطر وجود سیستم Null Safety که باعث میشه دیگه همینطوری متغیرها مقدار Null به خودشون نگیرن که فردا اپلیکیشن شما هزار بار کرش بکنه
  5. اپ های تولید شده منابع کمی از سخت افزار اندروید اشغال میکنند
  6. برنامه های تولید شده باطری کمتری از دیوایس اندرویدی مصرف میکند چون مصرف منابعشون کمه طبیعیه
  7. و خیلی چیزای دیگه

مزیت های کاتلین نسبت به جاوا برای برنامه نویسی اندروید را دیدیم و این رو قبل از ما تیم گوگل هم دیده و همینجا بود که تصمیم گرفتن کاتلین را بعنوان زبان رسمی برنامه نویسی اندروید معرفی کنند .

کاری که قبلا سابقه نداشت

خب دقیقا یادم نیست چه تاریخی بود ولی مطمئن چند سالی نمیشه که طی یک مراسمی به نام Google I/O تیم اندروید گوگل کاتلین را بعنوان زبان رسمی برنامه نویسی اندروید معرفی کرد . (‌تصویر زیر )

معرفی رسمی کاتلین توسط شرکت گوگل
معرفی رسمی کاتلین توسط شرکت گوگل


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

همگی هم تقریبا کاتلین رو پسندیدن و من کسی رو ندیدم کاتلین را یاد بگیره باهاش اپلیکیشن تولید بکنه و بعد بگه ای بابا کاتلینم شد زبان ؟ ولش کن برمیگردم سر جاوا !!!‌چنین چیزی اصلا اتفاق نیوفتاده

اما من چطور برنامه نویسی کاتلین را شروع کردم

تازه که کاتلین اومده بود منابع آموزشی خوب واسش واقعا وجود نداشت نه تو یوتیوب نه تو یودمی نه جای دیگه !

حتی استک اورفلو هم سوال های کاتلین بی جواب میموند چون اونطور متخصص خوب براش نبود ... خب طبیعیه جاوا ده ها سال قدمت داشت کاتلین دو سه ساله هم نبود ...

این زبان نو پا تلاش کرد و کم کم رشد کرد

کم کم آموزش ها یکی یکی واسش دراومد ...

من قبل از اینکه اموزش های ویدیویی ببینم سعی میکردم همه چی را از مستندات سایت اصلی زبان کاتلین یاد بگیرم ولی باور کنید مستنداتش خوب نبودن حتی برای یادگیری آرایه دو بعدی یک هفته علاف شدم و آخرش نفهمیدم مستندات کاتلین داره چی میگه ( هنوزم همونطوره گنگه )‌

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

ولی با تعجب به یک دوره رسیدم که در 99 جلسه ... فکر کنم نصف دوره کل سینتکس این زبان جدید را یاد میداد و همش در محیط Intellij بود و مدرس خودش میگفت برای یادگیری سینتکس اصلی کاتلین بهتره با محیط اینتلی جی کار کنید و بعد که خوب یاد گرفتید برید سراغ اندروید استودیو و برنامه نویسی واقعی برای اپلیکیشن اندرویدی ...

نصف بعدی این دوره پروژه محور بود یه گیم توش میساخت و دو تا اپلیکیشن که سورس کدهاش هم کنارش بود خیلی عالی بودن یعنی نکات داخلش انقدر روان و خوب گفته شده بودن که من مسائلی که هفته ها درگیرش بودن تازه فهمیدم عه چقدر ساده بودن ولی من منبع خوبی نداشتم

دوره را اقای مهندس نیک زاد تهیه کردن واقعا دستشون درد نکنه همینجا تشکر میکنم ازشون

من هنوزم دورشون رو دارم و از سایت آواسام تهیه کرده بودم

من یه فرهنگ خوب در سایت های خارجی دیدم که مثلا یکی یه محصولی رو میخره اگر کیفیت خوبی داشت تعریف کردن و معرفی اون محصول به دیگران را وظیفه و مسئولیت خودش میدونه و این خلی جالبه

منم خب از این محصول راضی ام چرا دروغ بگم قیمتشم نسبت به دیگه دوره های فارسی فوق العاده بود

این کاوره محصول آموزشی کاتلین که میتونید استفادش کنید و من شدیدا توصیه میکنم حتما تهیه اش کنید :‌

دوره ی آموزش کاتلین استاد نیک زاد
دوره ی آموزش کاتلین استاد نیک زاد


برای تهیه این دوره هم به لینک زیر برید

دوره ی آموزش کاتلین استاد نیک زاد

امیدوارم مقالم مفید بوده باشه