تا پایان امشب - بیشترین تخفیف تا امروز (%۷۰ و %۸۷) ویژه حمایت از دانشجویان‌ و کسب‌وکارهای آسیب‌دیده جزئیات

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


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

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

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

برنامه نویسان OpenJDK در تلاش‌اند تا مشکلات جاوا ۸ را برطرف کنند، اما اندروید از تمامی ویژگی‌های جاوا ۸ استفاده نمی‌کند. برنامه نویسان هنوز در دنیای جاوای ۶ و ۷ گیرکرده‌اند و این موضوع قرار نیست در آینده‌ی نزدیک پیشرفتی داشته باشد. این دقیقا جایی است که چرا باید از زبان Kotlin برای برنامه‌نویسی در اندروید استفاده کرد؟ چرا باید از زبان برنامه نویسی Kotlin در اندروید استفاده کرد؟ زبان Kotlin وارد بازی می شود. این زبان Open Source و جدید که بر مبنای JVM یا ماشین مجازی جاوا کار می‌کند، در میان مهندسین برنامه‌نویسی اندروید محبوبیت زیادی پیداکرده است.

زبان‌های دیگری نیز هستند که بر مبنای JVM فعالیت می‌کنند، اما زبان برنامه نویسی کاتلین به شما این امکان را می‌دهد که به‌راحتی با استودیوی اندروید و IDE گوگل برای اندروید کارکنید که تا به حال هیچ زبانی به غیر از جاوا در اختیار کاربران قرار نداده است. حالا زمان آن فرا رسیده تا با یک زبان مدرن، پیچیده و آینده نگر، پروژه های اندرویدی خود را ایجاد کنید.

مشکل جاوا چیست؟

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

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

در ابتدای کار، خیلی علاقه ای به جدایی از جاوا نداشتم ولی با آشنایی بیشتر با زبان برنامه نویسی کاتلین، نظرم عوض شد. در ادامه به تعدادی از دلایل آن اشاره می کنم:

جاوا، خیلی قدیمی شده است!

جاوا یکی از پرمصرف ترین زبان ها بود؛ اما امروزه، جاوایی که ما در اندروید استفاده می کنیم هیچ نوع پشتیبانی برای Lambdas, Method references و Streams ندارد. هنوز مجبوریم از API های javax.time در نسخه های 6 و 7 استفاده کنیم. البته با برخی از ابزار ها می توان به این ویژگی ها دست پیدا کرد(مثل Retrolambda, ThreeTenABP)، اما این ابزار ها نیز دردسر های خاص خود را دارند. Android Nougat نیز تلاش زیادی کرده است تا ویژگی‌های جاوای 8 را با کمکJack Compiler پشتیبانی کند اما این ویژگی ها معمولا زمانی کاربرد دارند که هدف شما minSDK نسخه 24 باشد که با توجه به کند بودن بروزرسانی های اندروید، اصلا توصیه نمی شود.

جاوا پر ازخطاست!

یکی دیگر از مشکلات جاوا، روش کار آن با “Null” است که باعث ایجاد خطای معروف NPE یا NullPoniterException شده است. امروزه، NPEها دلیل اصلی خطا و مشکلات نرم افزاری در اندروید هستند. در حقیقت، هیچ برنامه ی اندرویدی وجود ندارد که بدون این خطا باشد(اگر دیدید حتما به ما هم اطلاع بدهید، چون خیلی مشتاقیم بدانیم چطور جلوی این خطا را گرفته اید).

“Nullabiltiy” یک مشکل بزرگ در اندروید است. Null یک روش راحت و مفید برای نشان دادن نبود یک مقدار هست و اندروید از آن در فریم ورک ها و API هایش استفاده می‌کند. جاوا کار با null ها را سخت تر کرده و این یکی از نقاط ضعف این بستر هست.

مشکل سوم این جاست که برنامه نویس ها معمولا توجهی به Inner class ها در جاوا نمی‌کنند که باعث می شود فراخوانی از خارج Class ها بیش از حد شود و برنامه های تولید شده در اندروید با مشکل کمبود حافظه روبرو شوند.

جاوا مجموعه عظیمی از ایراد ها را در خود جای داده است که در این جا به آن ها اشاره ای نمی کنیم. اگرچه از بزگترین مشکل آن نمی توان به همین راحتی گذشت.

تعارفات و کد های زیاد

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

“تعارفات” و کارهای زیادی برای کار با APIها در جاوا وجود دارد و اندروید به خاطر داشتن مراحل مختلف کاری، مثل دسترسی به پایگاه داده و تراکنش‌های مربوط به Fragmentها، این فرانید را بسیار پیچیده‌تر کرده است.

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

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

جاوا تنها زبانی نیست که با آن بتوان برای برنامه‌های اندرویدی کد نوشت. به‌غیراز جاوا، قوی‌ترین اکوسیستم اندرویدی که با ماشین مجازی جاوا MJV به‌خوبی کار می‌کند، Kotlin است. این زبان برنامه‌نویسی Open source توسط JetBrains ابداع گردیده است.

JetBrains یکی از محبوب‌ترین IDEها را بانام IntelliJ IDEA و استودیوی اندروید را ایجاد کرده است که گوگل از آن به‌عنوان بهترین و استانداردترین IDE برای برنامه‌نویسی اندرویدی یاد می‌کند. سختی‌های روزمره برنامه نویسان اندرویدی برای این گروه متخصص آشکارشده بود و به همین دلیل، آن‌ها Kotlin را ارائه کردند تا با این مشکلات مقابله کند. JetBrains از Kotlin در تولید محصولات خود استفاده می‌کند و احتمال این‌که این بستر در آینده رها شود بسیار کم است.

Kotlin با روشی نوین و آینده‌نگر، ویژگی‌هایی مثل Package Manager و Build را حذف کرده است. این دو ویژگی هم‌اکنون توسط Gradle و Maven ارائه می‌شوند. استفاده از این ویژگی‌ها در Kotlin باعث می‌شود تا پروژه‌هایی که توسط Maven و Gradle انجام‌گرفته‌اند، از بین بروند.

یکی دیگر از رویکردهای خوب در Kotlin، قرار نگرفتن فریم ورک Java Collections است. با کمک آن‌ها کار کمی ساده‌تر می‌شد ولی برنامه‌نویس‌ها مایل نبودند که JDKها خللی در کارشان ایجاد کنند.

یکی از مزیت‌های مهم در Kotlin، تصمیم های طراحی برنامه‌نویسی است که باعث می شود برنامه هم خوانی بالاتری با سیستم های مختلف داشته باشد و بتوان براحتی با سایر پروژه های اندرویدی و جاوا، کار کرد. برای مثال؛ Kotlin از Bytecode در نسخه جاوا پشتیبانی می‌کند که نیمی از دستگاه های اندرویدی موجود به آن وابسته اند.

Kotlin %100 در جاوا قابل اجراست!

این اولین موضوعی است که باعث شد من به Kotlin علاقه مند شوم. شما براحتی می توانید کد های Kotlin و جاوا را در یکدیگر اجرا کنید. هر دو دارای Bytecode مشابه هستند و هیچ مشکلی در انتقال کد ها از یکی به دیگری وجود ندارد.

این یعنی شما می توانید براحتی پروژه ی کنونی خود را در kotlin ادامه دهید. برای شروع بهتر است بخش های کوچکی از برنامه‌ی خود را در Kotlin بنویسید تا با ساختار‌های آن آشنا بشوید(که باید گفت خیلی ساده اند).

خود من، برای اولین بار بخش های کوچکی از یک پروژه ی بزرگ، مثلUIها و ساختار های تجاری ساده را با کمک Kotlin نوشتم. از این برنامه، فقط 4 تا 5 درصد در Kotlin نوشته شده و بقیه در جاوا است. هدف بعدی من تبدیل این کدها به Kotlin است. ترکیبی از کدهای جاوا و Kotlin در پروژه ی من مشکلی ایجاد نکرده است و کاربردی بودن این ترکیب واقعا کمک زیادی به من کرده است.

دیگر خبری از NPE ها نیست!

تیم برنامه نویسی من سه سال است که در حال ساخت برنامه های اندریدی است و NPEها همیشه باعث ایجاد اختلال در برنامه ها بوده اند. سرمایه گذاری زیادی صرف برطرف کردن این خطاها شده و بررسی های انجام شده بر روی Null ها باعث شده زمان زیادی برای این کار کسل کننده تلف بشود.

با Kotlin، دیگر نگران NPE ها نیستیم، چون که امنیت Nullها در سیستم تایپی Kotlin در نظر گرفته شده اند. شما براحتی می توانید در زمان کامپایل کد ها متوجهNPE ها شوید و دیگری نیازی به نگرانی از مشکلات نرم افزاری در زمان اجرا نیست.

این موضوع به شکلی عملی شده است؟ به شکل پیش فرض تمامی متغیر ها غیر Null هتسند. اگر شما نیازی به متغیری دارید که Null داشته باشد، باید با قرار دادن؟ این موضوع را تعریف کنید. فرض کنید یک متغیر داریم و مقداری برای آن تعریف می کنیم:

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

این بخوبی عمل خواهد کرد. حالا این یکی را امتحان کنید:

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

در این جا، کامپایلر نمی‌تواند پردازش کند و به شما این پیام را خواهد داد “Null can not be a value of a non-null type String”. این پیام به این خاطر نمایش داده شد که به شکل پیش فرض، نوع متغیر غیر Null است. همیشه باید به کامپایلر اعلام کنید که متغیر از نوع Null باشد:

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

حالا به راحتی قابل پردازش است اما هنوز باید برای دسترسی به این متغیر دقت کنید. اگر در کدنویسی شما این نوع از متغیر ها وجود داشته باشند، احتمال NPEها در زمان اجرا به حداقل خواهد رسید.

پشتیبانی از ابزارها و IDE های خوب

با Kotlin، نگران پشتیبانی از ابزارهای مختلف نباشید چون که یک شرکت معتبر پشت آن قرار گرفته است. JetBrains تخصص زیادی در زمینه IDEها در اینترنت دارد.

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

در استودیوی اندروید، تنها کاری که باید انجام شود نصب کردن این افزونه است:

https://plugins.jetbrains.com

به همین سادگی. افزونه‌ی Eclipse نیز براحتی در دسترس است، البته نیازی به آن حس نمی شود. تمامی ویژگی‌هایIDE در استودیوی اندروید در Kotlin به خوبی کار می‌کنند. می توانید کد های جاوا و Kotlin را راحت ترکیب کنید و پشتیبانی IDE از زبان‌های مبتنی بر JVM تا این حد نمی توانند موفق عمل کنند. ویژگی منحصر بفرد دیگر در Kotlin، تبدیل فایل های جاوا به Kotlin است. براحتی فایل های قدیمی جاوا را به نسخه ی معادل Kotlin تبدیل کنید.

من 99 درصد از فایل های که با جاوا نوشته شده و تبدیل به Kotlin شده اند را با موفقیت راه اندازی و استفاده کرده ام.

کد کمتر، زندگی بهتر

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

برای مثال، کد زیر برای یک Listener کلیک در جاوا نوشته شده است. همه در برنامه های اندرویدی خود از این حسگر کلی استفاده می‌کند. مشکل این جاست که کد های زیادی برای این کار ساده باید نوشته بشود و تعارفات زیادی در جاوا برای عکس العمل نسبت به این کلیک وجود دارد:

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

حالا این را در نظر بگیرید:

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

زبان برنامه نویسی کاتلین (Kotlin) یک زبان تجاری است

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

شما هم امتحان کنید

Kotlin زندگی شما را به عنوان یک برنامه نویس اندرویدی بسیار راحت تر خواهد کرد. ابزار های جدید آن به شما توانایی رشد و توسعه زیادی می‌دهد و شش سال تجربه کاری این زبان باعث شده تا جای پایش، در بازار برنامه‌نویسی محکم شود.

نتیجه گیری :

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

منابع به کار گرفته شده در این مطلب :

plugins.jetbrains.com
نظرات کاربران

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

0 نظر ثبت شده است
میهمان
رضوی (24 دی 1398 | 22:47)

مقاله خوبی بود ممنون ، ( شورع – اشتباه تایپی )

ارسال پاسخ
لرن فایلز
لرن فایلز
4092 روز همراهی
لرن فایلز (25 دی 1398 | 09:42)

خوشحالیم که رضایت داشتید. موفق باشید

ارسال پاسخ
محمدجواد امان
2409 روز همراهی
محمدجواد امان (22 خرداد 1397 | 11:37)

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

ارسال پاسخ
لرن فایلز
لرن فایلز
4092 روز همراهی
لرن فایلز (23 خرداد 1397 | 08:11)

سلام دوست من، من منظورتون رو متوجه نشدم، جمله ی اول شما سوالی هست یا خبری؟ اگر خبری هست که ما از این مورد خبر نداریم و اگر سوالی هست با توجه به چیزهایی که من خوندم در این رابطه اینطور نیست..

ارسال پاسخ
میهمان
حسین (5 اردیبهشت 1397 | 15:22)

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

من اواخر فصل پنج اندروید هستم

با تشکر

ارسال پاسخ
لرن فایلز
لرن فایلز
4092 روز همراهی
لرن فایلز (6 اردیبهشت 1397 | 11:30)

دوست عزیزم سلام
ما بخشی رو راه اندازی کردیم به نام مشاوره ی تخصصی
می تونین با ما تماس بگیرین و داخلی مشاوره ی تخصصی رو بزنین:

051-36110041
داخلی 2

ارسال پاسخ

نوشته های دیگر در دسته بندی برترین‌های بلاگ

راز موفقیت در تسلیم شدنه!

راز موفقیت در تسلیم شدنه!

راز موفقیت در تسلیم شدنه! شاید تو نگاه اول بگی این چه حرف چرتیه ولی مقاله رو تا ته بخون
دانشگاه منو برنامه نویس کرد ؟!

دانشگاه منو برنامه نویس کرد ؟!

فارغ و التحصیل برنامه نویسی از دانشگاه باشیم و یا متخصص به صورت دانش تجربی؟ کدوم درسته؟
برنامه ریزی کافیست ، عمل کنیم !

برنامه ریزی کافیست ، عمل کنیم !

عمل کردن بدون برنامه ریزی نتیجه بهتری از برنامه ریزی بدون عمل خواهد داشت
آموزش هک

آموزش هک