- Published on
Swift va Xcode-da Markup va Dokumentatsiya qo'shish
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Bu videoda biz Markup va Dokumentatsiya haqida gaplashamiz. SwiftUI kodi yozmaymiz β lekin professional dasturchi bo'lish uchun bu ko'nikmalar juda muhim.
Agar siz faqat o'zingiz uchun ilova yasayotgan bo'lsangiz, ba'zi izohlarsiz ham ishlashingiz mumkin. Lekin ish qidirayotgan bo'lsangiz yoki jamoada ishlayotgan bo'lsangiz, yaxshi yozilgan dokumentatsiya β katta afzallik va ko'p joylarda majburiy talab.
Asosiy ekran sozlamasi
struct DocumentationBootcamp: View {
// MARK: - PROPERTIES
@State var data: [String] = ["Olma", "Apelsin", "Banan"]
@State var showAlert: Bool = false
// MARK: - BODY
var body: some View {
NavigationView {
ZStack {
// Fon qatlami
Color.red
.ignoresSafeArea()
// Old qatlam
foregroundLayer
}
.navigationTitle("Dokumentatsiya")
.navigationBarItems(trailing: Button("Xabar") {
showAlert.toggle()
})
.alert(isPresented: $showAlert) {
getAlert(text: "Bu xabar matni")
}
}
}
// MARK: - FUNCTIONS
func getAlert(text: String) -> Alert {
return Alert(title: Text(text))
}
// MARK: - PREVIEW
}
MARK β Minimap navigatsiyasi
// MARK: yoki // MARK: - β bu izoh emas, navigatsiya vositasi. Xcode-ning minimap panelida bo'limlar sifatida ko'rinadi va uzun fayllarda tezda u-bu yerga o'tish imkonini beradi.
// MARK: - PROPERTIES
// MARK: - BODY
// MARK: - FUNCTIONS
// MARK: - PREVIEW
Minimap-ni yoqish: Xcode β Editor Options (yuqori o'ngdagi tugma) β Show Minimap.
Bo'limlar minimap-da ko'rinadi β o'sha bo'limga bosib o'tish mumkin. Fayl qancha uzun bo'lsa, bu shuncha foydali.
Bir qatorli izoh
// Bu oddiy bir qatorli izoh
// Faqat o'zingiz uchun eslatma qoldirish qulay
// TODO: sarlavhani tuzatish
// FIXME: xabar funksiyasini tuzatish
Ko'p qatorli izoh va Code Folding
Ko'p qatorga izoh yozish uchun har qatorga // yozishning hojati yo'q β /* */ ishlatiladi:
/*
Nick β Amalga oshiriladigan ishlar:
1. Sarlavhani tuzatish
2. Xabar funksiyasini yaxshilash
3. Yangi ekran qo'shish
*/
Bu izohni yig'ish (fold) mumkin:
- Menyu: Editor β Code Folding β Fold
- Klaviatura:
Option + Command + β
Yig'ilganda bitta qator sifatida ko'rinadi, ikki marta bosish orqali ochiladi. Uzoq izohlar yoki katta kod bloklari uchun juda qulay.
Body ichida qatlam izohlari
ZStack ichida fon va old qatlam bo'lganda, ularni belgilash kodni o'qishni osonlashtiradi:
var body: some View {
NavigationView {
ZStack {
// Fon qatlami
Color.red
.ignoresSafeArea()
// Old qatlam
foregroundLayer
}
}
}
Ba'zi dasturchilar container-larning boshlanishi va tugashini ham belgilaydi:
var body: some View {
// START: NavigationView
NavigationView {
// START: ScrollView
ScrollView {
Text("Salom")
}
// END: ScrollView
}
// END: NavigationView
}
Bu uslub majburiy emas, lekin yangi dasturchilar uchun qaysi qavsning qaysi containerkini ekanini tushunishga yordam beradi.
Sub-view ajratish β body-ni tartibli saqlash
Uzun body o'rniga qismlarni alohida computed variable sifatida ajratish afzalroq:
// MARK: - BODY
var body: some View {
NavigationView {
ZStack {
backgroundLayer // faqat bir qator
foregroundLayer // faqat bir qator
}
}
}
// Alohida computed variable-lar
private var backgroundLayer: some View {
Color.red.ignoresSafeArea()
}
private var foregroundLayer: some View {
ScrollView {
ForEach(data, id: \.self) { name in
Text(name)
.font(.headline)
}
}
}
Uch chiziq /// β Summary qo'shish
Istalgan o'zgaruvchi yoki funksiya oldiga /// qo'yib qisqacha tavsif yozish mumkin. Boshqa dasturchi Option tugmasini bosib, o'sha elementni bossΨ§, shu tavsif ko'rinadi:
/// Bu old qatlam bo'lib, ScrollView-ni o'z ichiga oladi
private var foregroundLayer: some View {
ScrollView {
// ...
}
}
Tekshirish: Option + klik β "This is the foreground layer that holds the scroll view" yozuvi chiqadi.
Funksiyaga to'liq dokumentatsiya
Funksiya ustida Command + klik β Add Documentation β Xcode avtomatik shablon yaratadi:
/// Berilgan sarlavha bilan xabar oynasini yaratadi va qaytaradi.
///
/// Bu funksiya faqat sarlavhali xabar yaratadi.
/// Qo'shimcha xabar (message) qo'shilmagan.
///
/// ```swift
/// getAlert(text: "Salom")
/// // qaytaradi: Alert(title: Text("Salom"))
/// ```
///
/// - Warning: Bu xabarda qo'shimcha message yo'q.
///
/// - Parameter text: Xabar oynasining sarlavhasi
/// - Returns: Berilgan sarlavhali Alert
func getAlert(text: String) -> Alert {
return Alert(title: Text(text))
}
Option + klik β getAlert ustida bosganingizda quyidagilar ko'rinadi:
- Summary β qisqacha tavsif
- Declaration β funksiya imzosi
- Discussion β batafsil tushuntirish
- Parameters β parametrlar tavsifi
- Returns β qaytarilayotgan qiymat
- Warning β ogohlantirish
- Kod namunasi β ishlatish misoli
Barcha markup usullari β qisqacha
| Usul | Yozilishi | Maqsadi |
|---|---|---|
| Bir qatorli izoh | // matn | Shaxsiy eslatma |
| Ko'p qatorli izoh | /* matn */ | Uzun izoh, fold mumkin |
| MARK | // MARK: - Bo'lim | Minimap navigatsiyasi |
| Summary | /// tavsif | Option+klik dokumentatsiyasi |
| To'liq hujjat | /// + - Parameter + - Returns | Funksiya dokumentatsiyasi |
| Kod namunasi | ``` kod ``` | Hujjat ichida misol |
| Warning | - Warning: matn | Hujjat ichida ogohlantirish |
Xulosa
Kichik loyihalarda barcha izohlarsiz ishlashingiz mumkin. Lekin kod ularga o'sganda, jamoada ishlashda yoki ish uchun portfolio to'plashda β yaxshi yozilgan dokumentatsiya siz haqingizda professional taassurot qoldiradi va kodni saqlash, yangilashni ancha osonlashtiradi.
Rahmat, men Nick, bu Swiftful Thinking va keyingi videoda ko'rishguncha!