آموزش کاتلین

آنچه در این صفحه می خوانید:

کاتلین (Kotlin) چیست؟

کاتلین یک زبان برنامه نویسی چند سکویی، استاتیک و همه منظوره با استنتاج نوع است. کاتلین توسط JetBrains طراحی شده که طراح رسمی هوشمندانه ترین IDE جاوا، به نام Intellij IDEA است. به گونه ای طراحی شده است که به طور کامل با جاوا همکاری کند. نسخه JVM کتابخانه استاندارد آن به کتابخانه کلاس جاوا بستگی دارد، اما استنتاج نوع باعث می شود که سینتکس آن مختصر تر باشد. همچنین تحت تاثیر زبان های دیگر برنامه نویسی مانند جاوا، اسکالا، گرووی (Groovy) و غیره است. سینتکس Kotlin ممکن است دقیقا مشابه با JAVA نباشد، با این حال، در داخل Kotlin کتابخانه کلاس Java موجود است تا نتایج فوق العاده برای برنامه نویسان تولید کند. قابلیت تعامل، ایمنی کد و وضوح را برای توسعه دهندگان در سراسر جهان فراهم می کند.

به طور رسمی توسط Google برای توسعه تلفن همراه در اندروید پشتیبانی می شود. از زمان انتشار اندروید استودیو 3.0 در اکتبر 2017، کاتلین به عنوان جایگزینی برای کامپایلر استاندارد جاوا درج شده است. کامپایلر اندروید کاتلین به کاربر اجازه می دهد تا از بین کد های سازگار با جاوا 6 یا جاوا 8 استفاده کند.کاتلین از مه 2019 زبان اصلی مورد علاقه Google برای توسعه برنامه اندروید است. در سال 2017، Google اعلام کرد Kotlin زبان رسمی توسعه اندروید است. کاتلین یک زبان برنامه نویسی اوپن سورس است که ویژگی های برنامه نویسی شی گرا و تابعی را در یک پلتفرم منحصر به فرد ترکیب می کند. همچنین از طریق بنیاد کاتلین توسط JetBrains و Google حمایت مالی می شود.

ویژگی های کاتلین (Kotlin)

بهره وری

زبان برنامه نویسی Kotlin نه تنها برای یادگیری آسان است، بلکه در شیوه کدگذاری برنامه شما نیز مؤثر است. برنامه نویسان دیگر نیازی به صرف وقت زیادی برای جستجوی در این زبان نخواهند داشت. یکی از جذاب ترین ویژگی های Kotlin برای توسعه دهندگان این است که باعث کاهش طول کد می شود. در مقایسه با جاوا، می توانید همین موارد را با خطوط کمتری بنویسید. در حقیقت، کدگذاری تقریبا 20٪ کمتر از جاوا است. با این کاهش طول، شانس بهتری برای بهبود کیفیت و عملکردها دارید. Kotlin اساسا باعث می شود که برنامه نویسی کارایی داشته باشد و آزمایش آن را بی نقص انجام دهد.

گسترش توابع

همانطور که از نام "Extension Functions" پیداست به شما امکان می دهد ویژگی هایی را به مؤلفه موجود خود اضافه کنید. این برای محاسبات و همچنین برای اضافه کردن رشته ها مناسب است.به عبارت ساده، گسترش توابع به شما امکان می دهد بدون تغییر بخش عمده کد عملکرد را گسترش دهید.

قابلیت همکاری گسترده

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

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

در کاتلین، می توانید هنگام تهیه پروژه خود، به راحتی NullPointerException را شناسایی کنید. این تضمین می کند که هر متغیر به به صورت غیر معتبر عمل می کند را شناسایی کند، بنابراین تعداد کراش را در ران تایم کاهش می دهد. اگر می خواهید بر روی یک مقدار null نگه دارید، فقط علامت سؤال را به عنوان پایان نوع متغیر اضافه کنید.

هزینه پایین

دلیل عمده کسب و کار طرفداری از Kotlin نسبت به سایر زبان های برنامه نویسی هزینه کم دریافت آن است. کاتلین اوپن سورس است، بنابراین نیازی به سرمایه گذاری در لایسنس ندارید. ثانیا، نسبت به سایر زبان های برنامه نویسی، یادگیری Kotlin برای توسعه دهندگان بسیار آسان است.

از دیگر ویژگی های کاتلین میتوان به موارد زیر اشاره کرد:

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

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

مزایای استفاده از کاتلین (Kotlin)

کاملا قابل تعامل با جاوا است

همانطور که قبلا نیز گفته شد، یکی از بزرگترین راحتی استفاده از Kotlin این است که با جاوا سازگار است! با تمام ابزارها و فریمورک های آن، می توانید موارد را به پروژه های کاتلین بدون نیاز به تغییر کل پروژه در جاوا خود اضافه کنید.

مختصر تر از جاوا است

و این بدون شک یکی از بزرگترین مزیت های Kotlin نسبت به توسعه اندروید جاوا است. شما قادر هستید مشکلات مشابه را با استفاده از خطوط کمتری از کد حل کنید که تنها می تواند با یک خطای کمتر و خرابی در سمت UX به یک کد مطمئن تر تبدیل شود. برخی از ویژگی های کاتلین که مسئولیت خاص بودن کد آن را بر عهده دارند عبارتند از:

  • Data classes
  • Smart casts
  • Type interface
  • Properties

کد امن

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

با کامپایلر دقیق تر و ایمن همراه است

هنگام ایجاد این زبان برنامه نویسی، اضافه کردن یک کامپایلر خوب یکی از اهداف اصلی تیم توسعه Kotlin بوده است. در اینجا برخی از جنبه های مهم کامپایلر در کاتلین آورده شده است:

  • خطاها را در زمان کامپایل و نه در ران تایم تشخیص می دهد و از اصل "fail-fast" استفاده می کند.
  • تعداد زیادی چک را انجام می دهد، خطاهای ران تایم و تعداد اشکالات موجود در کد را کاهش می دهد.

حفظ آن آسانتر است.

بدون دلیل نیست که کاتلین یک زبان یک مرحله ای برای توسعه همه برنامه ها باشد، از IDE های زیادی پشتیبانی می کند که شامل Android Studio می باشد. بنابراین، شما می توانید از همه ابزارهایی که قبلا مورد آزمایش قرار داده اید، برای حفظ کد پایه خود استفاده کنید.

برای تقویت بهره وری شما ایجاد شده است.

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

  • اعلام شی
  • مقادیر پارامتر
  • توابع توسعه

معماری کاتلین (Kotlin)

Kotlin یک زبان برنامه نویسی است و معماری خاص خود را برای اختصاص حافظه و تولید خروجی با کیفیت به کاربر نهایی دارد. سناریوهای مختلفی وجود دارد که کامپایلر کاتلین متفاوت کار خواهد کرد، هر زمان که انواع دیگری از زبان ها مانند Java و جاوااسکریپت را هدف قرار دهد. کامپایلر Kotlin یک کد بایت ایجاد می کند و کد بایت می تواند روی JVM اجرا شود که دقیقا برابر با کد بایت تولید شده توسط فایل Java.class است. هر زمان که دو فایل رمزگذاری شده بایت روی JVM اجرا شود، می توانند با یکدیگر ارتباط برقرار کنند و اینگونه است که یک ویژگی قابل تعامل در Kotlin برای جاوا ایجاد می شود.

معماری کاتلین

هرگاه Kotlin JavaScript را هدف قرار دهد، کامپایلر فایل kt. را به ES5.1 تبدیل می کند و یک کد سازگار برای JavaScript ایجاد می کند. کامپایلر Kotlin قادر است کدهای سازگار با پلتفرم پایه را از طریق LLVM ایجاد کند.

کاتلین و طراحی وب

طراحی وب (Web Design) شامل مهارت ها و رشته های مختلفی در تولید و نگهداری وب سایت ها است. زمینه های مختلف طراحی وب شامل طراحی وب گرافیکی، که شامل طراحی رابط کاربری (UI)، از جمله کد استاندارد و نرم افزار اختصاصی و طراحی تجربه کاربری (UX) و بهینه سازی موتور جستجو می باشد. اغلب افراد زیادی در تیم هایی مشغول به کار هستند که جنبه های مختلف فرایند طراحی را پوشش می دهند. اگرچه برخی از طراحان همه آنها را به عنوان فول استک دولوپر پوشش می دهند.

اصطلاح طراحی وب معمولاً برای توصیف فرایند مربوط به طراحی فرانت اند (سمت کلاینت) وب سایت استفاده می شود. طراحی وب تا حدودی با مهندسی وب در دامنه وسیع توسعه وب همپوشانی دارد. انتظار می رود که طراحان وب آگاهی از قابلیت استفاده داشته باشند و اگر نقش آن ها شامل ایجاد نشانه گذاری باشد، انتظار می رود که آنها نیز با دستورالعمل های دسترسی به وب به روز شوند.

Kotlin را می توان برای هر نوع توسعه server-side،client-side وب و اندروید، استفاده کرد. با استفاده از Kotlin / Native پشتیبانی از سیستم عامل های دیگر مانند سیستم های جاسازی شده، macOS و iOS در حال آمدن است. مردم از Kotlin برای برنامه های کاربردی موبایل و سرور، سمت کلاینت با JavaScript یا JavaFX و علم داده استفاده می کنند.

علاوه بر استفاده برای بک اند وب، می توانید از Kotlin / JS برای فرانت اند وب نیز استفاده کنید. Kotlin می تواند از تعاریف DefinitelyTyped برای تایپ استاتیک برای کتابخانه های مشترک جاوااسکریپت استفاده کند و با سیستم های ماژول موجود مانند AMD و CommonJS سازگار است.

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

کاتلین برای توسعه برنامه های کاربردی سمت سرور مناسب است، به شما امکان می دهد ضمن حفظ سازگاری کامل با پشته های فناوری مبتنی بر جاوا و منحنی یادگیری صاف، کد مختصر و رسا را ​​بنویسید:

  • Expressiveness: ویژگی های نوآورانه زبان Kotlin، مانند پشتیبانی از سازندگان نوع ایمن و خاصیت های تفویض شده، به ایجاد انتزاعات قدرتمند و آسان برای استفاده کمک می کند.
  • مقیاس پذیری: پشتیبانی Kotlin از coroutines به ایجاد برنامه های سمت سرور کمک می کند تا به تعداد زیادی مشتری با نیازهای سخت افزاری متوسط ​​مقیاس شوند.
  • قابلیت همکاری: Kotlin کاملاً با کلیه فریمورک های مبتنی بر جاوا سازگار است، که به شما امکان می دهد ضمن بهره گیری از مزایای یک زبان مدرن، در پشته فن آوری آشنا خود بمانید.
  • مهاجرت: کاتلین از مهاجرت تدریجی و گام به گام از پایگاه های بزرگ کد از جاوا به کاتلین پشتیبانی می کند. می توانید ضمن نگه داشتن قسمت های قدیمی تر سیستم خود در جاوا، نوشتن کد جدید را در Kotlin آغاز کنید.
  • ابزار دقیق: علاوه بر پشتیبانی عالی از IDE به طور کلی، Kotlin ابزاری مخصوص فریمورک (به عنوان مثال، برای اسپرینگ) را در افزونه برای IntelliJ IDEA Ultimate ارائه می دهد.
  • Curve Learning: برای یک توسعه دهنده جاوا، کار با Kotlin بسیار آسان است. مبدل خودکار جاوا به کاتلین که در افزونه Kotlin موجود است در اولین مراحل کمک می کند. Kotlin Koans با یک سری تمرینات تعاملی راهنمایی را از طریق ویژگی های اصلی زبان ارائه می دهد.

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

  • اسپرینگ با استفاده از ویژگی های زبان Kotlin برای ارائه API های مختصر تر، از نسخه 5.0 شروع می کند. تولید کننده پروژه آنلاین به شما امکان می دهد تا به سرعت یک پروژه جدید را در Kotlin تولید کنید.
  • Vert.x، فریمورکی برای ساخت برنامه های کاربردی وب واکنش پذیر در JVM، پشتیبانی ویژه ای را برای Kotlin از جمله مستندات کامل ارائه می دهد.
  • Ktor فریمورکی است که توسط JetBrains برای ایجاد برنامه های وب در کاتلین، استفاده از کوروتین ها برای مقیاس پذیری بالا و ارائه API با کاربرد آسان و اصطلاحاً ساخته شده است.
  • kotlinx.html DSL است که می تواند برای ساخت HTML در یک برنامه وب استفاده شود. این گزینه به عنوان جایگزینی برای سیستم های سنتی قالب گیری مانند JSP و FreeMarker عمل می کند.
  • Micronaut یک فریمورک کامل پشته و مدرن مبتنی بر JVM برای ساختن میکروسرویس های ماژولار و به راحتی قابل آزمایش و بدون سرور است. این محصول با بسیاری از ویژگی های مفید و داخلی ساخته شده است.
  • Javalin یک فریمورک وب بسیار سبک وزن برای Kotlin و Java است که از WebSockets، HTTP2 و درخواست های async پشتیبانی می کند.
  • گزینه های موجود برای استقامت شامل دسترسی مستقیم به JDBC، JPA و همچنین استفاده از پایگاه داده های NoSQL از طریق درایورهای جاوا است. برای JPA، افزونه کامپایلر kotlin-jpa کلاس های کامپایل شده Kotlin را با الزامات فریمورک تطبیق می دهد.

توسعه اندروید با کاتلین (Kotlin)

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

علاوه بر این، گوگل Android TV را برای تلویزیون ها، Android Auto برای اتومبیل ها و Wear OS برای گجت های پوشیدنی طراحی کرده است که هرکدام دارای رابط کاربری تخصصی هستند. انواع مختلف اندروید نیز در کنسول های بازی، دوربین های دیجیتال، رایانه های شخصی و سایر لوازم الکترونیکی استفاده می شود.

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

با استفاده از Kotlin برای توسعه Android، می توانید از این موارد بهره مند شوید:

  • کد کمتری با خوانایی بیشتر همراه است. برای نوشتن کد خود زمان کمتری صرف کنید و برای فهمیدن کد دیگران کار کنید.
  • زبان و محیط بالغ. کاتلین از زمان ایجاد آن در سال 2011، نه تنها به عنوان یک زبان بلکه به عنوان یک اکوسیستم کامل و با ابزار قدرتمند، بطور مداوم توسعه یافته است. اکنون این یکپارچه در Android Studio یکپارچه شده است و توسط بسیاری از شرکت ها برای توسعه برنامه های اندرویدی بطور فعال مورد استفاده قرار می گیرد.
  • Kotlin از Android Jetpack و سایر کتابخانه ها پشتیبانی می کند. برنامه های افزودنی KTX ویژگی های زبان کاتلین، مانند کوروتین، توابع پسوند، لامبدا و پارامترهای نامگذاری شده را به کتابخانه های موجود Android اضافه می کند.
  • قابلیت همکاری با جاوا. بدون نیاز به انتقال کلیه کدهای خود به Kotlin می توانید از Kotlin به همراه زبان برنامه نویسی جاوا در برنامه های خود استفاده کنید.
  • پشتیبانی از توسعه multiplatform. شما می توانید از Kotlin برای توسعه برنامه های نه تنها Android بلکه iOS، پس زمینه و وب استفاده کنید. از مزایای اشتراک گذاری کد مشترک در میان سیستم عامل ها لذت ببرید.
  • ایمنی کد و خوانایی بهتر منجر به خطاهای کمتری می شود. کامپایلر Kotlin خطاهای باقیمانده را تشخیص داده و کد را ایمن می کند.
  • یادگیری کاتلین بسیار آسان است، خصوصاً برای توسعه دهندگان جاوا.
  • جامعه بزرگ پشتیبانی کاتلین در سراسر جهان رو به رشد است. طبق گفته های گوگل، بیش از 60٪ از 1000 برنامه برتر فروشگاه Play از Kotlin استفاده می کنند.
  • کاتلین برای جاوااسکریپت

کاتلین امکان هدف قرار دادن جاوا اسکریپت را فراهم می کند. این کار را با انتقال کاتلین به JavaScript انجام می دهد. اجرای فعلی ECMAScript 5.1 را هدف قرار داده است، اما برنامه هایی برای هدف قرار دادن ECMAScript 2015 نیز وجود دارد.

وقتی هدف JavaScript را انتخاب می کنید، هر کد Kotlin که جزئی از پروژه است و همچنین کتابخانه استاندارد که با Kotlin ارسال می شود به JavaScript منتقل می شود. با این وجود، JDK و هر چارچوب JVM یا Java یا کتابخانه مورد استفاده را حذف نمی کند. هر پرونده ای که Kotlin نباشد در هنگام تدوین نادیده گرفته می شود.

کامپایلر کاتلین سعی می کند اهداف زیر را دنبال کند:

  • بازده ای را ارائه دهید که از نظر اندازه بهینه باشد
  • خروجی را که جاوا اسکریپت قابل خواندن است ارائه دهید
  • قابلیت همکاری با سیستمهای ماژول موجود را فراهم کنید
  • عملکردهای مشابه در کتابخانه استاندارد را با هدف قرار دادن جاوا اسکریپت یا JVM (به بزرگترین درجه ممکن) ارائه دهید.

نحوه استفاده کاتلین برای جاوااسکریپت

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

  • ایجاد کد Kotlin که جاوا اسکریپت سمت مشتری را هدف قرار می دهد
  • تعامل با عناصر DOM. Kotlin مجموعه ای از رابط های تایپ شده را برای تعامل با Model Object Model فراهم می کند، و امکان ایجاد و بروزرسانی عناصر DOM را فراهم می کند.
  • تعامل با گرافیک هایی مانند WebGL. با استفاده از WebGL می توانید از Kotlin برای ایجاد عناصر گرافیکی در یک صفحه وب استفاده کنید.
  • ایجاد کد کاتلین که جاوا اسکریپت سمت سرور را هدف قرار می دهد
  • کار با فناوری سمت سرور. شما می توانید از Kotlin برای تعامل با JavaScript در سمت سرور مانند Node.js استفاده کنید

کاتلین را می توان با کتابخانه ها و چهارچوب های موجود در اشخاص ثالث مانند jQuery یا React استفاده کرد. برای دسترسی به چارچوب های شخص ثالث با یک API کاملاً تایپ شده، می توانید با استفاده از ابزار dukat تعاریف TypeScript را از مخازن تعاریف نوع Definitely Typeed به Kotlin تبدیل کنید. از طرف دیگر، می توانید از نوع پویا برای دسترسی به هر چارچوبی بدون تایپ کردن قوی استفاده کنید.

JetBrains چندین ابزار به طور خاص برای انجمن React ایجاد و نگهداری می کند: واگذاری واکنشی و همچنین ایجاد برنامه React Kotlin. حالت دوم به شما کمک می کند تا برنامه های React را با Kotlin بدون پیکربندی ساخت، شروع به ساخت React کنید. کاتلین با CommonJS، AMD و UMD سازگار است و تعامل با سیستم های مختلف ماژول را فراهم می کند.

Kotlin/Native برای نیتیو

Kotlin/Native یک فناوری برای تهیه کد Kotlin به باینری های بومی است که می تواند بدون یک ماشین مجازی اجرا شود. این یک پس زمینه مبتنی بر LLVM برای کامپایلر Kotlin و اجرای بومی کتابخانه استاندارد Kotlin است.

چرا Kotlin/Native؟

Kotlin / Native در درجه اول به گونه ای طراحی شده است که امکان جمع آوری سیستم عامل هایی را که دستگاه های مجازی مطلوب یا ممکن نیستند، به عنوان مثال، دستگاه های تعبیه شده یا IOS فراهم می کند. این شرایط را حل می کند که یک توسعه دهنده نیاز به تولید یک برنامه خودگردان داشته باشد که نیازی به اجرای زمان اضافی یا ماشین مجازی نداشته باشد.

Kotlin / Native از سیستم عامل های زیر پشتیبانی می کند:

  • iOS (arm32، arm64، شبیه ساز x86_64)
  • macOS (x86_64)
  • watchOS (arm32، arm64، x86)
  • tvOS (arm64، x86_64)
  • Android (arm32، arm64، x86، x86_64)
  • ویندوز (mingw x86_64، x86)
  • لینوکس (x86_64، arm32، arm64، MIPS، MIPS اندکی کمی)
  • WebAssemble (wasm32)

به راحتی می توان یک کد کامپایل شده کاملی را در پروژه های موجود نوشته شده به زبان های C، C ++، Swift، Objective-C و سایر زبان ها وارد کرد. همچنین استفاده از کد های بومی موجود، کتابخانه های استاتیک یا پویا C، چارچوب های Swift / Objective-C، موتورهای گرافیکی و هر چیز دیگری به طور مستقیم از Kotlin / Native آسان است.

كتابخانه های كوتلین / بومی به اشتراک گذاری كوتل كوتلین بین پروژه ها كمك می كند. POSIX، gzip، OpenGL، Metal، Foundation و بسیاری دیگر از کتابخانه های محبوب و چارچوب های اپل از قبل وارد شده و به عنوان کتابخانه های Kotlin / Native در بسته کامپایلر گنجانده شده اند.

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

پروژه های چند منظوره بین اهداف مختلف Kotlin و Kotlin / بومی پشتیبانی می شوند. این روش برای به اشتراک گذاشتن کد مشترک Kotlin بین بسیاری از سیستم عامل ها، از جمله Android، iOS، سمت سرور، JVM، سمت کلاینت، JavaScript، CSS و نیتیو است.

كتابخانه هاي Multiplatform، API هاي لازم را براي كد كوتلين مشترك فراهم كرده و به توسعه بخش هاي مشترك يك پروژه در كوته كوتلين يكبار و به اشتراک گذاري آن با كليه سكو هاي هدف كمك مي كنند.

مثال های کاتلین (Kotlin)

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

کاتلین محدودیت جاوا را برای اجازه دادن به روش های ایستا و متغیرهای موجود فقط در بادی کلاس امکان پذیر می کند. اشیا و توابع ایستا را می توان در سطح بالای بسته بدون نیاز به سطح کلاس زائد تعریف کرد. برای سازگاری با جاوا، کاتلین حاشیه نویسی از JvmName را ارائه می دهد که نام کلاس را در هنگام مشاهده بسته از یک پروژه جاوا مشخص می کند. شبیه C و ++C، نقطه ورود به برنامه Kotlin تابعی به نام "main" است که ممکن است یک آرایه حاوی هرگونه استدلال خط فرمان منتقل شود.

// Hello, World! example

fun main() {
  val scope = "World"
  println("Hello, $scope!")
}
fun main(args: Array<String>) {
  for (arg in args) {
    println(arg)
  }
}

متد های توسعه

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

package MyStringExtensions

fun String.lastChar(): Char = get(length - 1)
>>> println("Kotlin".lastChar())

با قرار دادن کد قبلی در سطح بالای یک بسته، کلاس String گسترش می یابد تا متد lastChar را شامل شود که در تعریف اصلی کلاس String گنجانده نشده است.

// Overloading '+' operator using an extension method

operator fun Point.plus(other: Point): Point {

    return Point(x + other.x, y + other.y)

}
>>> val p1 = Point(10, 20)
>>> val p2 = Point(30, 40)
>>> println(p1 + p2)
Point(x=40, y=60)
نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود