iOS: bu nima, tizim arxitekturasi va Swift tili

Muallif: IT Sectr Nashr etilgan: 2026-02-07 O'qish vaqti: 10 daq

iOS — Apple-ning mobil operatsion tizimi, iPhone va iPod touch qurilmalarining ishlashini ta'minlaydi. iOS uchun ilova ishlab chiqish Swift tilida Xcode muhitida amalga oshiriladi. Platforma arxitekturasi, asosiy freymvorklar va App Store-da nashr qilish jarayonini ko'rib chiqamiz.

Asosiy fikrlar

  • iOS — XNU yadrosi, Darwin yadro darajasi va Cocoa Touch foydalanuvchi darajasi bilan monolit OT
  • Swift — ARC avtomatik xotira boshqaruvi va protokol-yo'naltirilgan dasturlash bilan asosiy ishlab chiqish tili
  • UIKit va SwiftUI — interfeys qurish uchun ikkita freymvork: imperativ va deklarativ
  • App Store — majburiy moderatsiya bilan yagona rasmiy tarqatish kanali
  • App Sandbox — har bir ilovani alohida konteynerda izolyatsiya qiluvchi xavfsizlik modeli

iOS nima?

iOS — Apple kompaniyasining mobil operatsion tizimi, birinchi marta 2007 yilda birinchi iPhone bilan chiqarilgan. Tizim XNU mikroyadrosida qurilgan bo'lib, Mach va FreeBSD komponentlarini birlashtiruvchi gibrid yadrodir. Android-dan farqli o'laroq, iOS yopiq platformadir: ilovalarni o'rnatish faqat App Store orqali mumkin va tizimning manba kodi mavjud emas.

Apple ham apparat, ham dasturiy ta'minotni nazorat qiladi, bu yuqori darajadagi optimallashtirishni ta'minlaydi. StatCounter ma'lumotlariga ko'ra (2026), iOS-ning mobil OT bozoridagi ulushi global miqyosda taxminan 28% ni tashkil etadi va AQSh va Yaponiyada 50% dan oshadi.

Tizim sandbox (App Sandbox) modelidan foydalanadi — har bir ilova izolyatsiya qilingan muhitda ishlaydi va foydalanuvchining tizim dialoglari orqali aniq ruxsatisiz boshqa ilovalarning ma'lumotlariga kira olmaydi.

iOS versiyalari tarixi

Birinchi iPhone OS 1.0 versiyasi uchinchi tomon ilovalarini qo'llab-quvvatlamas edi. App Store 2008 yilda iOS 2.0 da paydo bo'ldi. Asosiy bosqichlar: iOS 4 (ko'p vazifalilik), iOS 7 (tekis dizayn), iOS 10 (iMessage Apps), iOS 14 (ish stolida vidjetlar), iOS 17 (StandBy rejimi). Har bir yirik versiya yangi API va freymvorklarni olib keladi.

iOS versiyasiYilAsosiy yangilik
iPhone OS 12007Birinchi versiya, App Storesiz
iOS 22008App Store, uchinchi tomon ilovalari
iOS 42010Ko'p vazifalilik, FaceTime
iOS 72013Interfeysning to'liq qayta dizayni
iOS 102016iMessage Apps, SiriKit
iOS 142020Vidjetlar, App Library, Picture in Picture
iOS 172023StandBy, NameDrop, Live Voicemail

iOS arxitekturasi: tizimning to'rt darajasi

iOS arxitekturasi to'rt abstrakt darajadan iborat bo'lib, har biri yuqori daraja uchun API taqdim etadi. Pastki darajalar — yadro va tizim xizmatlari, yuqori darajalar — foydalanuvchi freymvorklari.

Cocoa Touch — yuqori daraja

Cocoa Touch — foydalanuvchi interfeysini qurish uchun freymvorklar qatlami. UIKit, SwiftUI, Foundation, MapKit, NotificationCenter va dasturchi bevosita ishlaydigan boshqa API-larni o'z ichiga oladi. UIKit UIViewController, UIView, UIWindow va barcha vizual komponentlarni taqdim etadi.

Media — grafika va ovoz

Media darajasi Core Graphics, Core Animation, Core Image, AVFoundation va Metal-ni o'z ichiga oladi. Metal — GPU bilan ishlash uchun past darajadagi API, o'yinlar va kengaytirilgan haqiqat ilovalarida yuqori grafik unumdorlikni ta'minlaydi. Core Animation apparat tezlashuvi bilan qatlam darajasida animatsiyalarni boshqaradi.

Core Services — tizim xizmatlari

Core Services Core Data, CloudKit, Core Location, HealthKit, Core Motion va Network-ni o'z ichiga oladi. CFNetwork — tarmoq protokollari bilan ishlash uchun past darajadagi C interfeysi. Foundation — NSString, NSArray, NSDictionary sinflari bilan Core Foundation ustidagi obyektga yo'naltirilgan qoplama.

Core OS — yadro va xavfsizlik

Pastki daraja XNU yadrosini, APFS fayl tizimini, kriptografik modullarni (CommonCrypto, Security.framework), energiya boshqaruvini va qurilma drayverlarini o'z ichiga oladi. Bu darajada Secure Enclave — biometrik ma'lumotlar va shifrlash kalitlarini saqlash uchun koprotsessor ishlaydi.

objective-c
// Secure Enclave ning Security framework orqali yaxlitligini tekshirish
#import <LocalAuthentication/LocalAuthentication.h>

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

if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                          error:&error]) {
    NSLog(@"Secure Enclave biometriya uchun mavjud");
} else {
    NSLog(@"Secure Enclave mavjud emas: %@", error.localizedDescription);
}

Swift — iOS uchun asosiy ishlab chiqish tili

Swift — Apple tomonidan 2014 yilda Objective-C o'rniga taqdim etilgan dasturlash tili. Kris Lattner tomonidan Apple da ishlab chiqilgan. Swift zamonaviy tillar (Rust, Kotlin, C#) sintaksisini C darajasidagi unumdorlik bilan birlashtiradi. TIOBE ma'lumotlariga ko'ra (2026), Swift dasturlash tillarining top 15 taligiga kiradi.

Swift-ning asosiy imkoniyatlari

Swift Automatic Reference Counting (ARC) — chiqindi yig'uvchisiz xotirani boshqarish uchun avtomatik referans hisoblashdan foydalanadi. Protokolga yo'naltirilgan dasturlash (POP) protocol extension orqali turlarni kengaytirishga imkon beradi. Optionals nil bilan tur-xavfsiz ishlashni ta'minlaydi, pattern matching esa tarmoqlanishlarni qayta ishlashni soddalashtiradi.

swift
import UIKit

/// Ma'lumot yuklash xizmati uchun protokol
protocol DataServiceProtocol {
    associatedtype T
    func fetch(completion: @escaping (Result<[T], Error>) -> Void)
}

/// Foydalanuvchilarni yuklash uchun xizmatni tatbiq qilish
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
}

Misolda Swift Concurrency (async/await), associatedtype bilan protokol va JSON dekodlash uchun Codable yordamida ma'lumot yuklash xizmatining tatbiqi ko'rsatilgan. ARC avtomatik ravishda xotirani boshqaradi, weak self esa yopilishda kuchli referans sikllarining oldini oladi.

Swift Concurrency: async/await va Actors

iOS 13 dan boshlab, Swift async/await va Actors orqali o'rnatilgan asinxronlikni qo'llab-quvvatlaydi — data races dan holatni himoya qiluvchi ip-xavfsiz turlar. Ko'p iplilik uchun DispatchQueue asta-sekin async/await va Task tuzilmalari bilan almashtirilmoqda.

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 aktori keshga kirishning bir ipda amalga oshishini kafolatlaydi, race holatlarini bartaraf qiladi. Kompilyator izolyatsiyani qurish bosqichida tekshiradi — aktorning mutable xususiyatiga murojaat faqat await orqali mumkin.

Xcode va dasturchi vositalari

Xcode — Apple-ning integratsiyalashgan ishlab chiqish muhiti (IDE), faqat macOS da mavjud. Kod muharriri, vizual dizayn uchun Interface Builder, qurilma simulyatori, profillash uchun Instruments va LLDB tuzatuvchisini o'z ichiga oladi. Xcode 15 makrolar bilan Swift 5.9 ni qo'llab-quvvatlaydi.

Interface Builder va Storyboards

Interface Builder XML tavsifining (XIB/Storyboard) avtomatik generatsiyasi bilan sudrab-tashlash usulida interfeys yaratishga imkon beradi. Storyboards ekran oqimlarini tavsiflaydi. 2023 yildan Apple vizual ishlab chiqish uchun asosiy vosita sifatida SwiftUI Preview ni tavsiya qiladi, garchi Interface Builder UIKit loyihalarida qolmoqda.

Nosozliklarni tuzatish va profillash vositalari

Xcode Instruments o'nlab shablonlarni o'z ichiga oladi: Time Profiler (CPU tahlili), Allocations (xotira), Leaks (oqishlar), Core Animation (FPS), Network va Energy Log. Metal Debugger GPU chaqiruvlari va shaderlarni tekshirishga imkon beradi. LLDB — Swift ifodalari va shartli to'xtash nuqtalari bilan konsol tuzatuvchisi.

