Published on

Swift-da protokols

Authors

Hammaga yana xush kelibsiz!

Hammaga yana xush kelibsiz, mening ismim Nik, bu “Swiftful Thinking”. Biz bu pleylistni deyarli yakunladik – juda yaqinlashdik! Hali taslim bo‘lmang, bu oxirgi video bo‘lishi mumkin yoki undan keyin bir-ikkita qolgan bo‘lishi ham mumkin. Agar siz kod yozishni endi o‘rganayotgan bo‘lsangiz, keyingi pleylist sifatida SwiftUI Bootcampni tavsiya qilaman.

SwiftUI’da har bir ekran View protocoliga mos keladi – shuning uchun bu videoni tayyorladim. Protocol’lar o‘zi ilg‘or mavzu – yangi boshlovchi sifatida uzoq vaqt o‘z protocol’ingizni yaratishingiz shart emas. Men ilova qurganimda ham protocol yozmasdan ishlaganman. Hozir chuqur bilish shart emas, lekin protocol nima ekanligiga yuqori darajada kirish beraman – chunki SwiftUI Bootcamp’da har bir view ushbu protocol’ga mos keladi. Bu nima anglatishini va keyingi 100 ta faylda ko‘radigan kodni tushunib oling. Keling, kodga o‘tamiz – birinchi protocol yozamiz va SwiftUI view’ga qaraymiz!


Yana xush kelibsiz!

Bu pleylistni deyarli tugatdik. Bu oxirgi video – yangi boshlovchilar uchun shart bo‘lmagan, lekin kodda tez-tez uchraydigan narsani tushuntiraman. SwiftUI’da har bir view protocol’ga mos keladi – shuni qisqacha tushuntirib, keyingi pleylistda ko‘radigan kodni tushunishingizga yordam beraman.

Yangi fayl yarating: Navigator-da o‘ng tugma bilan bosing, yangi Playground sahifasini yarating va uni “Protocols” deb nomlang.


Protocol’lar

/*
Protocols - A set of rules or requirements that an object must follow
*/

Protocol’lar Swift’da ilg‘or mavzu – chuqur tushunish hozir shart emas, faqat ular nima ekanligini ko‘rsataman.

Struct va protocol

struct EmployeeModel {
    let title: String
    let name: String
}

protocol EmployeeHasAName {
    var name: String { get }
}

struct EmployeeModel: EmployeeHasAName {
    let title: String
    let name: String
}

  • protocol EmployeeHasAName – qoidalar ro‘yxati: har qanday mos keluvchi ob’ekt name xususiyatiga ega bo‘lishi kerak.
  • EmployeeModel: EmployeeHasAName – struct protocol’ga mos keladi, chunki name bor.
  • Agar name bo‘lmasa, xato beradi:
    struct EmployeeModel: EmployeeHasAName {
        let title: String
        // Xato: 'name' yo‘q
    }
    
    

SwiftUI View protocol

SwiftUI’da har bir view – struct bo‘lib, View protocoliga mos keladi. Buni ko‘rish uchun:

  1. Yangi loyiha yarating: File > New > Project > App (Multiplatform) > “MyTestApp” deb nomlang > Saqlang.
  2. Kod misoli:
import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("Hello World")
    }
}

  • struct ContentView: View – View protocol’iga mos keladi.
  • body – View protocol’ining talabi: some View turidagi xususiyat bo‘lishi kerak.
  • Agar body qo‘shilmasa, xato: “Type 'ContentView' does not conform to protocol 'View'”.

Tushuntirish

  • Protocol – qoidalar ro‘yxati.
  • View protocol’i – har bir SwiftUI view’da body bo‘lishini talab qiladi.
  • Keyingi 50 ta videoda bu sintaksisni ko‘rasiz – shuni tushunib oling.

Xulosa

Bu pleylistni yakunladik! Protocol’lar haqida qisqacha ma’lumot berdim – hozir o‘zingiz yozishingiz shart emas, lekin SwiftUI’da har bir view shunday yozilishini bilib oling.

Agar bu pleylist sizga yoqsa, keyingi qadam – SwiftUI Bootcamp. Bu pleylist ikki yil avval chiqqan, lekin hali ham dolzarb – bir-ikki video eskirgan bo‘lsa ham, oxirida yangilangan versiyalarini qo‘shganman. SwiftUI’da ekranlar qurishni o‘rganasiz – matn, shakllar, ranglar qo‘shish bu pleylistdan ancha qiziqarli!

Rahmat!

  • *“Swiftful Thinking”**ni tanlaganingiz uchun rahmat – bu katta sharaf! Kod yozishni o‘rganish qiyin, lekin men uni osonlashtirishga harakat qildim. Savollaringiz bo‘lsa, Discord’ga qo‘shiling. Men Nikman, bu **“Swiftful Thinking”**, keyingi videoda ko‘rishguncha!
Buy mea coffee