iOS: bu nədir, sistem arxitekturası və Swift dili

Müəllif: IT Sectr Dərc olunub: 2026-02-07 Oxuma vaxtı: 10 dəq

iOS — iPhone və iPod touch cihazlarının işini təmin edən Apple mobil əməliyyat sistemidir. iOS üçün tətbiq inkişafı Swift dilində Xcode mühitində aparılır. Platformanın arxitekturasını, əsas çərçivələri və App Store-da nəşr prosesini nəzərdən keçirək.

Əsas məqamlar

  • iOS — XNU nüvəsi, Darwin nüvə səviyyəsi və Cocoa Touch istifadəçi səviyyəsi ilə monolit ƏS
  • Swift — ARC avtomatik yaddaş idarəetməsi və protokol-yönümlü proqramlaşdırma ilə əsas inkişaf dili
  • UIKit və SwiftUI — interfeys qurmaq üçün iki çərçivə: imperativ və deklarativ
  • App Store — məcburi moderasiya ilə yeganə rəsmi yayım kanalı
  • App Sandbox — hər bir tətbiqi ayrıca konteynerdə izolyasiya edən təhlükəsizlik modeli

iOS nədir?

iOS — Apple şirkətinin mobil əməliyyat sistemi, ilk dəfə 2007-ci ildə ilk iPhone ilə buraxılmışdır. Sistem Mach və FreeBSD komponentlərini birləşdirən hibrid nüvə olan XNU mikronüvəsi üzərində qurulmuşdur. Android-dən fərqli olaraq, iOS qapalı platformadır: tətbiqlərin quraşdırılması yalnız App Store vasitəsilə mümkündür və sistemin mənbə kodu əlçatan deyil.

Apple həm aparat, həm də proqram təminatına nəzarət edir ki, bu da yüksək optimallaşdırma səviyyəsini təmin edir. StatCounter məlumatlarına görə (2026), iOS-un mobil ƏS bazarındakı payı qlobal miqyasda təqribən 28% təşkil edir və ABŞ və Yaponiyada 50%-i keçir.

Sistem sandbox (App Sandbox) modelindən istifadə edir — hər bir tətbiq izolyasiya edilmiş mühitdə işləyir və istifadəçinin sistem dialoqları vasitəsilə açıq icazəsi olmadan digər tətbiqlərin məlumatlarına daxil ola bilməz.

iOS versiyalarının tarixi

İlk iPhone OS 1.0 versiyası üçüncü tərəf tətbiqlərini dəstəkləmirdi. App Store 2008-ci ildə iOS 2.0-da ortaya çıxdı. Əsas mərhələlər: iOS 4 (çox tapşırıqlılıq), iOS 7 (düz dizayn), iOS 10 (iMessage Apps), iOS 14 (iş masasında vidjetlər), iOS 17 (StandBy rejimi). Hər böyük buraxılış yeni API və çərçivələr gətirir.

iOS versiyasıİlƏsas yenilik
iPhone OS 12007İlk versiya, App Store olmadan
iOS 22008App Store, üçüncü tərəf tətbiqləri
iOS 42010Çox tapşırıqlılıq, FaceTime
iOS 72013İnterfeysin tam yenidən dizaynı
iOS 102016iMessage Apps, SiriKit
iOS 142020Vidjetlər, App Library, Picture in Picture
iOS 172023StandBy, NameDrop, Live Voicemail

iOS arxitekturası: sistemin dörd səviyyəsi

iOS arxitekturası dörd abstrakt səviyyədən ibarətdir, hər biri yuxarı səviyyə üçün API təmin edir. Aşağı səviyyələr — nüvə və sistem xidmətləri, yuxarı səviyyələr — istifadəçi çərçivələridir.

Cocoa Touch — yuxarı səviyyə

Cocoa Touch — istifadəçi interfeysi qurmaq üçün çərçivələr qatı. UIKit, SwiftUI, Foundation, MapKit, NotificationCenter və tərtibatçının birbaşa işlədiyi digər API-ləri ehtiva edir. UIKit UIViewController, UIView, UIWindow və bütün vizual komponentləri təmin edir.

Media — qrafika və səs

Media səviyyəsi Core Graphics, Core Animation, Core Image, AVFoundation və Metal-i əhatə edir. Metal — GPU ilə iş üçün aşağısəviyyəli API, oyunlarda və artırılmış reallıq tətbiqlərində yüksək qrafika performansı təmin edir. Core Animation aparat sürətləndirməsi ilə təbəqə səviyyəsində animasiyaları idarə edir.

Core Services — sistem xidmətləri

Core Services Core Data, CloudKit, Core Location, HealthKit, Core Motion və Network-ü əhatə edir. CFNetwork — şəbəkə protokolları ilə iş üçün aşağısəviyyəli C interfeysi. Foundation — NSString, NSArray, NSDictionary sinifləri ilə Core Foundation üzərində obyekt-yönümlü örtük.

Core OS — nüvə və təhlükəsizlik

Aşağı səviyyə XNU nüvəsini, APFS fayl sistemini, kriptoqrafik modulları (CommonCrypto, Security.framework), enerji idarəetməsini və cihaz sürücülərini əhatə edir. Bu səviyyədə Secure Enclave — biometrik məlumatların və şifrələmə açarlarının saxlanması üçün koprosessor işləyir.

objective-c
// Secure Enclave-in Security framework vasitəsilə bütövlük yoxlanışı
#import <LocalAuthentication/LocalAuthentication.h>

LAContext *context = [[LAContext alloc] init];
NSError *error = nil;

if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                          error:&error]) {
    NSLog(@"Secure Enclave biometriya üçün əlçatandır");
} else {
    NSLog(@"Secure Enclave əlçatan deyil: %@", error.localizedDescription);
}

Swift — iOS üçün əsas inkişaf dili

Swift — Apple tərəfindən 2014-cü ildə Objective-C-nin əvəzi olaraq təqdim edilmiş proqramlaşdırma dilidir. Apple-da Kris Lattner tərəfindən hazırlanmışdır. Swift müasir dillərin (Rust, Kotlin, C#) sintaksisini C səviyyəsində performansla birləşdirir. TIOBE məlumatlarına görə (2026), Swift proqramlaşdırma dillərinin ilk 15-liyinə daxildir.

Swift-in əsas imkanları

Swift Automatic Reference Counting (ARC) — zibil yığan olmadan yaddaşı idarə etmək üçün avtomatik referans sayma istifadə edir. Protokol-yönümlü proqramlaşdırma (POP) protocol extension vasitəsilə tipləri genişləndirməyə imkan verir. Optionals nil ilə tip-təhlükəsiz işi təmin edir, pattern matching isə budaqlanmaların işlənməsini sadələşdirir.

swift
import UIKit

/// Məlumat yükləmə xidməti üçün protokol
protocol DataServiceProtocol {
    associatedtype T
    func fetch(completion: @escaping (Result<[T], Error>) -> Void)
}

/// İstifadəçilərin yüklənməsi üçün xidmətin tətbiqi
final class UserService: DataServiceProtocol {
    typealias T = User

    private let session: URLSession
    private let decoder: JSONDecoder

    init(session: URLSession = .shared, decoder: JSONDecoder = JSONDecoder()) {
        self.session = session
        self.decoder = decoder
    }

    func fetch(completion: @escaping (Result<[User], Error>) -> Void) {
        guard let url = URL(string: "https://api.example.com/users") else {
            completion(.failure(URLError(.badURL)))
            return
        }

        session.dataTask(with: url) { [weak self] data, response, error in
            guard let self, let data = data else {
                completion(.failure(error ?? URLError(.badServerResponse)))
                return
            }
            do {
                let users = try self.decoder.decode([User].self, from: data)
                completion(.success(users))
            } catch {
                completion(.failure(error))
            }
        }.resume()
    }
}

struct User: Codable, Identifiable {
    let id: Int
    let name: String
    let email: String
}

Nümunədə Swift Concurrency (async/await), associatedtype ilə protokol və JSON kodlaşdırması üçün Codable istifadə edərək məlumat yükləmə xidmətinin tətbiqi göstərilir. ARC avtomatik olaraq yaddaşı idarə edir, weak self isə bağlanmada güclü referans dövrlərinin qarşısını alır.

Swift Concurrency: async/await və Actors

iOS 13-dən başlayaraq, Swift async/await və Actors vasitəsilə daxili asinxronluğu dəstəkləyir — data races-dən vəziyyəti qoruyan thread-təhlükəsiz tiplər. Çoxthreadlilik üçün DispatchQueue tədricən async/await və Task strukturları ilə əvəz olunur.

swift
actor UserRepository {
    private var cache: [Int: User] = [:]
    private let service = UserService()

    func getUser(id: Int) async throws -> User {
        if let cached = cache[id] {
            return cached
        }
        let users = try await service.fetchAsync()
        guard let user = users.first(where: { $0.id == id }) else {
            throw UserError.notFound
        }
        cache[id] = user
        return user
    }
}

UserRepository aktoru keşə girişin bir thread-də baş verməsini təmin edir, race vəziyyətlərini aradan qaldırır. Kompilyator izolyasiyanı qurma mərhələsində yoxlayır — aktorun mutable xassəsinə müraciət yalnız await vasitəsilə mümkündür.

Xcode və tərtibatçı alətləri

Xcode — Apple-ın inteqrasiya olunmuş inkişaf mühiti (IDE), yalnız macOS-da mövcuddur. Kod redaktoru, vizual dizayn üçün Interface Builder, cihaz simulyatoru, profilləşdirmə üçün Instruments və LLDB debuggerini əhatə edir. Xcode 15 makrolarla Swift 5.9-u dəstəkləyir.

Interface Builder və Storyboards

Interface Builder XML təsvirinin (XIB/Storyboard) avtomatik generasiyası ilə sürüklə-burax metodu ilə interfeys yaratmağa imkan verir. Storyboards ekran axınlarını təsvir edir. 2023-cü ildən Apple vizual inkişaf üçün əsas alət olaraq SwiftUI Preview-i tövsiyə edir, baxmayaraq ki, Interface Builder UIKit layihələrində qalır.

Debug və profilləşdirmə alətləri

Xcode Instruments onlarla şablon ehtiva edir: Time Profiler (CPU analizi), Allocations (yaddaş), Leaks (sızmalar), Core Animation (FPS), Network və Energy Log. Metal Debugger GPU çağırışlarını və shader-ləri yoxlamağa imkan verir. LLDB — Swift ifadələri və şərtli dayanma nöqtələri dəstəyi ilə konsol debugger.

iOS inkişafının əsas çərçivələri

iOS SDK yüzlərlə çərçivəni əhatə edir. Aşağıda hər bir iOS tərtibatçısının gündəlik işlədiyi əsas çərçivələr göstərilmişdir.

ÇərçivəTəyinat
UIKitİnterfeys: UIView, UIViewController, animasiyalar, jestlər
SwiftUIReaktiv yeniləmə ilə deklarativ interfeys
FoundationƏsas tiplər: String, Data, URLSession, JSONEncoder
Core DataSQLite-də lokal məlumat saxlama üçün ORM
CloudKitiCloud ilə sinxronizasiya və backend olmadan server məntiqi
Core LocationGeolokasiya: GPS, geofencing, iBeacon
MapKitApple xəritələrinin göstərilməsi, annotasiyalar, marşrutlar
AVFoundationAudio/video çəkiliş və oxutma
MetalAşağısəviyyəli qrafika və GPGPU hesablamaları
Core MLCihazda maşın öyrənməsi on-device inference ilə
PushKit / UserNotificationsPush bildirişləri, VoIP, məzmun yeniləmələri

Core Data: lokal məlumatlarla iş

Core Data — obyekt məlumat modelinin idarə edilməsi üçün çərçivə. Obyektləri UI thread-i ilə fon kontekstləri arasında saxlamağa, yükləməyə və sinxronizasiya etməyə imkan verir. iOS 17-də Swift Macros dəstəyi ilə Core Data üzərində müasir örtük olan SwiftData əlavə edilmişdir.

UIKit və SwiftUI: yanaşmaların müqayisəsi

iOS üçün tətbiq inkişafına başlayarkən UIKitSwiftUI arasında seçim əsas arxitektura qərarıdır. UIKit 2007-ci ildən mövcuddur və iOS-un bütün versiyalarını dəstəkləyir. SwiftUI 2019-cu ildə təqdim edilmişdir və iOS 13+ tələb edir.

KriteriyaUIKitSwiftUI
Paradiqmaİmperativ (MVC, MVVM)Deklarativ (State-driven)
Minimal iOSiOS 2.0+iOS 13.0+
DizaynKodda Auto Layout və ya Interface BuilderModifier chain, HStack/VStack/ZStack
FərdiləşdirməTam (CALayer, drawRect)Modifikatorlarla məhdud
PerformansYüksək (əl ilə optimallaşdırma)Avtomatik invalidasiya
PreviewDəstəkləmirReal vaxtda Xcode Preview
Test etməXCTest + Snapshot testləriXCTest + Preview testləri

Praktikada kommersiya layihələrinin əksəriyyəti hibrid yanaşmadan istifadə edir: yeni ekranlar və sadə formalar üçün SwiftUI, renderə dəqiq nəzarət tələb edən mürəkkəb fərdi komponentlər üçün UIKit. Apple SwiftUI-ə fəal sərmayə qoyur və 2028-ci ilə qədər onun əsas çərçivəyə çevriləcəyi gözlənilir.

iOS tətbiqinin həyat dövrü

Hər bir iOS tətbiqi UIApplication və AppDelegate tərəfindən idarə olunan beş vəziyyətdən keçir. SwiftUI-də bu rolu @main atributu ilə App Protocol öz üzərinə götürür.

Tətbiq vəziyyətləri

Not running — tətbiq işə salınmayıb və ya sistem tərəfindən dayandırılıb. Inactive — tətbiq ön plandadır, lakin hadisələri qəbul etmir (məsələn, daxil olan zəng zamanı). Active — normal vəziyyət, tətbiq toxunma hadisələrini qəbul edir. Background — tətbiq yığışdırılıb, fon tapşırıqlarını yerinə yetirir. Suspended — tətbiq yaddaşdadır, lakin kod icra etmir.

swift
import SwiftUI

@main
struct MyApp: App {
    @Environment(\.scenePhase) private var scenePhase

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .onChange(of: scenePhase) { oldPhase, newPhase in
            switch newPhase {
            case .active:
                print("Tətbiq aktiv oldu")
            case .inactive:
                print("Tətbiq qeyri-aktivdir")
            case .background:
                print("Tətbiq fon rejiminə keçdi")
            @unknown default:
                break
            }
        }
    }
}

Sistem yaddaş çatışmazlığı zamanı tətbiqi fonda dayandıra bilər. Tərtibatçı onDisappear və ya ScenePhase.background vasitəsilə vəziyyəti yadda saxlamalıdır ki, istifadəçi tətbiqlər arasında keçid edərkən məlumatlarını itirməsin.

App Store: nəşr və tələblər

App Store — iOS üçün yeganə rəsmi tətbiq mağazası. Nəşr Apple Developer Program abunəliyi tələb edir ($99/il). Hər bir tətbiq moderasiyadan keçir — avtomatik (binar kodun statik analizi) və əl ilə (interfeys və məzmunun yoxlanılması).

Nəşr prosesi

Tərtibatçı Xcode-da arxiv yaradır, Transporter və ya Xcode Organizer vasitəsilə App Store Connect-ə yükləyir. Orta moderasiya müddəti 24–48 saatdır. App Review təlimatların uyğunluğunu yoxlayır: məlumat təhlükəsizliyi, performans, HIG dizaynı, gizli funksionallığın olmaması.

App Review tələbləri

Məxfilik xüsusi diqqət tələb edir: bütün məlumat toplama növləri Privacy Manifest-də bəyan edilməlidir. 2025-ci ildən Apple API istifadə səbəblərinin göstərilməsini tələb edir (NSPrivacyAccessedAPITypes). İstifadəçinin razılığı olmadan izləyicilərdən istifadə edən tətbiqlər nəşr edilmir.

TələbTəsvir
Privacy ManifestToplanan bütün məlumatların və toplama məqsədlərinin bəyannaməsi
HIG ComplianceApple Human Interface Guidelines-ə uyğunluq
StabilityModerasiya mərhələsində çökmələrin olmaması
Sandbox RulesYalnız icazə verilən resurslara giriş
iCloud EntitlementsiCloud Container-in düzgün konfiqurasiyası

Tez-tez verilən suallar

iOS tətbiqləri üçün hansı dillərdən istifadə olunur?

Əsas dil — Swift. Objective-C də dəstəklənir, lakin əsasən köhnə layihələrdə istifadə olunur. Swift — Apple tərəfindən 2014-cü ildə təqdim edilmiş müasir tip-təhlükəsiz dildir. 2020-ci ildən Apple Swift-i yeni layihələr üçün yeganə dil olaraq tövsiyə edir.

Nə seçməli: UIKit yoxsa SwiftUI?

UIKit — maksimum fərdiləşdirmə ilə yetkin çərçivə, mürəkkəb interfeyslər üçün uyğundur. SwiftUI — iOS 13+ üçün deklarativ çərçivə, inkişafı 2–3 dəfə sürətləndirir. Layihələrin əksəriyyəti UIViewRepresentable və UIHostingController vasitəsilə hər iki yanaşmadan istifadə edir.

App Store-da nəşr nə qədər başa gəlir?

Apple Developer Program illik abunəliyi fərdi tərtibatçılar üçün $99, təşkilatlar üçün $299 təşkil edir. Abunəlik olmadan nəşr mümkün deyil. App Store komissiyası tərtibatçının illik gəlirindən asılı olaraq satışların 15–30%-ni təşkil edir.

SwiftUI üçün minimum iOS versiyası hansıdır?

SwiftUI iOS 13-dən (2019) etibarən mövcuddur. Lakin NavigationStack, Observable Macro və SwiftData daxil olmaqla bütün imkanlardan istifadə etmək üçün iOS 17 və Xcode 15 tələb olunur. Köhnə versiyaların dəstəklənməsi SwiftUI funksionallığını məhdudlaşdırır.

iOS-da App Sandbox nədir?

App Sandbox — tətbiqin fayl sisteminə, digər tətbiqlərin məlumatlarına və sistem resurslarına girişini məhdudlaşdıran təhlükəsizlik modelidir. Hər bir tətbiq izolyasiya edilmiş konteynerdə işləyir. Kontaktlara, fotolara, mikrofona giriş sistem dialoqu vasitəsilə açıq icazə tələb edir.

Xülasə

  • iOS — XNU nüvəsi, tətbiqlər üçün sandbox və App Store-da məcburi moderasiya ilə qapalı mobil ƏS
  • Swift — ARC, protokol-yönümlü proqramlaşdırma və async/await ilə iOS inkişafı üçün müasir dil
  • iOS arxitekturası dörd səviyyəni əhatə edir: Cocoa Touch, Media, Core Services, Core OS
  • Xcode — yeganə inkişaf mühiti, simulyator, Instruments və LLDB debuggerini ehtiva edir
  • UIKit və SwiftUI — interfeysə iki yanaşma: imperativ və deklarativ, çox vaxt birlikdə istifadə olunur
  • App Store Developer Program abunəliyi, Privacy Manifest və moderasiya tələb edir
  • iOS təhlükəsizliyi Secure Enclave, Sandbox və məcburi məlumat şifrələməsi ilə təmin edilir

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.

Layihəni müzakirə et

Həm də oxuyun