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 — 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.
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 versiyasi | Yil | Asosiy yangilik |
|---|---|---|
| iPhone OS 1 | 2007 | Birinchi versiya, App Storesiz |
| iOS 2 | 2008 | App Store, uchinchi tomon ilovalari |
| iOS 4 | 2010 | Ko'p vazifalilik, FaceTime |
| iOS 7 | 2013 | Interfeysning to'liq qayta dizayni |
| iOS 10 | 2016 | iMessage Apps, SiriKit |
| iOS 14 | 2020 | Vidjetlar, App Library, Picture in Picture |
| iOS 17 | 2023 | StandBy, NameDrop, Live Voicemail |
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 — 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 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 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.
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.
// 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 — 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 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.
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.
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.
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 — 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 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.
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 SDK yuzlab freymvorklarni o'z ichiga oladi. Quyida har bir iOS dasturchisi kundalik ishlaydigan asosiy freymvorklar keltirilgan.
| Freymvork | Vazifasi |
|---|---|
| UIKit | Interfeys: UIView, UIViewController, animatsiyalar, imo-ishoralar |
| SwiftUI | Reaktiv yangilanish bilan deklarativ interfeys |
| Foundation | Asosiy turlar: String, Data, URLSession, JSONEncoder |
| Core Data | SQLite da lokal ma'lumotlarni saqlash uchun ORM |
| CloudKit | iCloud bilan sinxronizatsiya va backendsiz server mantig'i |
| Core Location | Geolokatsiya: GPS, geofencing, iBeacon |
| MapKit | Apple xaritalarini ko'rsatish, annotatsiyalar, marshrutlar |
| AVFoundation | Audio/video yozib olish va ijro etish |
| Metal | Past darajadagi grafika va GPGPU hisoblashlar |
| Core ML | Qurilmada mashina o'rganishi on-device inference bilan |
| PushKit / UserNotifications | Push bildirishnomalari, VoIP, kontent yangilanishlari |
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.
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.
| Mezon | UIKit | SwiftUI |
|---|---|---|
| Paradigma | Imperativ (MVC, MVVM) | Deklarativ (State-driven) |
| Minimal iOS | iOS 2.0+ | iOS 13.0+ |
| Dizayn | Kodda Auto Layout yoki Interface Builder | Modifier chain, HStack/VStack/ZStack |
| Moslashtirish | To'liq (CALayer, drawRect) | Modifikatorlar bilan cheklangan |
| Unumdorlik | Yuqori (qo'lda optimallashtirish) | Avtomatik invalidatsiya |
| Preview | Qo'llab-quvvatlamaydi | Real vaqtda Xcode Preview |
| Testlash | XCTest + Snapshot testlari | XCTest + 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.
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.
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.
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 — 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).
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.
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.
| Talab | Tavsif |
|---|---|
| Privacy Manifest | Yig'ilgan barcha ma'lumotlar va yig'ish maqsadlarining deklaratsiyasi |
| HIG Compliance | Apple Human Interface Guidelines ga muvofiqlik |
| Stability | Moderatsiya bosqichida buzilishlarning yo'qligi |
| Sandbox Rules | Faqat ruxsat etilgan resurslarga kirish |
| iCloud Entitlements | iCloud Container ni to'g'ri konfiguratsiya qilish |
Ko'p beriladigan savollar
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.
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.
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 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.
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
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.