آموزش صفر تا صد کاتلین (فیلم فارسی+دانلود رایگان PDF)

بعد از حدود ۱ هفته گشت و گذار در اینترنت و از بین هزاران ویدیو، یک مجموعه بی نقص و کامل ویدیویی را برای یادگیری کاتلین گلچین کرده ایم. این مجموعه کامل برای شروع از صفر و برای همه سطوح مناسب می باشد. بعد از آن نیز بهترین جزوه PDF فارسی موجود در اینترنت را جهت تکمیل یادگیری می توانید دانلود کنید.
مفاهیم و نکات کاربردی کاتلین (همین توضیحات خودش نصف راهه!)
کاتلین (Kotlin) یک زبان برنامهنویسی مدرن است که بیشتر به دلیل استفاده گسترده در برنامهنویسی اندروید شناخته میشود. کاتلین خوانایی خوبی دارد، بسیاری از کدهای طولانی جاوا را کوتاهتر میکند و امکانات مناسبی برای جلوگیری از خطاهای رایج برنامهنویسی دارد.
اگر هدف شما برنامهنویسی اندروید باشد، کاتلین یکی از مهمترین زبانهایی است که باید یاد بگیرید.
مسیر مناسب یادگیری برای یک مبتدی چنین است:
متغیرها → انواع داده → شرط → حلقه → تابع → مجموعهها → کلاس و شیء → مدیریت Null → شیءگرایی → Coroutines → برنامهنویسی اندروید
اولین برنامه کاتلین
یک برنامه بسیار ساده:
fun main() {
println("سلام کاتلین")
}main تابع اصلی برنامه است و اجرای برنامه معمولاً از آن شروع میشود.
دستور:
println()برای نمایش اطلاعات در خروجی استفاده میشود.
مثلاً:
println(10 + 20)خروجی:
30متغیر چیست؟
متغیر (Variable) محلی برای نگهداری اطلاعات است.
در کاتلین دو روش مهم تعریف متغیر داریم:
var age = 25
val name = "Ali"var یعنی مقدار متغیر قابل تغییر است.
مثلاً:
var age = 20
age = 21اما val برای مقداری است که بعد از مقداردهی اولیه نباید دوباره تغییر کند:
val country = "Iran"برای برنامهنویسی بهتر، هرجا نیازی به تغییر مقدار ندارید از val استفاده کنید.
انواع داده
کاتلین انواع داده مختلفی دارد.
چند نوع مهم عبارتاند از:
| نوع | کاربرد | مثال |
|---|---|---|
| Int | عدد صحیح | 25 |
| Long | عدد صحیح بزرگ | 100000L |
| Double | عدد اعشاری | 18.5 |
| Float | عدد اعشاری | 10.5f |
| Boolean | درست یا غلط | true |
| Char | یک نویسه | 'A' |
| String | متن | "Ali" |
مثلاً:
val age: Int = 25
val price: Double = 150.5
val isStudent: Boolean = true
val name: String = "Sara"معمولاً کاتلین خودش نوع داده را تشخیص میدهد؛ بنابراین اغلب میتوانیم سادهتر بنویسیم:
val age = 25String یا رشته متنی
رشته متنی (String) برای نگهداری متن استفاده میشود.
val name = "Reza"برای ترکیب متن و متغیر، کاتلین روش بسیار سادهای دارد:
val age = 30
println("سن من $age سال است")یا:
val a = 10
val b = 20
println("مجموع برابر ${a + b} است")این قابلیت را درونگذاری رشته یا String Template مینامند.
شرط if
برای تصمیمگیری از if استفاده میکنیم.
val age = 20
if (age >= 18) {
println("بزرگسال")
} else {
println("کمتر از 18 سال")
}همچنین میتوانیم چند حالت تعریف کنیم:
val score = 17
if (score >= 18) {
println("عالی")
} else if (score >= 12) {
println("قبول")
} else {
println("مردود")
}دستور when
کاتلین دستور بسیار کاربردی دیگری به نام:
when (وِن)
دارد که برای بررسی چند حالت مناسب است.
مثلاً:
val day = 2
when (day) {
1 -> println("شنبه")
2 -> println("یکشنبه")
3 -> println("دوشنبه")
else -> println("روز دیگر")
}when در بسیاری از مواقع کد را از چندین if خواناتر میکند.
عملگرهای مقایسهای
چند عملگر مهم:
== برابر بودن
!= نابرابر بودن
> بزرگتر
< کوچکتر
>= بزرگتر یا مساوی
<= کوچکتر یا مساویمثلاً:
if (price > 100000) {
println("قیمت بالا است")
}برای ترکیب چند شرط نیز از:
&&
به معنی و
و:
||
به معنی یا
استفاده میشود.
مثلاً:
if (age >= 18 && hasCard) {
println("ورود مجاز است")
}حلقه for
حلقه (Loop) برای تکرار دستورات استفاده میشود.
مثلاً:
for (i in 1..5) {
println(i)
}خروجی:
1
2
3
4
5برای پیمایش یک فهرست نیز میتوان نوشت:
val names = listOf("Ali", "Sara", "Reza")
for (name in names) {
println(name)
}حلقه while
تا زمانی که شرط برقرار باشد، while اجرا میشود:
var number = 1
while (number <= 5) {
println(number)
number++
}مراقب باشید شرط حلقه در نهایت تغییر کند؛ در غیر این صورت ممکن است حلقه بینهایت ایجاد شود.
تابع چیست؟
تابع (Function) مجموعهای از دستورات است که یک کار مشخص انجام میدهد.
در کاتلین با fun تعریف میشود:
fun sayHello() {
println("سلام")
}برای اجرا:
sayHello()تابع میتواند ورودی دریافت کند:
fun sayHello(name: String) {
println("سلام $name")
}و میتواند نتیجه برگرداند:
fun add(a: Int, b: Int): Int {
return a + b
}استفاده:
val result = add(10, 20)توابع باعث میشوند کد مرتبتر و قابل استفاده مجدد باشد.
List یا فهرست
برای نگهداری چند مقدار میتوان از فهرست (List) استفاده کرد.
فهرست غیرقابل تغییر:
val names = listOf("Ali", "Sara", "Mina")دسترسی به اولین عنصر:
println(names[0])اگر فهرست قابل تغییر بخواهیم:
val names = mutableListOf("Ali", "Sara")
names.add("Reza")Mutable یعنی قابل تغییر.
برنامه نویسی اندروید رو قورت بده! بدون کلاس، سرعت 2 برابر، ماندگاری 3 برابر، پولسازی با ساخت اپلیکیشن و بازی، سه پک زیر جوابت هست:
شناخت تفاوت مجموعههای قابل تغییر و غیرقابل تغییر در کاتلین بسیار مهم است.
Map چیست؟
نگاشت (Map) اطلاعات را به شکل کلید و مقدار ذخیره میکند.
مثلاً:
val student = mapOf(
"name" to "Ali",
"city" to "Tehran"
)دریافت مقدار:
println(student["name"])Map برای اطلاعات ساختاریافته بسیار کاربردی است.
Null چیست؟
یکی از مهمترین ویژگیهای کاتلین مدیریت بهتر مقدار تهی (Null) است.
Null یعنی متغیر در حال حاضر مقدار واقعی ندارد.
در کاتلین بهصورت عادی نمیتوانید بنویسید:
var name: String = nullاگر قرار است متغیر بتواند Null باشد باید از ? استفاده کنید:
var name: String? = nullاین قابلیت را ایمنی در برابر Null یا Null Safety مینامند و یکی از نقاط قوت کاتلین است.
عملگر ?.
فرض کنید:
var name: String? = nullاگر بنویسیم:
println(name?.length)کاتلین ابتدا بررسی میکند name تهی است یا خیر.
اگر مقدار داشته باشد، طول متن را برمیگرداند؛ اگر Null باشد، برنامه بیدلیل خراب نمیشود.
این عملگر را فراخوانی امن یا Safe Call مینامند.
عملگر Elvis
عملگر:
?:به عملگر الویس (Elvis Operator) معروف است.
مثلاً:
val name: String? = null
val result = name ?: "نام وارد نشده"اگر name مقدار داشته باشد همان مقدار استفاده میشود، در غیر این صورت عبارت دوم استفاده میشود.
Class و Object
کاتلین یک زبان شیءگرا (Object-Oriented) نیز هست.
مثلاً:
class Student(
val name: String,
var score: Int
)حالا میتوانیم یک شیء (Object) بسازیم:
val student1 = Student("Ali", 18)و اطلاعات آن را بخوانیم:
println(student1.name)
println(student1.score)Class را میتوان نقشه ساخت اشیا در نظر گرفت.
Data Class
کاتلین برای نگهداری دادهها نوع بسیار کاربردی:
Data Class یا کلاس داده
را دارد.
مثلاً:
data class Product(
val id: Int,
val name: String,
val price: Double
)این نوع کلاس در پروژههای اندروید بسیار زیاد استفاده میشود، مخصوصاً هنگام دریافت اطلاعات از پایگاه داده یا رابط برنامهنویسی.
Lambda چیست؟
لامبدا (Lambda) نوع کوتاهتری از تابع است.
مثلاً:
val numbers = listOf(1, 2, 3, 4)
numbers.forEach {
println(it)
}it به عنصر فعلی اشاره میکند.
Lambdaها در کاتلین بسیار مهم هستند و هنگام کار با اندروید زیاد دیده میشوند.
Coroutine چیست؟
یکی از مفاهیم مهمتر کاتلین:
کوروتین (Coroutine)
است.
کوروتین برای اجرای کارهای زمانبر بدون متوقفکردن بخش اصلی برنامه استفاده میشود.
مثلاً:
- دریافت اطلاعات از اینترنت
- خواندن پایگاه داده
- انجام عملیات طولانی
در برنامه اندروید نباید کارهای سنگین را روی رشته اصلی اجرا کنیم، چون ممکن است رابط کاربری متوقف شود.
برای شروع لازم نیست Coroutine را عمیق یاد بگیرید؛ فقط بدانید که بخش مهمی از برنامهنویسی جدید کاتلین و اندروید است.
موارد آموزش داده شده در این پکیج رایگان
- مقدمه و پیشگفتار
- آشنایی کلی
- نصب نرم افزارهای مورد نیاز
- اولین برنامه کاتلین برای اندروید
- راه اندازی شبیه ساز
- اجرای برنامه اندرویدی روی گوشی
- آشنایی با اندروید استودیو
- و …
دانلود آموزش رایگان ما
حجم: ۲۸۰ مگابایت (فشرده شده)
سطح: از صفر تا صد
نسخه آموزش داده شده: مناسب برای همه نسخه ها
![]()
به دنبال یادگیری سریع تر، حرفه ای تر، کامل تر و با کیفیت فول اچ دی هستید؟ بهترین پکیج آموزش برنامه نویسی اندروید موجود در ایران را ببینید!

کاربرد کاتلین در اندروید
اگر هدف شما برنامهنویسی Android است، بعد از یادگیری پایه کاتلین وارد این موضوعات شوید:
Android Studio → Activity → Jetpack Compose → State → Navigation → ViewModel → Room → API → Coroutines
کاتلین فقط مخصوص اندروید نیست، اما اندروید مهمترین حوزهای است که بسیاری از مبتدیان به دلیل آن سراغ این زبان میروند.
اشتباهات رایج مبتدیان
از این موارد دوری کنید:
- شروع اندروید قبل از یادگیری پایه کاتلین
- حفظ دستورات بدون نوشتن برنامه
- استفاده زیاد از
varوقتیvalکافی است - بیتوجهی به Null Safety
- کپیکردن کد هوش مصنوعی بدون فهمیدن آن
- شروع مستقیم پروژه پیچیده
- یاد نگرفتن Function و Class
- ترسیدن از Errorها
بهترین روش این است که بعد از یادگیری هر مفهوم چند تمرین کوتاه انجام دهید.
مسیر پیشنهادی یادگیری کاتلین
به این ترتیب جلو بروید:
متغیر و نوع داده → String → شرط و when → حلقه → Function → List و Map → Null Safety → Class و Object → Data Class → Lambda → Coroutine → Android
برای تمرین نیز میتوانید از پروژههای ساده شروع کنید:
ماشینحساب → محاسبه معدل → فهرست کارها → دفترچه مخاطبان → برنامه ساده اندروید
جمعبندی
برای یادگیری کاتلین لازم نیست در ابتدا تمام امکانات زبان را حفظ کنید. ابتدا مفاهیم اصلی را خوب بفهمید:
متغیر → شرط → حلقه → تابع → مجموعهها → Null → کلاس → لامبدا → کوروتین
اگر بتوانید برنامهای بنویسید که اطلاعات دریافت کند، براساس شرط تصمیم بگیرد، از List استفاده کند، چند Function داشته باشد و اطلاعات را در Class نگهداری کند، بخش اصلی زبان کاتلین را یاد گرفتهاید.
اگر هدف نهایی شما Android است، ابتدا خود کاتلین را به سطح قابل قبول برسانید و سپس وارد Android Studio و Jetpack Compose شوید. این روش بسیار بهتر از آن است که همزمان با یادگیری زبان، درگیر صدها مفهوم اندروید شوید.


سلام با زبان فارسی توضیح میده ؟
پاسخبله
این اولین زبان برنامه نویسی هست که میخوام یاد بگیرم به نظر شما برای شروع خوبه؟ اگه خوب نیست یک زبان برای ساخت اپلیکیشن بگید
پاسخخیلی عالیه انتخاب خوبیه .
بهتره اول جاوا آموزش ببینید
سلام بهتره اول html css رو یاد بگیرید فوقالعاده آسونه هم برای طراحی وب هست و هم میتونید اپلیکیشن بسازید اگه جاوا اسکریپت هم یاد بگیرید عالیه....
سلام من تازه میخوام یاد بگیرم android studio رو و وقتی بخوام یه برنامه معمولی درست کنم که فقط یه button داشته باشه و وقتی کلیک کنم یه پیغام خوش امدید بیاد، button رو که درست میکنم و همه چیزشو درست میکنم و حتی IDرو هم تغییر میدم و وارد قسمت MainActivity.kt میشم هیچ button به این ID نمیشناسه و همش ارور میده که هیچ button به این اسم و ID نداریم اصلا میشه لطفا کمک کنید ممنون
پاسخkotlin-android-extensions این رو به قسمت اکستنشن ها اضافه کن مشکلت حل میشه
منم دقیقا همین مشکل دارم. توی پلاگین ها کاتلین و هم نصب کردم و مشکلم حل نشد
این دوره پیش نیاز لازم داره
پاسخسلام
پاسخخسته نباشید
ببخشید این دوره فقط آموزش خود کاتلینه یا اینکه واسه ساخت برنامه اندرویدیه؟
سلام من علاقه زیادی برام پیش اومده آیا میشه برای یک پلتفرم از چند زبان برنامه نویسی استفاده کرد ؟؟
پاسخ