SlideShare a Scribd company logo
1 of 23
‫ارائه‬ ‫عنوان‬:
‫کاتلین‬‫توصیه‬ ‫چرایی‬ ‫و‬
‫آن‬ ‫بر‬ ‫گوگل‬
‫راهنما‬ ‫استاد‬:
‫یعقوبی‬ ‫آقای‬ ‫جناب‬
‫دانشجو‬:
‫گشایش‬ ‫علیرضا‬
‫صدرا‬ ‫دانشگاه‬
‫بهار‬۱۳۹۹
‫مقدمه‬:
‫و‬‫اندروید‬ ‫نویسان‬‫برنامه‬ ‫محفل‬ ‫نقل‬‫به‬ ‫کاتلین‬‫که‬ ‫است‬‫مدتی‬Trend‫است‬ ‫شده‬‫تبدیل‬‫جهانی‬ ‫و‬‫انی‬‫ر‬‫ای‬‫نویسان‬‫برنامه‬ ‫روز‬.‫حاضر‬ ‫حال‬ ‫در‬
‫که‬ ‫کرد‬‫خواهید‬ ‫مشاهده‬‫ا‬‫ر‬ ‫سایتی‬‫وب‬‫کمتر‬‫کاتلین‬‫آموزش‬‫باشد‬‫نداده‬‫پوشش‬ ‫ای‬‫گونه‬‫به‬‫ا‬‫ر‬‫آن‬ ‫معرفی‬ ‫یا‬ ‫و‬.‫فرصت‬‫این‬ ‫در‬‫معرفی‬‫به‬
‫ک‬ ‫خواهیم‬ ‫معرفی‬ ‫ا‬‫ر‬‫اند‬ ‫برده‬ ‫بهره‬ ‫بان‬‫ز‬‫این‬ ‫از‬‫که‬ ‫معروفی‬ ‫های‬‫شرکت‬ ‫همچنین‬ ‫یم‬‫ز‬‫پردا‬ ‫می‬ ‫آن‬ ‫های‬‫ویژگی‬ ‫و‬ ‫کاتلین‬‫از‬ ‫جامعی‬‫رد‬.
۱/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫بان‬‫ز‬‫کاتلین‬‫است‬ ‫شده‬ ‫داده‬‫توسعه‬‫روسیه‬ ‫در‬ ‫مستقر‬‫نویسان‬‫برنامه‬‫توسط‬‫که‬‫ایستا‬ ‫بان‬‫ز‬‫یک‬.‫کاتلین‬‫قابلیت‬‫این‬‫روی‬ ‫بر‬ ‫تا‬‫د‬‫ر‬‫دا‬ ‫ا‬‫ر‬
‫ی‬‫مجاز‬ ‫ماشین‬‫جاوا‬‫شود‬‫ا‬‫ر‬‫اج‬.‫بان‬‫ز‬‫به‬‫توان‬ ‫می‬ ‫همینطور‬ ‫و‬‫اسکریپت‬ ‫جاوا‬‫نمود‬ ‫کامپایل‬ ‫ا‬‫ر‬‫آن‬‫نیز‬.
‫اس‬‫ایش‬‫ز‬‫اف‬ ‫حال‬ ‫در‬ ‫سرعت‬‫به‬،‫کنند‬‫می‬ ‫استفاده‬ ‫کاتلین‬ ‫بان‬‫ز‬‫از‬‫که‬‫موبایل‬ ‫بردی‬‫ر‬‫کا‬‫های‬‫ر‬‫ا‬‫ز‬‫اف‬‫نرم‬ ‫دهندگان‬‫توسعه‬ ‫جامعه‬‫ت‬.‫سال‬ ‫در‬
۲۰۱۷‫کرد‬ ‫معرفی‬‫اندروید‬‫توسعه‬‫ای‬‫ر‬‫ب‬ ‫خود‬ ‫سمی‬‫ر‬ ‫بان‬‫ز‬ ‫دومین‬‫عنوان‬‫به‬‫ا‬‫ر‬ ‫کاتلین‬ ،‫گوگل‬ ،.‫بسیار‬ ‫شد‬‫ر‬،‫ن‬‫تاکنو‬ ‫مان‬‫ز‬‫آن‬‫از‬‫مهمی‬ ‫و‬‫بزرگ‬
‫است‬‫پیوسته‬ ‫وقوع‬‫به‬ ‫کار‬ ‫و‬‫کسب‬‫جوامع‬ ‫و‬ ‫دهندگان‬‫توسعه‬‫میان‬ ‫در‬‫ی‬ ‫نویس‬‫برنامه‬ ‫بان‬‫ز‬‫این‬‫ای‬‫ر‬‫ب‬ ‫تقاضا‬ ‫در‬.‫حال‬ ‫در‬ ‫گوگل‬‫بان‬‫ز‬ ‫حاضر‬
‫اعل‬‫اندرویدی‬‫های‬‫اپلیکیشن‬ ‫توسعه‬‫ای‬‫ر‬‫ب‬‫ی‬ ‫نویس‬‫برنامه‬ ‫های‬‫بان‬‫ز‬ ‫بهترین‬‫از‬ ‫یکی‬‫عنوان‬‫به‬ ‫ا‬‫ر‬ ‫کاتلین‬‫ی‬ ‫نویس‬‫برنامه‬‫است‬ ‫کرده‬ ‫م‬.‫نشان‬ ‫این‬
‫است‬‫ی‬ ‫نویس‬‫برنامه‬ ‫بان‬‫ز‬‫این‬‫انتظار‬ ‫در‬ ‫خوبی‬‫آینده‬‫که‬ ‫دهد‬‫می‬.
۲/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫یخچه‬‫ر‬‫تا‬:
‫کاتلین‬‫سال‬ ‫در‬۲۰۱۱‫کمپانی‬ ‫توسط‬Jetbrains‫پایدار‬ ‫ن‬‫ژ‬‫ر‬‫و‬‫اولین‬ ‫و‬ ‫شد‬ ‫معرفی‬((Stable‫سال‬ ‫در‬‫آن‬۲۰۱۶‫ن‬‫ژ‬‫ر‬‫و‬‫نام‬‫به‬1.0‫شد‬‫ائه‬‫ر‬‫ا‬.
‫دهندگان‬‫توسعه‬ ‫تیم‬ ‫سرپرست‬‫کاتلین‬AndreyBreslav‫د‬‫ر‬‫دا‬ ‫قصد‬‫که‬‫است‬‫ا‬‫ر‬‫یءگ‬ ‫ش‬ ‫و‬‫تمند‬‫ر‬‫قد‬ ‫بان‬‫ز‬‫یک‬ ‫کاتلین‬‫که‬‫داشته‬‫بیان‬
‫از‬‫جاوا‬‫نویسان‬‫برنامه‬‫به‬ ‫و‬‫کند‬ ‫عمل‬‫بهتر‬‫جاوا‬‫بدهد‬‫ا‬‫ر‬ ‫بان‬‫ز‬‫این‬‫به‬‫یجی‬‫ر‬‫تد‬ ‫مهاجرت‬ ‫ه‬‫ز‬‫اجا‬.
‫سال‬ ‫در‬۲۰۱۷‫گوگل‬‫ای‬‫ر‬‫ب‬‫ی‬ ‫نویس‬‫برنامه‬ ‫دوم‬ ‫بان‬‫ز‬‫عنوان‬‫به‬ ‫ا‬‫ر‬ ‫بان‬‫ز‬‫این‬ ‫سما‬‫ر‬‫اندروید‬‫کرد‬ ‫معرفی‬.
۳/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫‌های‌کلیدی‬‫ی‬‫ویژگ‬:
*‫تایپ‌استاتیک‬:‫کامپای‬ ‫مان‬‫ز‬ ‫در‬ ‫ت‬‫ر‬‫عبا‬ ‫و‬‫متغیر‬ ‫هر‬ ‫نوع‬‫که‬ ‫معنا‬‫بدین‬‫است؛‬‫ی‬‫کامپیوتر‬‫ی‬ ‫نویس‬‫برنامه‬‫مشخصه‬‫یک‬‫استاتیک‬‫تایپ‬‫ل‬
‫شود‬‫می‬‫شناخته‬.‫شود‬‫اعلن‬‫احتا‬‫ر‬‫ص‬‫متغیر‬ ‫هر‬ ‫نوع‬‫که‬‫د‬‫ر‬‫ندا‬‫این‬‫به‬‫نیاز‬ ،‫است‬‫استاتیک‬‫تایپ‬ ‫بان‬‫ز‬‫یک‬‫کاتلین‬‫اینکه‬ ‫وجود‬ ‫با‬.
*‫‌های‌داده‬‫س‬‫کال‬:‫از‬ ‫ی‬‫بسیار‬ ‫و‬ ‫مجدد‬ ‫استفاده‬ ‫قابل‬ ‫های‬‫ی‬‫تساو‬ ‫خودکار‬‫تولید‬‫به‬ ‫منجر‬‫که‬ ‫د‬‫ر‬‫دا‬ ‫وجود‬ ‫ای‬‫داده‬‫های‬‫کلس‬ ،‫بان‬‫ز‬‫این‬ ‫در‬
‫شود‬‫می‬‫دیگر‬‫های‬‫گزینه‬.
‫میکنند‬ ‫عملی‬‫ا‬‫ر‬‫وظیفه‬‫یک‬ ‫دو‬ ‫هر‬‫که‬‫میکنیم‬ ‫مشاهده‬‫ا‬‫ر‬ ‫کاتلین‬ ‫و‬ ‫جاوا‬ ‫بان‬‫ز‬‫از‬‫کد‬‫نمونه‬ ‫دو‬ ‫تر‬ ‫دقیق‬‫ی‬ ‫بررس‬‫ای‬‫ر‬‫ب‬.
۴/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
/* Java Code */
class Book {
private String title;
private Author author;
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public Author getAuthor()
{
return author;
}
public void setAuthor(Author author)
{
this.author = author;
}
۵/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
/* Kotlin Code */
data class Book(var title:String, var author:Author)
**‫خورد‬ ‫می‬ ‫چشم‬‫به‬ ‫بان‬‫ز‬ ‫دو‬‫این‬ ‫تفاوت‬ ‫سادگی‬‫به‬.
۶/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
*‫اختصار‬:‫م‬ ‫کدهای‬‫به‬‫نسبت‬‫ا‬‫ر‬‫است‬ ‫خاص‬ ‫منظور‬‫یک‬‫ای‬‫ر‬‫ب‬‫آن‬ ‫نوشتن‬‫به‬ ‫نیاز‬‫که‬‫کدی‬‫ان‬‫ز‬‫می‬‫ی‬‫گیر‬‫چشم‬ ‫طور‬‫به‬ ،‫بان‬‫ز‬‫این‬‫ای‬‫ر‬‫ب‬‫نیاز‬ ‫ورد‬
‫دهد‬‫می‬ ‫کاهش‬،‫ا‬‫ر‬‫گ‬‫ی‬ ‫ش‬‫ی‬ ‫نویس‬‫برنامه‬ ‫های‬‫بان‬‫ز‬‫دیگر‬ ‫در‬ ‫کار‬ ‫همان‬.
*‫امنیت‬:‫با‬‫مواجهه‬ ‫در‬‫ا‬‫ر‬‫امنیت‬ ‫کاتلین‬‫ی‬ ‫نویس‬‫برنامه‬ ‫بان‬‫ز‬NullPointerExceptions‫از‬‫پشتیبانی‬‫با‬Nullability‫از‬ ‫ی‬ ‫بخش‬ ‫عنوان‬‫به‬
‫کند‬‫می‬ ‫استفاده‬ ،‫خود‬ ‫سیستم‬.‫است‬ ‫نال‬‫غیر‬ ‫فرض‬‫پیش‬ ‫طور‬‫به‬ ،‫بان‬‫ز‬‫این‬ ‫در‬ ‫ی‬‫متغیر‬ ‫هر‬.
۷/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
*‫‌با‌جاوا‬‫ر‬‫قابل‌تفسی‬:‫است‬‫تفسیر‬‫قابل‬ ‫جاوا‬‫با‬‫کلی‬ ‫طور‬‫به‬‫این‬‫ر‬‫بناب‬ ‫شود؛‬‫می‬‫ا‬‫ر‬‫اج‬‫نیز‬ ‫جاوا‬ ‫ی‬‫مجاز‬ ‫ماشین‬ ‫روی‬ ‫کاتلین‬.‫سادگی‬‫به‬ ‫توان‬‫می‬
‫داشت‬ ‫ی‬ ‫دسترس‬ ‫کاتلین‬‫کد‬ ‫به‬ ‫جاوا‬‫از‬ ‫و‬‫کاتلین‬‫از‬ ‫جاوا‬‫کد‬‫به‬.
*‫ا‬‫ر‬‫‌گ‬‫ی‬ ‫‌ش‬‫و‬‌‫‌های‌تابعی‬‫ت‬‫قابلی‬:‫با‬ ‫سطح‬‫توابع‬ ‫شامل‬‫که‬ ‫است‬ ‫ی‬‫بسیار‬ ‫آمد‬‫ر‬‫کا‬‫های‬‫ر‬‫ا‬‫ز‬‫اب‬‫از‬ ‫مجموعه‬‫ترین‬‫غنی‬‫ای‬‫ر‬‫دا‬ ‫کاتلین‬،‫التر‬‌‫ات‌المدا‬‫ر‬‫عبا‬
‌‫یا‬LambdaExpression‌،‫شود‬‫می‬ ‫د‬‫ر‬‫موا‬‫دیگر‬ ‫از‬‫ی‬‫بسیار‬ ‫و‬‫نیاز‬ ‫هنگام‬‫به‬‫اخوانی‬‫ر‬‫ف‬‫یا‬‫کندرو‬‫یابی‬‫ز‬‫ار‬ ،‫گرها‬‫عمل‬ ‫ی‬‫سربارگذار‬.‫ت‬‫مرتبه‬‫ابع‬
‫دهد‬‫می‬‫انجام‬ ‫ا‬‫ر‬ ‫کار‬ ‫دو‬ ‫هر‬‫یا‬ ‫و‬‫گرداند‬‫می‬ ‫باز‬‫ا‬‫ر‬‫تابع‬ ‫یا‬ ‫و‬‫کند‬‫می‬ ‫یافت‬‫ر‬‫د‬‫امتر‬‫ر‬‫پا‬ ‫عنوان‬‫به‬ ‫ا‬‫ر‬‫تابع‬‫که‬ ‫است‬‫تابعی‬ ،‫باالتر‬.‫م‬‫مرتبه‬‫تابع‬ ‫از‬ ‫ثالی‬
‫است‬ ‫شده‬‫ائه‬‫ر‬‫ا‬‫ادامه‬ ‫در‬ ‫باالتر‬.
۸/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
fun myFun(company: String,product: String, fn: (String,String) -> String): Unit {
val result = fn(company,product)
println(result)
}
fun main(args: Array){
val fn:(String,String)->String={org,portal->"$org develops $portal"}
myFun("JetBrains","Kotlin",fn)
}
‫بصورت‬ ‫خروجی‬:
JetBrains develops Kotlin
۹/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
*‫ست‬
َ
‫ت‌ک‬‫ر‬‫اسما‬:‫خو‬ ‫طور‬‫به‬ ‫ا‬‫ر‬ ‫مقادیر‬ ‫و‬ ‫د‬‫ز‬‫پردا‬‫می‬‫تغییر‬ ‫قابل‬‫غیر‬ ‫مقادیر‬‫نوع‬ ‫کردن‬‫تبدیل‬‫به‬ ‫صریح‬ ‫طور‬‫به‬‫کاتلین‬ ‫بان‬‫ز‬‫در‬ ‫دکار‬‫ت‬‫ر‬‫اسما‬
‫دهد‬‫می‬‫ار‬‫ر‬‫ق‬‫ست‬
َ
‫ک‬.
‫ن‬‫بدو‬ ‫شته‬‫ر‬‫از‬ ‫کردن‬ ‫نال‬‫قابل‬ ‫نوع‬‫یک‬‫به‬‫داشتن‬ ‫ی‬ ‫دسترس‬‫ای‬‫ر‬‫ب‬‫تلش‬‫ک‬ ‫خطای‬‫ایجاد‬‫به‬ ‫منجر‬ ،‫ست‬
َ
‫ک‬ ‫ت‬‫ر‬‫اسما‬‫از‬ ‫استفاده‬‫شود‬‫می‬ ‫امپایل‬.
*‫مان‌کامپایل‬‫ز‬:‫است‬ ‫ی‬‫تر‬‫سریع‬‫ای‬‫ر‬‫اج‬ ‫مان‬‫ز‬ ‫و‬ ‫باالتر‬ ‫ایی‬‫ر‬‫کا‬‫ای‬‫ر‬‫دا‬ ،‫ها‬‫بان‬‫ز‬‫دیگر‬ ‫از‬‫برخی‬‫به‬‫نسبت‬ ،‫کاتلین‬.
*‫پسندی‌یا‬‫ر‬‫ابزا‬Tool- Friendly:‫است‬‫ها‬‫ر‬‫ا‬‫ز‬‫اب‬ ‫از‬ ‫ای‬‫العاده‬‫ق‬‫فو‬‫پشتیبانی‬‫ای‬‫ر‬‫دا‬‫کاتلین‬ ‫بان‬‫ز‬.‫همه‬IDE‫قابل‬‫کاتلین‬‫ای‬‫ر‬‫ب‬ ‫جاوا‬ ‫های‬
‫هستند‬ ‫استفاده‬.‫کرد‬‫ا‬‫ر‬‫اج‬ ‫فرمان‬‫خط‬‫از‬ ‫ا‬‫ر‬‫کاتلین‬‫برنامه‬‫توان‬‫می‬ ،‫همچنین‬.
۱۰/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
**‫کاتلین‬‫شود‬ ‫می‬ ‫ی‬‫ساز‬ ‫پیاده‬ ‫و‬‫ا‬‫ر‬‫اج‬ ‫مختلفی‬ ‫های‬‫پلتفرم‬ ‫روی‬‫بر‬.‫یا‬ ‫سرور‬‫جمله‬‫از‬‫اندروید‬‫یا‬‫محلی‬ ‫صورت‬‫به‬‫یا‬Native‫که‬
‫توسط‬‫کامپایلر‬LLVM‫روی‬ ‫بر‬ ‫ی‬‫ساز‬ ‫پیاده‬ ‫قابل‬ ‫و‬ ‫شود‬ ‫می‬ ‫کامپایل‬
Windows (x86_64only at the moment)
Linux(x86_64,arm32,MIPS, MIPS little endian)
MacOS (x86_64)
IOS(arm64only)
Android (arm32and arm64)
WebAssembly (wasm32 only)
‫باشد‬ ‫می‬.
۱۱/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫مقدمه‬‫تاریخ‬
‫چه‬
‫ویژگی‬
‫ها‬
‫مزای‬
‫ا‬
‫کاربر‬
‫دها‬
‫برهان‬
‫گوگل‬
‫مزایا‬:
•‫آسان‬ ‫یادگیری‬:‫است‬ ‫جاوا‬ ‫نویسی‬‫برنامه‬ ‫زبان‬ ‫مشابه‬ ‫آن‬ ‫مبانی‬.‫در‬
‫تواند‬‫می‬ ،‫کند‬ ‫کار‬ ‫جاوا‬ ‫با‬ ‫بتواند‬ ‫که‬ ‫کس‬ ‫هر‬ ،‫گفت‬ ‫توان‬‫می‬ ‫واقع‬
‫کند‬ ‫درک‬ ‫سادگی‬ ‫به‬ ‫را‬ ‫کاتلین‬.
•‫است‬ ‫چندسکویی‬ ‫کاتلین‬:‫توسط‬ ‫کاتلین‬IDE‫جاوا‬ ‫گوناگون‬ ‫های‬
‫کاتلین‬ ‫زبان‬ ‫به‬ ‫را‬ ‫ها‬‫برنامه‬ ‫توان‬‫می‬ ‫بنابراین‬ ،‫شود‬‫می‬ ‫پشتیبانی‬
‫که‬ ‫ماشینی‬ ‫هر‬ ‫روی‬ ‫را‬ ‫آن‬ ‫و‬ ‫نوشتن‬JVM‫اجرا‬ ‫کند‬‫می‬ ‫پشتیبانی‬ ‫را‬
‫کرد‬.
•‫است‬ ‫تر‬‫امن‬ ‫جاوا‬ ‫از‬.
•‫در‬ ‫را‬ ‫آن‬ ‫های‬‫کتابخانه‬ ‫و‬ ‫جاوا‬ ‫چارچوب‬ ‫از‬ ‫استفاده‬ ‫امکان‬
‫نیاز‬ ‫بدون‬ ‫و‬ ‫پیشرفته‬ ‫های‬‫چارچوب‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کاتلین‬ ‫های‬‫پروژه‬
‫کند‬‫می‬ ‫فراهم‬ ،‫جاوا‬ ‫در‬ ‫پروژه‬ ‫کل‬ ‫تغییر‬ ‫به‬.
•‫های‬‫کتابخانه‬ ‫و‬ ‫کامپایلر‬ ‫دارای‬ ‫کاتلین‬ ‫نویسی‬‫برنامه‬ ‫زبان‬
‫باز‬‫متن‬ ‫و‬ ‫رایگان‬ ‫کامال‬ ‫آن‬ ‫ابزارهای‬ ‫همه‬ ،‫همچنین‬ ‫است؛‬ ‫گوناگونی‬
‫دارد‬ ‫قرار‬ ‫هاب‬‫گیت‬ ‫روی‬ ‫و‬ ‫است‬.
۱۲/۲۰
‫برنامه‬
‫های‬
‫معتبر‬
‫نمونه‬
‫کد‬
‫مقدمه‬‫تاریخ‬
‫چه‬
‫ویژگی‬
‫ها‬
‫مزای‬
‫ا‬
‫کاربر‬
‫دها‬
‫ش‬‫تجربه‬
‫خصی‬
‫برنامه‬
‫های‬
‫معتبر‬
‫نمونه‬
‫کد‬
‫سال‬‫از‬۲۰۱۷‫گوگل‬‫توسعه‬‫دوم‬ ‫بان‬‫ز‬ ‫عنوان‬‫به‬‫ا‬‫ر‬ ‫کاتلین‬ ‫سما‬‫ر‬‫اندروید‬‫است‬ ‫کرده‬ ‫معرفی‬.‫ان‬ ‫های‬‫اپلیکیشن‬‫توسعه‬‫ای‬‫ر‬‫ب‬ ‫و‬‫کاتلین‬‫دروید‬
‫است‬ ‫عالی‬‫بسیار‬‫انتخاب‬‫یک‬.
۱۳/۲۰
‫بردها‬‫ر‬‫کا‬:
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫گوگل‬ ‫برهان‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫سمت‬‫توسعه‬‫ای‬‫ر‬‫ب‬ ‫کاتلین‬‫سرور‬‫است‬ ‫مناسب‬.‫کتابخانه‬‫از‬ ‫استفاده‬ ‫با‬‫بیان‬‫ت‬‫ر‬‫قد‬ ‫و‬ ‫ی‬‫سازگار‬ ‫حفظ‬ ‫و‬ ‫مختصر‬‫کد‬‫با‬‫ا‬‫ر‬‫ی‬‫ز‬‫بر‬‫مبتنی‬ ‫های‬
‫کنید‬ ‫می‬‫پیدا‬ ‫دست‬ ‫یر‬‫ز‬‫امکانات‬‫به‬ ‫جاوا‬:
•‫وضوح‬
•‫ی‬‫پذیر‬ ‫مقیاس‬
•‫جاوا‬ ‫های‬‫کتابخانه‬ ‫با‬ ‫ی‬‫سازگار‬ ‫و‬ ‫هماهنگی‬
•‫پشتیبانی‬ ‫مثل‬ ‫یاد‬‫ز‬ ‫های‬‫ار‬‫ز‬‫اب‬IDE‫و‬‫مختلف‬ ‫های‬..
۱۴/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫گوگل‬ ‫برهان‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫کدهای‬‫به‬‫کاتلین‬‫کد‬‫اسکریپت‬ ‫جاوا‬‫شود‬ ‫می‬‫کامپایل‬‫نیز‬.‫خروجی‬‫به‬ ‫کاتلین‬ ‫کدهای‬ ‫حاضر‬ ‫حال‬ ‫در‬ECMAScript 5.1‫شود‬ ‫می‬‫تبدیل‬.
‫شود‬ ‫می‬‫تبدیل‬ ‫اسکریپت‬ ‫جاوا‬‫به‬ ‫کاتلین‬ ‫در‬ ‫شده‬ ‫استفاده‬ ‫کدهای‬ ‫تمام‬.‫استفاده‬ ‫کاتلین‬‫از‬ ‫غیر‬ ‫هایی‬‫کتابخانه‬‫از‬‫اگر‬‫جاوا‬‫کد‬ ‫به‬ ‫شود‬
‫شود‬ ‫نمی‬‫تبدیل‬‫اسکریپت‬.‫شود‬ ‫می‬‫تبدیل‬ ‫اسکریپت‬ ‫جاوا‬‫به‬ ‫کاتلین‬ ‫های‬‫کد‬ ‫فقط‬ ‫واقع‬ ‫در‬.
۱۵/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫گوگل‬ ‫برهان‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫تکنولوژی‬Kotlin/Native‫باین‬ ‫کدهای‬‫به‬‫ا‬‫ر‬ ‫کاتلین‬‫کدهای‬ ‫خاص‬ ‫ی‬‫مجاز‬ ‫ماشین‬‫از‬ ‫استفاده‬‫ن‬‫بدو‬‫که‬ ‫دهد‬ ‫می‬‫ا‬‫ر‬ ‫امکان‬‫این‬ ‫شما‬‫به‬‫ی‬‫ر‬
‫کنیم‬‫ا‬‫ر‬‫اج‬ ‫و‬‫کنیم‬‫تبدیل‬.‫کامپایلر‬‫وسیله‬‫به‬‫ا‬‫ر‬‫کاتلین‬LLVM (Low Level VirtualMachine)
‫کرد‬ ‫کامپایل‬‫توان‬ ‫می‬.‫هیچ‬‫ای‬‫ر‬‫اج‬ ‫امکان‬ ‫که‬ ‫جاهایی‬‫ای‬‫ر‬‫ب‬‫تکنولوژی‬‫این‬VM‫مثل‬‫است‬ ‫شده‬‫احی‬‫ر‬‫ط‬‫نیست‬‫امکانپذیر‬IOS‫یا‬Embedded
system‫د‬‫ر‬‫دا‬ ‫سریع‬‫ای‬‫ر‬‫اج‬ ‫به‬‫نیاز‬ ‫و‬ ‫مناسب‬‫ه‬‫ز‬‫اندا‬‫با‬ ‫مستقل‬‫برنامه‬‫یک‬‫ای‬‫ر‬‫اج‬‫به‬‫نیاز‬ ‫دهنده‬ ‫توسعه‬‫یک‬‫که‬ ‫جایی‬ ‫هر‬‫یا‬.
‫تکنولوژی‬Kotlin/Native‫د‬‫ر‬‫دا‬ ‫ی‬‫همکار‬ ‫عامل‬ ‫سیستم‬‫یک‬ ‫بومی‬‫کد‬‫با‬ ‫کامل‬ ‫طور‬‫به‬.
۱۶/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫گوگل‬ ‫برهان‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫مقدمه‬‫تاریخ‬
‫چه‬
‫ویژگی‬
‫ها‬
‫مزای‬
‫ا‬
‫کاربر‬
‫دها‬
‫ش‬‫تجربه‬
‫خصی‬
‫شخصی‬ ‫تجربه‬:
‫اندروید‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫جاوا‬ ‫از‬ ‫کاتلین‬ ‫بنده‬ ‫شخصی‬ ‫تجربه‬ ‫بنابر‬
‫توسط‬ ‫که‬ ‫ای‬ ‫نکته‬ ‫تنها‬ ‫اما‬ ‫دارد‬ ‫همراه‬ ‫به‬ ‫را‬ ‫آسودگی‬ ‫و‬ ‫کارامدی‬
‫کنترل‬ ‫بودن‬ ‫اختیاری‬ ،‫شود‬‫می‬ ‫اشاره‬ ‫نیز‬ ‫بنده‬ ‫همکاران‬exeption‫هاست‬
‫بود‬ ‫اجباری‬ ‫جاوا‬ ‫زبان‬ ‫در‬ ‫که‬.‫برنامه‬ ‫کاتلین‬ ‫زبان‬ ‫در‬ ‫که‬ ‫معنی‬ ‫بدین‬
‫کنترل‬ ‫به‬ ‫مجبور‬ ‫نویس‬exeption‫همان‬ ‫یا‬exeption handling‫و‬ ‫نیست‬
‫زمان‬compile‫شود‬ ‫نمی‬ ‫گرفته‬ ‫ایراد‬ ‫او‬ ‫از‬.
۱۷/۲۰
‫برنامه‬
‫های‬
‫معتبر‬
‫نمونه‬
‫کد‬
Pinterest (‫‌اشتراک‌عکس‬‫ر‬‫ا‬‫ز‬‫اب‬)
Coursera (‫ی‬ ‫سایت‌آموزش‬)
Trello (‫ه‬‫ژ‬‫مدیریت‌پرو‬)
Evernote (‫‌ها‬‫لیست‌کار‬)
Simple Calendar (‫‌اوپن‌سورس‬‫و‬‌‫یک‌تقویم‌ساده‬)
۱۸/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫برنامه‌های‌معتبر‬:
‫نمونه‌کد‬:
‫تابعی‬ ‫صورت‬‫به‬‫آن‬ ‫نوشتن‬:
‫ا‬‫ر‬‫گ‬ ‫ی‬ ‫ش‬ ‫صورت‬‫به‬‫آن‬ ‫نوشتن‬:
۱۹/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
‫اندروید‬:
۲۰/۲۰
‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
https://www.geeksforgeeks.org/introduction-to-kotlin
https://www.geeksforgeeks.org/kotlin-programming-language
https://blog.faradars.org/kotlin-programming-language
https://kotlinlang.org
https://fa.wikipedia.org/wiki/‫کوتلین‬
‫منابع‬:
Kotlin

More Related Content

Similar to Kotlin

android_test_approach
android_test_approachandroid_test_approach
android_test_approachSadegh Saberi
 
مسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیمسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیMuhibullah Aman
 
Cisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanCisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanMuhibullah Aman
 
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدآشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدSadegh Ghanbari Shohani
 
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمیاسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمیVahid Hashemi
 
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتefazati
 
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
 (ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ... (ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...Muhibullah Aman
 
Repository pattern
Repository patternRepository pattern
Repository patternMahdi Fa
 
ارائه رایانش ابری.pdf
ارائه رایانش ابری.pdfارائه رایانش ابری.pdf
ارائه رایانش ابری.pdfArian Arabnoori
 
cloud computing , رایانش ابری
cloud computing , رایانش ابریcloud computing , رایانش ابری
cloud computing , رایانش ابریvhd-abdarbashi
 

Similar to Kotlin (20)

android_test_approach
android_test_approachandroid_test_approach
android_test_approach
 
rbdmap in ceph
rbdmap in ceph rbdmap in ceph
rbdmap in ceph
 
HotSpot
HotSpotHotSpot
HotSpot
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
 
how enable ceph dashboard
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboard
 
How Create Waf With Naxsi
How Create Waf With NaxsiHow Create Waf With Naxsi
How Create Waf With Naxsi
 
مسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابیمسیردهی و پروتوکولهای مسیریابی
مسیردهی و پروتوکولهای مسیریابی
 
Cisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah AmanCisco Exploration 2 In Persion-Muhibullah Aman
Cisco Exploration 2 In Persion-Muhibullah Aman
 
MongoDB
MongoDBMongoDB
MongoDB
 
آشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندرویدآشنایی با زبان جاوا - مقدماتی اندروید
آشنایی با زبان جاوا - مقدماتی اندروید
 
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمیاسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
اسلاید های شروع برنامه نویسی اندروید با جاوا - مهندس سید وحید هاشمی
 
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپتScalable javascript application -  طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
Scalable javascript application - طراحی نرم افزارهای مقیاس پذیر با جاوا اسکریپت
 
Scrum Presentation
Scrum PresentationScrum Presentation
Scrum Presentation
 
Ssh edition 2
Ssh edition 2Ssh edition 2
Ssh edition 2
 
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
 (ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ... (ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
 
lunch box plugin
 lunch box plugin  lunch box plugin
lunch box plugin
 
Java script
Java scriptJava script
Java script
 
Repository pattern
Repository patternRepository pattern
Repository pattern
 
ارائه رایانش ابری.pdf
ارائه رایانش ابری.pdfارائه رایانش ابری.pdf
ارائه رایانش ابری.pdf
 
cloud computing , رایانش ابری
cloud computing , رایانش ابریcloud computing , رایانش ابری
cloud computing , رایانش ابری
 

Kotlin

  • 1. ‫ارائه‬ ‫عنوان‬: ‫کاتلین‬‫توصیه‬ ‫چرایی‬ ‫و‬ ‫آن‬ ‫بر‬ ‫گوگل‬ ‫راهنما‬ ‫استاد‬: ‫یعقوبی‬ ‫آقای‬ ‫جناب‬ ‫دانشجو‬: ‫گشایش‬ ‫علیرضا‬ ‫صدرا‬ ‫دانشگاه‬ ‫بهار‬۱۳۹۹
  • 2. ‫مقدمه‬: ‫و‬‫اندروید‬ ‫نویسان‬‫برنامه‬ ‫محفل‬ ‫نقل‬‫به‬ ‫کاتلین‬‫که‬ ‫است‬‫مدتی‬Trend‫است‬ ‫شده‬‫تبدیل‬‫جهانی‬ ‫و‬‫انی‬‫ر‬‫ای‬‫نویسان‬‫برنامه‬ ‫روز‬.‫حاضر‬ ‫حال‬ ‫در‬ ‫که‬ ‫کرد‬‫خواهید‬ ‫مشاهده‬‫ا‬‫ر‬ ‫سایتی‬‫وب‬‫کمتر‬‫کاتلین‬‫آموزش‬‫باشد‬‫نداده‬‫پوشش‬ ‫ای‬‫گونه‬‫به‬‫ا‬‫ر‬‫آن‬ ‫معرفی‬ ‫یا‬ ‫و‬.‫فرصت‬‫این‬ ‫در‬‫معرفی‬‫به‬ ‫ک‬ ‫خواهیم‬ ‫معرفی‬ ‫ا‬‫ر‬‫اند‬ ‫برده‬ ‫بهره‬ ‫بان‬‫ز‬‫این‬ ‫از‬‫که‬ ‫معروفی‬ ‫های‬‫شرکت‬ ‫همچنین‬ ‫یم‬‫ز‬‫پردا‬ ‫می‬ ‫آن‬ ‫های‬‫ویژگی‬ ‫و‬ ‫کاتلین‬‫از‬ ‫جامعی‬‫رد‬. ۱/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 3. ‫بان‬‫ز‬‫کاتلین‬‫است‬ ‫شده‬ ‫داده‬‫توسعه‬‫روسیه‬ ‫در‬ ‫مستقر‬‫نویسان‬‫برنامه‬‫توسط‬‫که‬‫ایستا‬ ‫بان‬‫ز‬‫یک‬.‫کاتلین‬‫قابلیت‬‫این‬‫روی‬ ‫بر‬ ‫تا‬‫د‬‫ر‬‫دا‬ ‫ا‬‫ر‬ ‫ی‬‫مجاز‬ ‫ماشین‬‫جاوا‬‫شود‬‫ا‬‫ر‬‫اج‬.‫بان‬‫ز‬‫به‬‫توان‬ ‫می‬ ‫همینطور‬ ‫و‬‫اسکریپت‬ ‫جاوا‬‫نمود‬ ‫کامپایل‬ ‫ا‬‫ر‬‫آن‬‫نیز‬. ‫اس‬‫ایش‬‫ز‬‫اف‬ ‫حال‬ ‫در‬ ‫سرعت‬‫به‬،‫کنند‬‫می‬ ‫استفاده‬ ‫کاتلین‬ ‫بان‬‫ز‬‫از‬‫که‬‫موبایل‬ ‫بردی‬‫ر‬‫کا‬‫های‬‫ر‬‫ا‬‫ز‬‫اف‬‫نرم‬ ‫دهندگان‬‫توسعه‬ ‫جامعه‬‫ت‬.‫سال‬ ‫در‬ ۲۰۱۷‫کرد‬ ‫معرفی‬‫اندروید‬‫توسعه‬‫ای‬‫ر‬‫ب‬ ‫خود‬ ‫سمی‬‫ر‬ ‫بان‬‫ز‬ ‫دومین‬‫عنوان‬‫به‬‫ا‬‫ر‬ ‫کاتلین‬ ،‫گوگل‬ ،.‫بسیار‬ ‫شد‬‫ر‬،‫ن‬‫تاکنو‬ ‫مان‬‫ز‬‫آن‬‫از‬‫مهمی‬ ‫و‬‫بزرگ‬ ‫است‬‫پیوسته‬ ‫وقوع‬‫به‬ ‫کار‬ ‫و‬‫کسب‬‫جوامع‬ ‫و‬ ‫دهندگان‬‫توسعه‬‫میان‬ ‫در‬‫ی‬ ‫نویس‬‫برنامه‬ ‫بان‬‫ز‬‫این‬‫ای‬‫ر‬‫ب‬ ‫تقاضا‬ ‫در‬.‫حال‬ ‫در‬ ‫گوگل‬‫بان‬‫ز‬ ‫حاضر‬ ‫اعل‬‫اندرویدی‬‫های‬‫اپلیکیشن‬ ‫توسعه‬‫ای‬‫ر‬‫ب‬‫ی‬ ‫نویس‬‫برنامه‬ ‫های‬‫بان‬‫ز‬ ‫بهترین‬‫از‬ ‫یکی‬‫عنوان‬‫به‬ ‫ا‬‫ر‬ ‫کاتلین‬‫ی‬ ‫نویس‬‫برنامه‬‫است‬ ‫کرده‬ ‫م‬.‫نشان‬ ‫این‬ ‫است‬‫ی‬ ‫نویس‬‫برنامه‬ ‫بان‬‫ز‬‫این‬‫انتظار‬ ‫در‬ ‫خوبی‬‫آینده‬‫که‬ ‫دهد‬‫می‬. ۲/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 4. ‫یخچه‬‫ر‬‫تا‬: ‫کاتلین‬‫سال‬ ‫در‬۲۰۱۱‫کمپانی‬ ‫توسط‬Jetbrains‫پایدار‬ ‫ن‬‫ژ‬‫ر‬‫و‬‫اولین‬ ‫و‬ ‫شد‬ ‫معرفی‬((Stable‫سال‬ ‫در‬‫آن‬۲۰۱۶‫ن‬‫ژ‬‫ر‬‫و‬‫نام‬‫به‬1.0‫شد‬‫ائه‬‫ر‬‫ا‬. ‫دهندگان‬‫توسعه‬ ‫تیم‬ ‫سرپرست‬‫کاتلین‬AndreyBreslav‫د‬‫ر‬‫دا‬ ‫قصد‬‫که‬‫است‬‫ا‬‫ر‬‫یءگ‬ ‫ش‬ ‫و‬‫تمند‬‫ر‬‫قد‬ ‫بان‬‫ز‬‫یک‬ ‫کاتلین‬‫که‬‫داشته‬‫بیان‬ ‫از‬‫جاوا‬‫نویسان‬‫برنامه‬‫به‬ ‫و‬‫کند‬ ‫عمل‬‫بهتر‬‫جاوا‬‫بدهد‬‫ا‬‫ر‬ ‫بان‬‫ز‬‫این‬‫به‬‫یجی‬‫ر‬‫تد‬ ‫مهاجرت‬ ‫ه‬‫ز‬‫اجا‬. ‫سال‬ ‫در‬۲۰۱۷‫گوگل‬‫ای‬‫ر‬‫ب‬‫ی‬ ‫نویس‬‫برنامه‬ ‫دوم‬ ‫بان‬‫ز‬‫عنوان‬‫به‬ ‫ا‬‫ر‬ ‫بان‬‫ز‬‫این‬ ‫سما‬‫ر‬‫اندروید‬‫کرد‬ ‫معرفی‬. ۳/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 5. ‫‌های‌کلیدی‬‫ی‬‫ویژگ‬: *‫تایپ‌استاتیک‬:‫کامپای‬ ‫مان‬‫ز‬ ‫در‬ ‫ت‬‫ر‬‫عبا‬ ‫و‬‫متغیر‬ ‫هر‬ ‫نوع‬‫که‬ ‫معنا‬‫بدین‬‫است؛‬‫ی‬‫کامپیوتر‬‫ی‬ ‫نویس‬‫برنامه‬‫مشخصه‬‫یک‬‫استاتیک‬‫تایپ‬‫ل‬ ‫شود‬‫می‬‫شناخته‬.‫شود‬‫اعلن‬‫احتا‬‫ر‬‫ص‬‫متغیر‬ ‫هر‬ ‫نوع‬‫که‬‫د‬‫ر‬‫ندا‬‫این‬‫به‬‫نیاز‬ ،‫است‬‫استاتیک‬‫تایپ‬ ‫بان‬‫ز‬‫یک‬‫کاتلین‬‫اینکه‬ ‫وجود‬ ‫با‬. *‫‌های‌داده‬‫س‬‫کال‬:‫از‬ ‫ی‬‫بسیار‬ ‫و‬ ‫مجدد‬ ‫استفاده‬ ‫قابل‬ ‫های‬‫ی‬‫تساو‬ ‫خودکار‬‫تولید‬‫به‬ ‫منجر‬‫که‬ ‫د‬‫ر‬‫دا‬ ‫وجود‬ ‫ای‬‫داده‬‫های‬‫کلس‬ ،‫بان‬‫ز‬‫این‬ ‫در‬ ‫شود‬‫می‬‫دیگر‬‫های‬‫گزینه‬. ‫میکنند‬ ‫عملی‬‫ا‬‫ر‬‫وظیفه‬‫یک‬ ‫دو‬ ‫هر‬‫که‬‫میکنیم‬ ‫مشاهده‬‫ا‬‫ر‬ ‫کاتلین‬ ‫و‬ ‫جاوا‬ ‫بان‬‫ز‬‫از‬‫کد‬‫نمونه‬ ‫دو‬ ‫تر‬ ‫دقیق‬‫ی‬ ‫بررس‬‫ای‬‫ر‬‫ب‬. ۴/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 6. /* Java Code */ class Book { private String title; private Author author; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Author getAuthor() { return author; } public void setAuthor(Author author) { this.author = author; } ۵/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 7. /* Kotlin Code */ data class Book(var title:String, var author:Author) **‫خورد‬ ‫می‬ ‫چشم‬‫به‬ ‫بان‬‫ز‬ ‫دو‬‫این‬ ‫تفاوت‬ ‫سادگی‬‫به‬. ۶/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 8. *‫اختصار‬:‫م‬ ‫کدهای‬‫به‬‫نسبت‬‫ا‬‫ر‬‫است‬ ‫خاص‬ ‫منظور‬‫یک‬‫ای‬‫ر‬‫ب‬‫آن‬ ‫نوشتن‬‫به‬ ‫نیاز‬‫که‬‫کدی‬‫ان‬‫ز‬‫می‬‫ی‬‫گیر‬‫چشم‬ ‫طور‬‫به‬ ،‫بان‬‫ز‬‫این‬‫ای‬‫ر‬‫ب‬‫نیاز‬ ‫ورد‬ ‫دهد‬‫می‬ ‫کاهش‬،‫ا‬‫ر‬‫گ‬‫ی‬ ‫ش‬‫ی‬ ‫نویس‬‫برنامه‬ ‫های‬‫بان‬‫ز‬‫دیگر‬ ‫در‬ ‫کار‬ ‫همان‬. *‫امنیت‬:‫با‬‫مواجهه‬ ‫در‬‫ا‬‫ر‬‫امنیت‬ ‫کاتلین‬‫ی‬ ‫نویس‬‫برنامه‬ ‫بان‬‫ز‬NullPointerExceptions‫از‬‫پشتیبانی‬‫با‬Nullability‫از‬ ‫ی‬ ‫بخش‬ ‫عنوان‬‫به‬ ‫کند‬‫می‬ ‫استفاده‬ ،‫خود‬ ‫سیستم‬.‫است‬ ‫نال‬‫غیر‬ ‫فرض‬‫پیش‬ ‫طور‬‫به‬ ،‫بان‬‫ز‬‫این‬ ‫در‬ ‫ی‬‫متغیر‬ ‫هر‬. ۷/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 9. *‫‌با‌جاوا‬‫ر‬‫قابل‌تفسی‬:‫است‬‫تفسیر‬‫قابل‬ ‫جاوا‬‫با‬‫کلی‬ ‫طور‬‫به‬‫این‬‫ر‬‫بناب‬ ‫شود؛‬‫می‬‫ا‬‫ر‬‫اج‬‫نیز‬ ‫جاوا‬ ‫ی‬‫مجاز‬ ‫ماشین‬ ‫روی‬ ‫کاتلین‬.‫سادگی‬‫به‬ ‫توان‬‫می‬ ‫داشت‬ ‫ی‬ ‫دسترس‬ ‫کاتلین‬‫کد‬ ‫به‬ ‫جاوا‬‫از‬ ‫و‬‫کاتلین‬‫از‬ ‫جاوا‬‫کد‬‫به‬. *‫ا‬‫ر‬‫‌گ‬‫ی‬ ‫‌ش‬‫و‬‌‫‌های‌تابعی‬‫ت‬‫قابلی‬:‫با‬ ‫سطح‬‫توابع‬ ‫شامل‬‫که‬ ‫است‬ ‫ی‬‫بسیار‬ ‫آمد‬‫ر‬‫کا‬‫های‬‫ر‬‫ا‬‫ز‬‫اب‬‫از‬ ‫مجموعه‬‫ترین‬‫غنی‬‫ای‬‫ر‬‫دا‬ ‫کاتلین‬،‫التر‬‌‫ات‌المدا‬‫ر‬‫عبا‬ ‌‫یا‬LambdaExpression‌،‫شود‬‫می‬ ‫د‬‫ر‬‫موا‬‫دیگر‬ ‫از‬‫ی‬‫بسیار‬ ‫و‬‫نیاز‬ ‫هنگام‬‫به‬‫اخوانی‬‫ر‬‫ف‬‫یا‬‫کندرو‬‫یابی‬‫ز‬‫ار‬ ،‫گرها‬‫عمل‬ ‫ی‬‫سربارگذار‬.‫ت‬‫مرتبه‬‫ابع‬ ‫دهد‬‫می‬‫انجام‬ ‫ا‬‫ر‬ ‫کار‬ ‫دو‬ ‫هر‬‫یا‬ ‫و‬‫گرداند‬‫می‬ ‫باز‬‫ا‬‫ر‬‫تابع‬ ‫یا‬ ‫و‬‫کند‬‫می‬ ‫یافت‬‫ر‬‫د‬‫امتر‬‫ر‬‫پا‬ ‫عنوان‬‫به‬ ‫ا‬‫ر‬‫تابع‬‫که‬ ‫است‬‫تابعی‬ ،‫باالتر‬.‫م‬‫مرتبه‬‫تابع‬ ‫از‬ ‫ثالی‬ ‫است‬ ‫شده‬‫ائه‬‫ر‬‫ا‬‫ادامه‬ ‫در‬ ‫باالتر‬. ۸/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 10. fun myFun(company: String,product: String, fn: (String,String) -> String): Unit { val result = fn(company,product) println(result) } fun main(args: Array){ val fn:(String,String)->String={org,portal->"$org develops $portal"} myFun("JetBrains","Kotlin",fn) } ‫بصورت‬ ‫خروجی‬: JetBrains develops Kotlin ۹/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 11. *‫ست‬ َ ‫ت‌ک‬‫ر‬‫اسما‬:‫خو‬ ‫طور‬‫به‬ ‫ا‬‫ر‬ ‫مقادیر‬ ‫و‬ ‫د‬‫ز‬‫پردا‬‫می‬‫تغییر‬ ‫قابل‬‫غیر‬ ‫مقادیر‬‫نوع‬ ‫کردن‬‫تبدیل‬‫به‬ ‫صریح‬ ‫طور‬‫به‬‫کاتلین‬ ‫بان‬‫ز‬‫در‬ ‫دکار‬‫ت‬‫ر‬‫اسما‬ ‫دهد‬‫می‬‫ار‬‫ر‬‫ق‬‫ست‬ َ ‫ک‬. ‫ن‬‫بدو‬ ‫شته‬‫ر‬‫از‬ ‫کردن‬ ‫نال‬‫قابل‬ ‫نوع‬‫یک‬‫به‬‫داشتن‬ ‫ی‬ ‫دسترس‬‫ای‬‫ر‬‫ب‬‫تلش‬‫ک‬ ‫خطای‬‫ایجاد‬‫به‬ ‫منجر‬ ،‫ست‬ َ ‫ک‬ ‫ت‬‫ر‬‫اسما‬‫از‬ ‫استفاده‬‫شود‬‫می‬ ‫امپایل‬. *‫مان‌کامپایل‬‫ز‬:‫است‬ ‫ی‬‫تر‬‫سریع‬‫ای‬‫ر‬‫اج‬ ‫مان‬‫ز‬ ‫و‬ ‫باالتر‬ ‫ایی‬‫ر‬‫کا‬‫ای‬‫ر‬‫دا‬ ،‫ها‬‫بان‬‫ز‬‫دیگر‬ ‫از‬‫برخی‬‫به‬‫نسبت‬ ،‫کاتلین‬. *‫پسندی‌یا‬‫ر‬‫ابزا‬Tool- Friendly:‫است‬‫ها‬‫ر‬‫ا‬‫ز‬‫اب‬ ‫از‬ ‫ای‬‫العاده‬‫ق‬‫فو‬‫پشتیبانی‬‫ای‬‫ر‬‫دا‬‫کاتلین‬ ‫بان‬‫ز‬.‫همه‬IDE‫قابل‬‫کاتلین‬‫ای‬‫ر‬‫ب‬ ‫جاوا‬ ‫های‬ ‫هستند‬ ‫استفاده‬.‫کرد‬‫ا‬‫ر‬‫اج‬ ‫فرمان‬‫خط‬‫از‬ ‫ا‬‫ر‬‫کاتلین‬‫برنامه‬‫توان‬‫می‬ ،‫همچنین‬. ۱۰/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 12. **‫کاتلین‬‫شود‬ ‫می‬ ‫ی‬‫ساز‬ ‫پیاده‬ ‫و‬‫ا‬‫ر‬‫اج‬ ‫مختلفی‬ ‫های‬‫پلتفرم‬ ‫روی‬‫بر‬.‫یا‬ ‫سرور‬‫جمله‬‫از‬‫اندروید‬‫یا‬‫محلی‬ ‫صورت‬‫به‬‫یا‬Native‫که‬ ‫توسط‬‫کامپایلر‬LLVM‫روی‬ ‫بر‬ ‫ی‬‫ساز‬ ‫پیاده‬ ‫قابل‬ ‫و‬ ‫شود‬ ‫می‬ ‫کامپایل‬ Windows (x86_64only at the moment) Linux(x86_64,arm32,MIPS, MIPS little endian) MacOS (x86_64) IOS(arm64only) Android (arm32and arm64) WebAssembly (wasm32 only) ‫باشد‬ ‫می‬. ۱۱/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 13. ‫مقدمه‬‫تاریخ‬ ‫چه‬ ‫ویژگی‬ ‫ها‬ ‫مزای‬ ‫ا‬ ‫کاربر‬ ‫دها‬ ‫برهان‬ ‫گوگل‬ ‫مزایا‬: •‫آسان‬ ‫یادگیری‬:‫است‬ ‫جاوا‬ ‫نویسی‬‫برنامه‬ ‫زبان‬ ‫مشابه‬ ‫آن‬ ‫مبانی‬.‫در‬ ‫تواند‬‫می‬ ،‫کند‬ ‫کار‬ ‫جاوا‬ ‫با‬ ‫بتواند‬ ‫که‬ ‫کس‬ ‫هر‬ ،‫گفت‬ ‫توان‬‫می‬ ‫واقع‬ ‫کند‬ ‫درک‬ ‫سادگی‬ ‫به‬ ‫را‬ ‫کاتلین‬. •‫است‬ ‫چندسکویی‬ ‫کاتلین‬:‫توسط‬ ‫کاتلین‬IDE‫جاوا‬ ‫گوناگون‬ ‫های‬ ‫کاتلین‬ ‫زبان‬ ‫به‬ ‫را‬ ‫ها‬‫برنامه‬ ‫توان‬‫می‬ ‫بنابراین‬ ،‫شود‬‫می‬ ‫پشتیبانی‬ ‫که‬ ‫ماشینی‬ ‫هر‬ ‫روی‬ ‫را‬ ‫آن‬ ‫و‬ ‫نوشتن‬JVM‫اجرا‬ ‫کند‬‫می‬ ‫پشتیبانی‬ ‫را‬ ‫کرد‬. •‫است‬ ‫تر‬‫امن‬ ‫جاوا‬ ‫از‬. •‫در‬ ‫را‬ ‫آن‬ ‫های‬‫کتابخانه‬ ‫و‬ ‫جاوا‬ ‫چارچوب‬ ‫از‬ ‫استفاده‬ ‫امکان‬ ‫نیاز‬ ‫بدون‬ ‫و‬ ‫پیشرفته‬ ‫های‬‫چارچوب‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫کاتلین‬ ‫های‬‫پروژه‬ ‫کند‬‫می‬ ‫فراهم‬ ،‫جاوا‬ ‫در‬ ‫پروژه‬ ‫کل‬ ‫تغییر‬ ‫به‬. •‫های‬‫کتابخانه‬ ‫و‬ ‫کامپایلر‬ ‫دارای‬ ‫کاتلین‬ ‫نویسی‬‫برنامه‬ ‫زبان‬ ‫باز‬‫متن‬ ‫و‬ ‫رایگان‬ ‫کامال‬ ‫آن‬ ‫ابزارهای‬ ‫همه‬ ،‫همچنین‬ ‫است؛‬ ‫گوناگونی‬ ‫دارد‬ ‫قرار‬ ‫هاب‬‫گیت‬ ‫روی‬ ‫و‬ ‫است‬. ۱۲/۲۰ ‫برنامه‬ ‫های‬ ‫معتبر‬ ‫نمونه‬ ‫کد‬ ‫مقدمه‬‫تاریخ‬ ‫چه‬ ‫ویژگی‬ ‫ها‬ ‫مزای‬ ‫ا‬ ‫کاربر‬ ‫دها‬ ‫ش‬‫تجربه‬ ‫خصی‬ ‫برنامه‬ ‫های‬ ‫معتبر‬ ‫نمونه‬ ‫کد‬
  • 14. ‫سال‬‫از‬۲۰۱۷‫گوگل‬‫توسعه‬‫دوم‬ ‫بان‬‫ز‬ ‫عنوان‬‫به‬‫ا‬‫ر‬ ‫کاتلین‬ ‫سما‬‫ر‬‫اندروید‬‫است‬ ‫کرده‬ ‫معرفی‬.‫ان‬ ‫های‬‫اپلیکیشن‬‫توسعه‬‫ای‬‫ر‬‫ب‬ ‫و‬‫کاتلین‬‫دروید‬ ‫است‬ ‫عالی‬‫بسیار‬‫انتخاب‬‫یک‬. ۱۳/۲۰ ‫بردها‬‫ر‬‫کا‬: ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫گوگل‬ ‫برهان‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 15. ‫سمت‬‫توسعه‬‫ای‬‫ر‬‫ب‬ ‫کاتلین‬‫سرور‬‫است‬ ‫مناسب‬.‫کتابخانه‬‫از‬ ‫استفاده‬ ‫با‬‫بیان‬‫ت‬‫ر‬‫قد‬ ‫و‬ ‫ی‬‫سازگار‬ ‫حفظ‬ ‫و‬ ‫مختصر‬‫کد‬‫با‬‫ا‬‫ر‬‫ی‬‫ز‬‫بر‬‫مبتنی‬ ‫های‬ ‫کنید‬ ‫می‬‫پیدا‬ ‫دست‬ ‫یر‬‫ز‬‫امکانات‬‫به‬ ‫جاوا‬: •‫وضوح‬ •‫ی‬‫پذیر‬ ‫مقیاس‬ •‫جاوا‬ ‫های‬‫کتابخانه‬ ‫با‬ ‫ی‬‫سازگار‬ ‫و‬ ‫هماهنگی‬ •‫پشتیبانی‬ ‫مثل‬ ‫یاد‬‫ز‬ ‫های‬‫ار‬‫ز‬‫اب‬IDE‫و‬‫مختلف‬ ‫های‬.. ۱۴/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫گوگل‬ ‫برهان‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 16. ‫کدهای‬‫به‬‫کاتلین‬‫کد‬‫اسکریپت‬ ‫جاوا‬‫شود‬ ‫می‬‫کامپایل‬‫نیز‬.‫خروجی‬‫به‬ ‫کاتلین‬ ‫کدهای‬ ‫حاضر‬ ‫حال‬ ‫در‬ECMAScript 5.1‫شود‬ ‫می‬‫تبدیل‬. ‫شود‬ ‫می‬‫تبدیل‬ ‫اسکریپت‬ ‫جاوا‬‫به‬ ‫کاتلین‬ ‫در‬ ‫شده‬ ‫استفاده‬ ‫کدهای‬ ‫تمام‬.‫استفاده‬ ‫کاتلین‬‫از‬ ‫غیر‬ ‫هایی‬‫کتابخانه‬‫از‬‫اگر‬‫جاوا‬‫کد‬ ‫به‬ ‫شود‬ ‫شود‬ ‫نمی‬‫تبدیل‬‫اسکریپت‬.‫شود‬ ‫می‬‫تبدیل‬ ‫اسکریپت‬ ‫جاوا‬‫به‬ ‫کاتلین‬ ‫های‬‫کد‬ ‫فقط‬ ‫واقع‬ ‫در‬. ۱۵/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫گوگل‬ ‫برهان‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 17. ‫تکنولوژی‬Kotlin/Native‫باین‬ ‫کدهای‬‫به‬‫ا‬‫ر‬ ‫کاتلین‬‫کدهای‬ ‫خاص‬ ‫ی‬‫مجاز‬ ‫ماشین‬‫از‬ ‫استفاده‬‫ن‬‫بدو‬‫که‬ ‫دهد‬ ‫می‬‫ا‬‫ر‬ ‫امکان‬‫این‬ ‫شما‬‫به‬‫ی‬‫ر‬ ‫کنیم‬‫ا‬‫ر‬‫اج‬ ‫و‬‫کنیم‬‫تبدیل‬.‫کامپایلر‬‫وسیله‬‫به‬‫ا‬‫ر‬‫کاتلین‬LLVM (Low Level VirtualMachine) ‫کرد‬ ‫کامپایل‬‫توان‬ ‫می‬.‫هیچ‬‫ای‬‫ر‬‫اج‬ ‫امکان‬ ‫که‬ ‫جاهایی‬‫ای‬‫ر‬‫ب‬‫تکنولوژی‬‫این‬VM‫مثل‬‫است‬ ‫شده‬‫احی‬‫ر‬‫ط‬‫نیست‬‫امکانپذیر‬IOS‫یا‬Embedded system‫د‬‫ر‬‫دا‬ ‫سریع‬‫ای‬‫ر‬‫اج‬ ‫به‬‫نیاز‬ ‫و‬ ‫مناسب‬‫ه‬‫ز‬‫اندا‬‫با‬ ‫مستقل‬‫برنامه‬‫یک‬‫ای‬‫ر‬‫اج‬‫به‬‫نیاز‬ ‫دهنده‬ ‫توسعه‬‫یک‬‫که‬ ‫جایی‬ ‫هر‬‫یا‬. ‫تکنولوژی‬Kotlin/Native‫د‬‫ر‬‫دا‬ ‫ی‬‫همکار‬ ‫عامل‬ ‫سیستم‬‫یک‬ ‫بومی‬‫کد‬‫با‬ ‫کامل‬ ‫طور‬‫به‬. ۱۶/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫گوگل‬ ‫برهان‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬
  • 18. ‫مقدمه‬‫تاریخ‬ ‫چه‬ ‫ویژگی‬ ‫ها‬ ‫مزای‬ ‫ا‬ ‫کاربر‬ ‫دها‬ ‫ش‬‫تجربه‬ ‫خصی‬ ‫شخصی‬ ‫تجربه‬: ‫اندروید‬ ‫نویسی‬ ‫برنامه‬ ‫در‬ ‫جاوا‬ ‫از‬ ‫کاتلین‬ ‫بنده‬ ‫شخصی‬ ‫تجربه‬ ‫بنابر‬ ‫توسط‬ ‫که‬ ‫ای‬ ‫نکته‬ ‫تنها‬ ‫اما‬ ‫دارد‬ ‫همراه‬ ‫به‬ ‫را‬ ‫آسودگی‬ ‫و‬ ‫کارامدی‬ ‫کنترل‬ ‫بودن‬ ‫اختیاری‬ ،‫شود‬‫می‬ ‫اشاره‬ ‫نیز‬ ‫بنده‬ ‫همکاران‬exeption‫هاست‬ ‫بود‬ ‫اجباری‬ ‫جاوا‬ ‫زبان‬ ‫در‬ ‫که‬.‫برنامه‬ ‫کاتلین‬ ‫زبان‬ ‫در‬ ‫که‬ ‫معنی‬ ‫بدین‬ ‫کنترل‬ ‫به‬ ‫مجبور‬ ‫نویس‬exeption‫همان‬ ‫یا‬exeption handling‫و‬ ‫نیست‬ ‫زمان‬compile‫شود‬ ‫نمی‬ ‫گرفته‬ ‫ایراد‬ ‫او‬ ‫از‬. ۱۷/۲۰ ‫برنامه‬ ‫های‬ ‫معتبر‬ ‫نمونه‬ ‫کد‬
  • 19. Pinterest (‫‌اشتراک‌عکس‬‫ر‬‫ا‬‫ز‬‫اب‬) Coursera (‫ی‬ ‫سایت‌آموزش‬) Trello (‫ه‬‫ژ‬‫مدیریت‌پرو‬) Evernote (‫‌ها‬‫لیست‌کار‬) Simple Calendar (‫‌اوپن‌سورس‬‫و‬‌‫یک‌تقویم‌ساده‬) ۱۸/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬ ‫برنامه‌های‌معتبر‬:
  • 20. ‫نمونه‌کد‬: ‫تابعی‬ ‫صورت‬‫به‬‫آن‬ ‫نوشتن‬: ‫ا‬‫ر‬‫گ‬ ‫ی‬ ‫ش‬ ‫صورت‬‫به‬‫آن‬ ‫نوشتن‬: ۱۹/۲۰ ‫مقدمه‬‫یخچه‬‫ر‬‫تا‬‫ها‬ ‫ویژگی‬‫ایا‬‫ز‬‫م‬‫بردها‬‫ر‬‫کا‬‫شخص‬‫تجربه‬‫ی‬‫معتب‬ ‫های‬ ‫برنامه‬‫ر‬‫کد‬ ‫نمونه‬