iOS ishlab chiqishning asosiy freymvorklari

iOS SDK yuzlab freymvorklarni o'z ichiga oladi. Quyida har bir iOS dasturchisi kundalik ishlaydigan asosiy freymvorklar keltirilgan.

FreymvorkVazifasi
UIKitInterfeys: UIView, UIViewController, animatsiyalar, imo-ishoralar
SwiftUIReaktiv yangilanish bilan deklarativ interfeys
FoundationAsosiy turlar: String, Data, URLSession, JSONEncoder
Core DataSQLite da lokal ma'lumotlarni saqlash uchun ORM
CloudKitiCloud bilan sinxronizatsiya va backendsiz server mantig'i
Core LocationGeolokatsiya: GPS, geofencing, iBeacon
MapKitApple xaritalarini ko'rsatish, annotatsiyalar, marshrutlar
AVFoundationAudio/video yozib olish va ijro etish
MetalPast darajadagi grafika va GPGPU hisoblashlar
Core MLQurilmada mashina o'rganishi on-device inference bilan
PushKit / UserNotificationsPush bildirishnomalari, VoIP, kontent yangilanishlari

Core Data: lokal ma'lumotlar bilan ishlash

Core Data — obyekt ma'lumot modelini boshqarish uchun freymvork. Obyektlarni UI ipi va fon kontekstlari o'rtasida saqlash, yuklash va sinxronlashtirishga imkon beradi. iOS 17 da Swift Macros qo'llab-quvvatlashi bilan Core Data ustidagi zamonaviy qoplama bo'lgan SwiftData qo'shilgan.

UIKit va SwiftUI: yondashuvlarni taqqoslash

iOS uchun ilova ishlab chiqishni boshlashda UIKit va SwiftUI o'rtasidagi tanlov asosiy arxitektura qaroridir. UIKit 2007 yildan beri mavjud va iOS ning barcha versiyalarini qo'llab-quvvatlaydi. SwiftUI 2019 yilda taqdim etilgan va iOS 13+ talab qiladi.

MezonUIKitSwiftUI
ParadigmaImperativ (MVC, MVVM)Deklarativ (State-driven)
Minimal iOSiOS 2.0+iOS 13.0+
DizaynKodda Auto Layout yoki Interface BuilderModifier chain, HStack/VStack/ZStack
MoslashtirishTo'liq (CALayer, drawRect)Modifikatorlar bilan cheklangan
UnumdorlikYuqori (qo'lda optimallashtirish)Avtomatik invalidatsiya
PreviewQo'llab-quvvatlamaydiReal vaqtda Xcode Preview
TestlashXCTest + Snapshot testlariXCTest + Preview testlari

Amalda, tijorat loyihalarining aksariyati gibrid yondashuvdan foydalanadi: yangi ekranlar va oddiy shakllar uchun SwiftUI, renderlashni aniq nazorat qilishni talab qiluvchi murakkab moslashtirilgan komponentlar uchun UIKit. Apple SwiftUI ga faol sarmoya kiritmoqda va 2028 yilga kelib u asosiy freymvorkga aylanishi kutilmoqda.

iOS ilovasining hayotiy sikli

Har bir iOS ilovasi UIApplication va AppDelegate tomonidan boshqariladigan besh holatdan o'tadi. SwiftUI da bu rolni @main atributi bilan App Protocol o'z zimmasiga oladi.

Ilova holatlari

Not running — ilova ishga tushirilmagan yoki tizim tomonidan to'xtatilgan. Inactive — ilova oldingi planda, lekin hodisalarni qabul qilmaydi (masalan, kiruvchi qo'ng'iroq paytida). Active — normal holat, ilova teginish hodisalarini qabul qiladi. Background — ilova yig'ishtirilgan, fon vazifalarini bajaradi. Suspended — ilova xotirada, lekin kodni bajarmaydi.

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("Ilova faollashdi")
            case .inactive:
                print("Ilova nofaol")
            case .background:
                print("Ilova fon rejimiga o'tdi")
            @unknown default:
                break
            }
        }
    }
}

Tizim xotira yetishmasligida ilovani fonda tugatishi mumkin. Dasturchi onDisappear yoki ScenePhase.background orqali holatni saqlab qo'yishi kerak, shunda foydalanuvchi ilovalar o'rtasida almashganda ma'lumotlarini yo'qotmaydi.

App Store: nashr qilish va talablar

App Store — iOS uchun yagona rasmiy ilovalar do'koni. Nashr qilish Apple Developer Program obunasini talab qiladi ($99/yil). Har bir ilova moderatsiyadan o'tadi — avtomatik (binar kodning statik tahlili) va qo'lda (interfeys va kontentni tekshirish).

Nashr qilish jarayoni

Dasturchi Xcode da arxiv yaratadi, Transporter yoki Xcode Organizer orqali App Store Connect ga yuklaydi. O'rtacha moderatsiya vaqti — 24–48 soat. App Review ko'rsatmalarga muvofiqlikni tekshiradi: ma'lumotlar xavfsizligi, unumdorlik, HIG dizayni, yashirin funksionallikning yo'qligi.

App Review talablari

Maxfiylik ga alohida e'tibor qaratiladi: barcha ma'lumot yig'ish turlari Privacy Manifest da e'lon qilinishi kerak. 2025 yildan Apple API dan foydalanish sabablarini ko'rsatishni talab qiladi (NSPrivacyAccessedAPITypes). Foydalanuvchi roziligisiz kuzatuvchilardan foydalanadigan ilovalar nashr etilmaydi.

TalabTavsif
Privacy ManifestYig'ilgan barcha ma'lumotlar va yig'ish maqsadlarining deklaratsiyasi
HIG ComplianceApple Human Interface Guidelines ga muvofiqlik
StabilityModeratsiya bosqichida buzilishlarning yo'qligi
Sandbox RulesFaqat ruxsat etilgan resurslarga kirish
iCloud EntitlementsiCloud Container ni to'g'ri konfiguratsiya qilish

Ko'p beriladigan savollar

iOS ishlab chiqish uchun qanday tillar ishlatiladi?

Asosiy til — Swift. Objective-C ham qo'llab-quvvatlanadi, lekin asosan eski loyihalarda ishlatiladi. Swift — Apple tomonidan 2014 yilda taqdim etilgan zamonaviy tur-xavfsiz til. 2020 yildan Apple Swift-ni yangi loyihalar uchun yagona til sifatida tavsiya qiladi.

Nimani tanlash kerak: UIKit yoki SwiftUI?

UIKit — maksimal moslashtirish bilan yetuk freymvork, murakkab interfeyslar uchun mos. SwiftUI — iOS 13+ uchun deklarativ freymvork, ishlab chiqishni 2–3 marta tezlashtiradi. Loyihalarning aksariyati UIViewRepresentable va UIHostingController orqali ikkala yondashuvdan foydalanadi.

App Store da nashr qilish qancha turadi?

Apple Developer Program yillik obunasi yakka tartibdagi dasturchilar uchun $99, tashkilotlar uchun $299 turadi. Obunasiz nashr qilish mumkin emas. App Store komissiyasi dasturchining yillik daromadiga qarab sotuvlarning 15–30% ni tashkil qiladi.

SwiftUI uchun minimal iOS versiyasi qaysi?

SwiftUI iOS 13 dan (2019) boshlab mavjud. Biroq, NavigationStack, Observable Macro va SwiftData ni o'z ichiga olgan barcha imkoniyatlardan foydalanish uchun iOS 17 va Xcode 15 talab qilinadi. Eski versiyalarni qo'llab-quvvatlash SwiftUI funksionalligini cheklaydi.

iOS da App Sandbox nima?

App Sandbox — ilovaning fayl tizimiga, boshqa ilovalarning ma'lumotlariga va tizim resurslariga kirishini cheklovchi xavfsizlik modeli. Har bir ilova izolyatsiya qilingan konteynerda ishlaydi. Kontaktlarga, fotosuratlarga, mikrofonga kirish tizim dialogi orqali aniq ruxsat talab qiladi.

Xulosa

  • iOS — XNU yadrosi, ilovalar uchun sandbox va App Store da majburiy moderatsiya bilan yopiq mobil OT
  • Swift — ARC, protokolga yo'naltirilgan dasturlash va async/await bilan iOS ishlab chiqish uchun zamonaviy til
  • iOS arxitekturasi to'rt darajani o'z ichiga oladi: Cocoa Touch, Media, Core Services, Core OS
  • Xcode — yagona ishlab chiqish muhiti, simulyator, Instruments va LLDB tuzatuvchisini o'z ichiga oladi
  • UIKit va SwiftUI — interfeysga ikki yondashuv: imperativ va deklarativ, ko'pincha birgalikda ishlatiladi
  • App Store Developer Program obunasi, Privacy Manifest va moderatsiyadan o'tishni talab qiladi
  • iOS xavfsizligi Secure Enclave, Sandbox va majburiy ma'lumotlarni shifrlash bilan ta'minlanadi

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing