Xcode — iOS, macOS, watchOS, tvOS və visionOS üçün tətbiqlər yaratmaq üçün Apple-ın rəsmi inteqrasiya olunmuş inkişaf mühiti (IDE). Xcode kod redaktoru, Interface Builder, cihaz simulyatorları, Swift/Objective-C kompilyatoru, Instruments profileri və versiya idarəetmə sistemini əhatə edir. Apple Developer-də Xcode — IDE və sənədləri yükləmək üçün başlanğıc nöqtəsi.
Əsas məqamlar
Xcode IDE — kod yazmaqdan App Store-da yayımlanmağa qədər tətbiqlərin tam yaradılma dövrünü təmin edən Apple inkişaf mühiti. Xcode-un ilk versiyası 2003-cü ildə Project Builder-ı əvəz etmək üçün buraxıldı. Hal-hazırda aktual versiya — Xcode 16 (2025), yalnız macOS-da, minimum Sonoma 14.5 versiyası ilə işləyir.
Xcode bir pəncərədə kod redaktoru avtomatik tamamlama və refaktorinq ilə, Interface Builder vizual UI dizaynı üçün, Simulator emulyatorlarda test etmək üçün və Instruments profilinq üçün birləşdirir. Stack Overflow Developer Survey 2025 məlumatına görə, Xcode Apple platformaları üzrə tərtibatçıların 67%-i tərəfindən istifadə olunur, qalanları AppCode (dayandırılıb) və VS Code genişlənmələri ilə işləyir.
Xcode və Swift sıx bağlıdır: Xcode-un yeni versiyası Swift buraxılışı ilə eyni vaxtda çıxır, avtomatik tamamlama və tip yoxlaması üçün yenilənmiş SourceKit-LSP daxildir. Xcode 15+-dən etibarən Apple Swift Macro Expansion — Swift makrolarının daxili debugu — və Swift Concurrency-nin ciddi rejimini (Xcode 16-da data-race təhlükəsizliyi) tətbiq etdi.
Xcode layihəsi (.xcodeproj) mənbə kod faylları, resurslar (şəkillər, şriftlər, səslər), qurma parametrləri və sxem konfiqurasiyalarını ehtiva edir. Alternativ format — Swift Package Manager vasitəsilə kitabxanalar üçün Package (.swiftpm), Xcode-un Xcode 11-dən etibarən yerli dəstəklədiyi.
| Fayl / qovluq | Məqsəd |
|---|---|
| AppDelegate.swift | Tətbiqin giriş nöqtəsi, UIApplication həyat dövrünün idarə edilməsi |
| Main.storyboard | Keçidlər (segues) və ViewController əlaqələri ilə ekranların vizual qrafı |
| Info.plist | Tətbiq konfiqurasiyası: bundle identifier, versiyalar, icazələr, dəstəklənən istiqamətlər |
| Assets.xcassets | Resurs kataloqu: bütün çözünürlüklər üçün ikonlar, rənglər, şəkillər (1x, 2x, 3x) |
| LaunchScreen.storyboard | Əsas interfeys yüklənənədək göstərilən başlanğıc ekranı |
Workspace (.xcworkspace) — CocoaPods və ya Swift Packages vasitəsilə bir neçə layihə və qoşulan asılılıqlar üçün konteyner. Tövsiyə olunan struktur: Workspace tətbiq layihəsi və SPM paketlərini ehtiva edir, Swift kitabxanaları isə əsas layihədə Package Dependencies vasitəsilə qoşulur.
Interface Builder — XIB (ayrı view) və Storyboard (ekran qrafı) formatlarında interfeyslər yaratmaq üçün Xcode-un vizual redaktoru. Tərtibatçı UI elementlərini kitabxanadan (Library) kətana sürükləyir, Auto Layout məhdudiyyətlərini konfiqurasiya edir və Assistant Editor vasitəsilə kodla əlaqələr (Outlets, Actions) yaradır.
Storyboard vs SwiftUI: Apple yeni layihələr üçün SwiftUI tövsiyə edir, lakin Interface Builder UIKit-legacy üçün əsas alət olaraq qalır. Storyboard Size Classes (iPad və iPhone-a uyğunlaşma), Preview Assistant (ani önbaxış) və Variants (müxtəlif cihazlar üçün UI tənzimləmə) dəstəkləyir. Xcode 16-da Interface Builder eyni pəncərədə SwiftUI Previews dəstəyi aldı.
Auto Layout — adaptiv interfeyslər üçün məhdudiyyətlər sistemi. Hər constraint view-lar arasında əlaqə təyin edir (en bərabərliyi, boşluq, mərkəzləşdirmə). Constraint konfliktləri Issue Navigator-da düzəliş təklifləri ilə göstərilir. Safe Area Inserts avtomatik olaraq Dynamic Island, kamera və Home Indicator-ı nəzərə alır.
Scheme Xcode-da hərəkətlər dəstini təyin edir: Build, Run, Test, Profile, Analyze, Archive. Hər sxem target və konfiqurasiyaya (Debug, Release) bağlıdır. Tərtibatçı müxtəlif ssenarilər üçün bir neçə sxem yaradır: Development (Debug, simulyator), Staging (Release, test cihazı), Production (Release, Archive).
Build Configurations — müxtəlif optimallaşdırmalarla Debug və Release. Debug tam debug məlumatı (dSYM) ilə optimallaşdırmasız (-O0) kompilyasiya olunur. Release optimallaşdırmalar (-Os) və binar ölçüsünü azaltmaq üçün strip flag daxil edir. Preprocessor Macros (DEBUG=1) şərti kompilyasiya vasitəsilə log idarəçiliyinə imkan verir.
Run Script Build Phases — qurma mərhələlərində xüsusi shell skriptləri: kod generasiyası (Sourcery, SwiftGen), lintinq (SwiftLint), obfuskasiya (Mach-O). Build Phases sırası vacibdir — skriptlər kompilyasiyadan sonra, lakin code signing-dən əvvəl icra olunur. Xcode 16 CI/CD sürətləndirilməsi üçün Parallel Build Phases əlavə etdi.
Xcode Simulator — fiziki cihaz olmadan tətbiqləri işə salmaq və test etmək üçün Apple cihazlarının emulyatoru. Bütün iPhone, iPad, Apple Watch, Apple TV və Vision Pro modelləri müxtəlif OS versiyaları ilə dəstəklənir. Simulyator bütün aparat funksiyalarını (kamera, Bluetooth, TrueDepth) emulyasiya etmir, lakin test ssenarilərinin 90%-ni əhatə edir.
Simulyator xüsusiyyətləri: sürətli başlanğıc (fiziki cihazda dəqiqələr əvəzinə saniyələr), vəziyyət şəkilləri (testdən əvvəl dəqiq vəziyyətin saxlanması), şərait simulyasiyası (zəif siqnal, yavaş şəbəkə, aşağı batareya). Push bildirişlərinin debugu üçün Simulyator .apns faylını simulyator pəncərəsinə sürükləməklə APNS göndərilməsini dəstəkləyir.
Xcode 16 Simulator qrafik performansını test etmək üçün Game Mode dəstəyi, real vaxt SwiftUI Previews və genişləndirilmiş metrik dəsti aldı: FPS, cihaz temperaturu, GPU istifadəsi. Xcode 16-dan etibarən bütün simulyatorlar Rosetta olmadan yerli Apple Silicon-da işləyir.
Instruments — real cihazlarda və simulyatorlarda tətbiqlərin performans analizi üçün Xcode-un daxili profilinq vasitəsi. Instruments CPU, yaddaş, şəbəkə, disk, qrafika (Metal, OpenGL), enerji istehlakı və Swift Concurrency üçün treyser dəsti təqdim edir.
Əsas profilinq alətləri: Time Profiler (hansı funksiyalar CPU istehlak edir), Allocations (yaddaş sızmaları və retain cycles), Leaks (dövri istinadların aşkarlanması), Network (HTTP trafiki və DNS), Energy Log (komponentlər üzrə batareya istehlakı). Instruments tətbiqin müxtəlif qurmaları arasında treys müqayisəsini dəstəkləyir.
Swift Concurrency alətləri Xcode 16-da: Swift Tasks (bütün async/await tapşırıqlarının və vəziyyətlərinin qrafiki), Actors (data-race izolyasiya konfliktləri), SwiftPackage vasitəsilə Custom Instruments. Bu treyserler data-race debugu və tətbiqin hansı hissələrinin əsas axını blokladığını anlamağa kömək edir.
Tez-tez verilən suallar
Xcode yalnız macOS-da işləyir. Windows üçün rəsmi versiya mövcud deyil. Windows-da iOS inkişafı üçün alternativlərdən istifadə olunur: Visual Studio Xamarin/Maui ilə (Mac build host tələb edir), Flutter (iOS qurması codemagic/Mac mini vasitəsilə) və ya macOS virtual maşını (Apple lisenziya müqaviləsini pozur).
Xcode-da Swift versiyası sabitdir və IDE-nin yeni versiyası ilə yenilənir. Swift-i yalnız bir neçə Xcode quraşdırmaqla (məsələn, Swift 5.9 üçün Xcode 15 və Swift 6 üçün Xcode 16) və ya Swift.org-dan Swift Toolchain vasitəsilə dəyişmək olar. Toolchain seçimi: Xcode → Toolchains → Swift Development Toolchain.
SwiftUI Preview — Xcode daxilində SwiftUI interfeysinin canlı render mexanizmi. Kod #Preview makrosuna bükülür və UI dəyişiklikləri kətanda (Canvas) dərhal göstərilir. Preview müxtəlif cihazları, qaranlıq/işıq rejimini, əlçatanlıq metrikalarını və məlumat vəziyyətlərini dəstəkləyir. Bütün layihənin qurulmasını tələb etmir.
Əsas üsullar: Parallel Builds (eyni vaxtda kompilyasiyaların sayı), Build Cache (ccache və ya Xcode 16 Incremental Build), Mutable Optimization (-O0 ilə Debug), Swift Strict Concurrency (minimal yoxlamalar). UI tələb etməyən modullar üçün Previews-i söndürmək və SPM asılılıqlarını optimallaşdırmaq da faydalıdır.
Əsas alternativlər: SourceKit-LSP ilə VS Code (Swift üçün yüngül redaktor), AppCode (2024-cü ildə dayandırılıb), mətn redaktoru + qurma üçün xcodebuild ilə Command Line. Çapraz platforma inkişafı üçün Flutter (VS Code) və React Native (VS Code) istifadə olunur. Lakin App Store-da arxivləşdirmə və yayımlama Xcode tələb edir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun