Kotlin اندرویدنویسی بدون محدودیتهای جاوا!

آموزش کامل Kotlin برای برنامه نویسان جاوا Kotlin for Java Developers یودمی ایران

در اینجا مقدار مشخصه isOn مربوط به شیء l2 را به صورت true تنظیم می‌کنیم. توجه کنید که مشخصه isOn به صورت خصوصی تعریف شده است و اگر تلاش کنید از خارج از کلاس به آن دسترسی داشته باشید، یک استثنا ایجاد می‌شود. این کلاس دارای یک مشخصه به نام isOn است که همانند یک متغیر تعریف شده است. آرگومان‌ها در زبان کاتلین با استفاده از کاما از هم جدا می‌شوند. همچنین نوع آرگومان صوری باید به صورت صریح نوع‌بندی شده باشد. توجه کنید که نوع داده آرگومان‌های واقعی و صوری باید با هم مطابقت داشته باشند، یعنی نوع داده آرگومان واقعی اول باید با نوع آرگومان صوری نخست یکسان باشد.

گزاره ()super.callMe متد ()callMe مربوط به کلاس A را فرا می‌خواند. به طور مشابه، ()super.callMe متد ()callMe مربوط به کلاس B را فراخوانی می‌کند. از این رو لزومی به استفاده از کلیدواژه open برای ارث‌بری زیرکلاس‌ها از آن وجود ندارد. یک پکیج مجموعه‌ای از تابع‌ها، مشخصه‌ها و کلاس‌ها، اشیا و اینترفیس‌های مرتبط با هم را سازمان‌دهی می‌کند. کلاس‌های مشتق‌شده MathTeacher و Footballer برای خود تابع‌های عضو خاصی به ترتیب به نام‌های ()teachMaths و ()playFootball دارند.

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

در این بخش از مقاله آموزش کاتلین به بررسی روش نمایش خروجی روی صفحه و همچنین دریافت ورودی‌های از کاربر در این زبان برنامه‌نویسی خواهیم پرداخت. در این بخش از مقاله آموزش کاتلین به بررسی اینترفیس‌ها در کاتلین پرداخته و شیوه پیاده‌سازی آن‌ها را در این زبان برنامه‌نویسی به همراه مثال‌هایی معرفی می‌کنیم. حلقه‌ها در برنامه‌نویسی برای تکرار یک بلوک خاص از کد استفاده می‌شوند. در این بخش از مقاله آموزش کاتلین با شیوه ایجاد حلقه while و do...while در برنامه‌نویسی کاتلین آشنا خواهیم شد. حلقه‌ها در برنامه‌نویسی برای تکرار یک بلوک خاص از کد تا زمانی که شرط معینی برقرار شود، استفاده می‌شود. زبان برنامه‌نویسی کاتلین می‌تواند روی ماشین مجازی جاوا (JVM) اجرا شود.

اندروید استودیو، به صورت پیش‌فرض هیچ آگاهی از نحوه کار با کاتلین ندارد. به همین دلیل، در قدم اول باید افزونه کاتلین را در اندروید استودیو نصب کرده و پیکربندی (Configure) آن را در پروژه خود انجام دهید. کامپایلر به صورت خودکار این موارد را به صورت داخلی ایجاد می‌کند و بدین ترتیب کد تمیزتری خواهیم داشت. ما به طور مکرر کلاس‌هایی می‌سازیم که کاری به جز نگهداری داده‌ها ندارند. در چنین کلاس‌هایی برخی کارکردهای استاندارد غالباً به صورت مکانیکی از داده‌ها مشتق می‌شوند. در کاتلین، این کار در کلاس داده اجرا می‌شود و به صورت داده‌ای علامت‌گذاری می‌شود.

Coursera یک شرکت آموزشی است که دوره های آموزشی آنلاین را که توسط دانشگاه ها و موسسات برجسته مانند استنفورد و ییل برگزار می شود، ارائه می دهد. آنها فقط مفهوم تلفن همراه را دارند و به همین دلیل تصمیم گرفتند از Kotlin استفاده کنند. Kotlin شبیه Swift است، یک زبان برنامه نویسی نسبتا جدید برای توسعه iOS است که این موضوع باعث ساده تر به اشتراک گذاری دانش بین مهندسان، ارتباطات بهتر و توسعه کلی کارآمدتر می شود. برنامه نویسی Java و Kotlin هر دو جز بهترین ها برای برنامه نویسی اندروید هستند. شاید بعد از خواند این مقاله، بخواهید کدهای جاوای خود را به کاتلین تبدیل کنید. نیازی به نگرانی نیست چراکه افزونه Kotlin، این کار را برایتان انجام می‌دهد.

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

Shadowsocks از زبان کاتلین برای مشتریان اندرویدی خود بهره برده است. Shadowsocks هر دو توسط کاربران در Google Play و سایر توسعه دهندگان قدردانی می شود. در ژوئیه ۲۰۱۱، JetBrains از پروژهٔ کاتلین پرده برداری کرد، زبانی جدید برای ماشین مجازی جاوا، که برای یک سال تحت توسعه و پیشرفت قرار داشت. سرپرست Dmitry Jemerov، JetBrains، اظهار داشت بیشتر زبان‌ها، آن ویژگی‌هایی که دنبالش هستند را ندارند. او به زمان کند کامپایل اسکالا به عنوان کمبودی واضح اشاره کرد.

سازنده یا constructor یک روش منسجم برای مقداردهی مشخصه‌های کلاس محسوب می‌شود. سازنده یک تابع عضو خاص کلاس است که در زمان مقداردهی (ایجاد) شیء فراخوانی می‌شود. با این حال، طرز کار سازنده‌ها در کاتلین نسبت به جاوا و زبان‌های دیگر برنامه‌نویسی کمی متفاوت است. پیشنهاد من به عنوان برنامه نویسی که از جاوا به سوی کاتلین آمده و 4 سال سابقه کار با زبان کاتلین را دارد این است که حتما برنامه نویسی اندروید را با کاتلین ادامه دهید. اگر تازه وارد هستید با کاتلین شروع کنید و اگر برنامه نویس جاوا هستید، به سوی کاتلین مهاجرت کنید.

برای تعریف یک تابع در کاتلین از کلیدواژه fun استفاده می‌کنیم. در مورد آرگومان‌های تابع در ادامه بیشتر توضیح خواهیم داد. همان طور که پیش‌تر اشاره کردیم، شما می‌توانید تابع‌ها را خودتان نیز ایجاد کنید. چنین تابع‌هایی به نام تابع‌های تعریف‌شده‌ی کاربر شناخته می‌شوند. کد درون بدنه سازه do یک بار و بدون بررسی عبارت تست (testExpression)‌ اجرا می‌شود. اگر عبارت تست به صورت true ارزیابی شود، کدهای درون بدنه حلقه اجرا می‌شوند و عبارت تست دوباره ارزیابی می‌شود.

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

جاوا، که توسط Sun Microsystems در سال 1991 معرفی شد، یک زبان برنامه‌نویسی شی‌ءگرا و مبتنی بر کلاس است که بسیار شبیه به C++ است. در حال حاضر، جاوا متعلق به اوراکل است و در میان توسعه‌دهندگان سراسر دنیا بسیار شناخته شده است. جاوا یکی از قدیمی‌ترین زبان‌های برنامه‌نویسی در جهان است که تقریبا در هر پلتفرم و دستگاه‌های تلفن همراه استفاده می‌شود. ولی اگر از قبل با زبان جاوا آشنایی دارید، پس دوره کاتلین مناسب شماست. همچنین در صورتیکه می خواهید برنامه نویسی اندروید را از کاتلین هم شروع کنید هیچ مانعی وجود ندارد چون در دوره کاتلین هم به مباحث مورد نیاز که باید درباره جاوا بدانید هم اشاره شده است. فلاتر یک فریم‌ورک توسعه برنامه‌های موبایل است که از زبان دارت استفاده می‌کند.

