Azimjon Abdurasulov

Xcode Tips & Debugging

Darsliklar (Tutorials)

Xcode Tips & Debugging — To'liq Darslik

Mundarija

  1. Xcode interfeysi navigatsiyasi
  2. Eng kerakli Keyboard Shortcuts
  3. Breakpoints turlari (Conditional, Symbolic)
  4. LLDB Debugger (po, p, expression)
  5. View Debugger (3D UI vizualizatsiyasi)
  6. Instruments (Performance monitoring)
  7. Memory Graph Debugger (Retain Cycle topish)
  8. Xcode Previews (SwiftUI)
  9. Build Configuration (Debug vs Release)
  10. Code Snippets va Templates
  11. Xulosa

1. Xcode interfeysi navigatsiyasi {#xcode-interface}

Xcode — bu juda murakkab vosita. Navigatsiyani osonlashtirish uchun:

  • Navigator (Chap tomon): Fayllar, ramzlar (symbols), testlar va qidiruv.
  • Inspectors (O'ng tomon): Attributes, Connections va Size inspector.
  • Debug Area (Pastki qism): Console va Variables view.

2. Eng kerakli Keyboard Shortcuts {#shortcuts}

Ish tezligini 2 baravar oshiradigan shortcut'lar:

  • ⌘ + ⇧ + O: Quick Open (istalgan faylni nomi bilan topish)
  • ⌘ + B: Build
  • ⌘ + R: Run
  • ⌘ + .: Stop
  • ⌘ + /: Kodni comment/uncomment qilish
  • ⌃ + I: Kodni avtomatik tekislash (Re-indent)
  • ⌘ + ⇧ + J: Hozirgi faylni navigatorda ko'rsatish

3. Breakpoints turlari {#breakpoints}

Breakpoints — bu kodni to'xtatib, holatni tekshirish uchun:

  • Oddiy Breakpoint: Kod o'sha qatorga kelganda to'xtaydi.
  • Conditional Breakpoint: Faqat ma'lum bir shart bajarilganda to'xtaydi (masalan, i == 10).
  • Exception Breakpoint: Ilova crash bo'lishidan aynan bitta qadam oldin to'xtatadi. Foydali!
  • Symbolic Breakpoint: Ma'lum bir metod chaqirilganda to'xtaydi (masalan, UIView.layoutSubviews).

4. LLDB Debugger {#lldb}

Console'da yoziladigan buyruqlar:

  • po self.label.text: Obyektning tavsifini ko'rish (Print Object).
  • p variableName: O’zgaruvchi qiymatini ko'rish.
  • expression self.view.backgroundColor = .red: Kodni to'xtatgan joyda property'ni o'zgartirib ko'rish.
  • bt: Call Stack'ni ko'rish (Backtrace).

5. View Debugger {#view-debugger}

UI elementlari bir-birining ostida qolib ketgan bo'lsa yoki noto'g'ri joylashsa, Debug View Hierarchy tugmasini bosing. Bu sizga butun UI ni 3D ko'rinishida aylantirib ko'rish imkonini beradi.


6. Instruments {#instruments}

Ilovaning performansini tekshirish:

  • Time Profiler: CPU ni qaysi funksiya eng ko'p band qilayotganini topish.
  • Allocations: Xotira sarfini (RAM) kuzatish.
  • Leaks: Xotira oqishini (Memory Leaks) topish.
  • Network: API so'rovlar vaqtini va hajmini tekshirish.

7. Memory Graph Debugger {#memory-graph}

Retain Cycle (ikkita obyekt bir-birini ushlab qolishi) bor yoki yo'qligini vizual ko'rish uchun mo'ljallangan. Agar birorta obyekt xotiradan o'chmayotgan bo'lsa, Memory Graph sizga uni kim "ushlab turganini" ko'rsatadi.


8. Xcode Previews {#previews}

SwiftUI da kod yozish bilan birga natijani ko'rish.

  • Har xil qurilmalarni (iPhone, iPad, Apple Watch) bir vaqtda preview qilish.
  • Dark/Light mode va turli tillarni (Localization) tekshirish.

9. Build Configuration {#build-config}

  • Debug: Developer uchun. Ko'proq ma'lumot (logging) va sekinroq build.
  • Release: App Store uchun. Maksimal darajada optimallangan kod.
  • Environment Variables: Server URL manzillarini (development_url vs production_url) ajratib qo'yish.

10. Code Snippets va Templates {#snippets}

Tez-tez yozadigan kodingiz bo'lsa (masalan, UITableViewDataSource metodlari), ularni Code Snippet sifatida saqlang. Keyingi safar bir nechta harf bilan butun kod blokini chiqara olasiz.


11. Xulosa {#xulosa}

Yaxshi dasturchi nafaqat kod yozishni, balki xatolarni tezda topishni ham bilishi kerak.

  • Shortcut'larni o'rganing, vaqtingizni tejang.
  • LLDB va Instruments vositalaridan foydalaning.
  • Crashlarni Exception Breakpoint bilan ushlashni o'rganing.

Vazifa: Bugun o'zingiz yozgan loyihada Time Profilerni ishga tushirib, CPU sarfini tahlil qiling! 🔍

Markdown manba

iOS Lessons