همان‌طور که بخش‌های قبلی به آن اشاره شد، یکی از دلایل ایجاد اخطار NullPointerException، این عملگر است. اگر یقین دارید که شیء شما نال نیست، می‌توانید برای «Dereference» کردن یا اشاره کردن به آن شیء، با خیال راحت از عملگر !! بسته مذکور را انتخاب کرده و به مسیر «FileNewKotlin File/Class» بروید تا یک کلاس جدید کاتلین ایجاد شود. توجه داشته باشید که بدون انتخاب بسته مذکور، شما قادر به دیدن گزینه «Kotlin File/Class» نخواهید بود. پروژه را ایجاد کرده و آن را اجرا کنید تا ببینید که با چه محیطی قرار است کار کنید. در جولای سال 2011 میلادی JetBrains از پروژه کاتلین که زبانی برای HVM بود رونمایی کرد و پس از آن نیز یک سال تحت توسعه بود.

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

IDE ایکلیپس را ری‌استارت کنید، زمانی که نصب کامل شد، می‌توانید یک آیکون میانبر در گوشه راست-بالای IDE ایکلیپس ببینید. با کلیک روی این لینک، پلاگین کاتلین برای ایکلیپس را نصب کنید. چنان که پیش‌تر اشاره کردیم کاتلین بر مبنای جاوا طراحی شده است. از این رو در صورتی که می‌خواهید از کاتلین استفاده کنید، ابتدا باید جاوا را نصب کنید. – برای شروع توسعه با Java، نیاز به نصب Java Development Kit (JDK) دارید.

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

یکی از اهداف اصلی کاتلین این است که به همان سرعت زیاد جاوا کامپایل شود. در فوریهٔ سال ۲۰۱۲، JetBrains منبع باز این پروژه را تحت مجوز Apache 2 ارائه کرد. Jetbrains امیدوار است که این زبان جدید IntelliJ IDEA را به پیش ببرد. تا اینکه توی سال 2011 زبان برنامه نویسی کاتلین توسط JetBrains معرفی شد. در سال ۲۰۲۱، رقابت بین زبان های برنامه نویسی سخت تر می شود. با در نظر گرفتن فرق کاتلین و جاوا ، هر دوی آنها مزایا و معایب خود را دارند.

این فرایند تا زمانی که عبارت تست به صورت false ارزیابی شود ادامه می‌یابد. زمانی که عبارت تست به صورت false ارزیابی شود، حلقه do..while خاتمه می‌یابد. برخلاف جاوا، در کاتلین هیچ عملگر بیتی و شیفت بیتی وجود ندارد. با این حال، برای اجرای این وظایف، تابع‌های مختلفی (با پشتیبانی از نمادگذاری میانوندی) مورد استفاده قرار می‌گیرند. توجه کنید که or و and تابع‌هایی هستند که از نمادگذاری میانوندی (infix notation) پشتیبانی می‌کنند. عملگرهای منطقی در گردش کنترل در عبارت‌هایی مانند if و when و همچنین حلقه‌ها کاربرد دارند.

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

در این بخش از مقاله آموزش کاتلین با عبارت break آشنا شدیم. عبارت‌های پرشی continue و return نیز در بخش‌های بعدی این مقاله ارائه شده‌اند. در این بخش از مقاله آموزش کاتلین به بررسی روش درج توضیح یا کامنت در کاتلین می‌پردازیم و علت استفاده از آن را شرح می‌دهیم. در مثال فوق با خطا مواجه می‌شویم زیرا امکان مقداردهی مجدد به متغیر تعریف شده با کلیدواژه val وجود ندارد. اکنون که با مفهوم متغیرهای کاتلین آشنا شدید، نوبت آن رسیده است که با مقادیر مختلفی که یک متغیر کاتلین می‌تواند بگیرد نیز آشنا شوید. همچنین، می‌توانید از منابع آموزشی آنلاین و مستندات رسمی اندروید برای یادگیری بیشتر در مورد توسعه برنامه‌های اندروید با Java و Kotlin استفاده کنید.

برنامه بررسی می‌کند که آیا Number یک عدد مثبت، یک عدد منفی یا صفر است. اگر یک شاخه از بلوک if شامل بیش از یک عبارت باشد، آخرین عبارت به عنوان مقدار بلوک بازگشت می‌یابد. زمانی که از تابع ()println استفاده می‌کنیم، تابع ()System.out.println به صورت داخلی فراخوانی می‌شود. این تابع به منظور نمایش خروجی روی صفحه در جاوا استفاده می‌شود. در این کد ()println رشته درون گیومه را در خروجی ارائه می‌کند. عملگرهای مقایسه و برابری در گردش کنترل از قبیل عبارت if، عبارت when و حلقه‌ها مورد استفاده قرار می‌گیرند.

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

این اینترفیس‌ها می‌توانند شامل تعاریف متدهای مجرد و همچنین پیاده‌سازی‌های متدهای غیر مجرد باشند. در کد فوق Person یک کلاس مبنا است و کلاس‌های MathTeacher ،Footballer و Businessman از کلاس Person مشتق شده‌اند. توجه کنید که کلیدواژه open که پیش از آکولاد در Person آمده، بسیار مهم است. بنابراین در مورد MathTeacher که یک کلاس مشتق‌شده است، همه قابلیت‌های Person را که کلاس مبنا است به ارث می‌بریم و یک قابلیت جدید به صورت ()teachMath اضافه می‌کنیم. به طور مشابه، در مورد کلاس Footballer، همه قابلیت‌ها را از کلاس Person ارث‌بری می‌کنیم و یک قابلیت جدید به نام ()playFootball نیز اضافه می‌کنیم.

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

بنابراین باید در خصوص کمیت و کیفیت استفاده از این قابلیت در کاتلین با مراقبت زیادی عمل کنیم. زمانی که شیء کلاس Person ایجاد شود، مقادیر "Joe" و 25 طوری به آن ارسال می‌شوند که گویی Person یک تابع است. این امر موجب مقداردهی مشخصه‌های firstName و age به ترتیب با مقادیر "Joe" و 25 می‌شود. روش‌های دیگری نیز برای استفاده از سازنده‌های اولیه وجود دارد که در بخش بعدی توضیح می‌دهیم. «بازگشت انتهایی» (Tail Recursion) یک مفهوم عمومی است و یک ویژگی زبان کاتلین محسوب نمی‌شود. برخی زبان‌های برنامه‌نویسی شامل کاتلین از آن برای بهینه‌سازی فراخوانی‌های بازگشتی استفاده می‌کنند، در حالی که برخی زبان‌های دیگر (مانند پایتون) از آن‌ها پشتیبانی نمی‌کنند.

در هنگام ساخت اپلیکیشنهای بومی (Native Applications) برای سیستم‌عامل اندروید (Android)، معمولاً برای اعمال عملیات و تعاریف دلخواه، از زبان برنامه‌نویسی جاوا (Java) استفاده می‌شود. در حالی که، زبان جاوا بسیار دشوار است و مشکلات مربوط به خود را دارد. اگر لازم باشد که کاتلین را در یک پروژه جاوا ادغام کنید، نیازی به تغییر دادن کل کد کاتلین وجود ندارد. تنها کافی است از تابع‌های بسط برای افزودن کارکرد‌های مورد نظر بهره بگیرید. معنی این حرف آن است که افراد می‌توانند به سادگی از قدرت تابع‌های بسط سوء‌استفاده کنند.


برنامه نویسی پویا