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 — 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.
İ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 1 | 2007 | İlk versiya, App Store olmadan |
| iOS 2 | 2008 | App Store, üçüncü tərəf tətbiqləri |
| iOS 4 | 2010 | Çox tapşırıqlılıq, FaceTime |
| iOS 7 | 2013 | İnterfeysin tam yenidən dizaynı |
| iOS 10 | 2016 | iMessage Apps, SiriKit |
| iOS 14 | 2020 | Vidjetlər, App Library, Picture in Picture |
| iOS 17 | 2023 | StandBy, NameDrop, Live Voicemail |
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 — 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 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 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.
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.
// 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 — 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 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.
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.
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.
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 — 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 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.
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 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 |
| SwiftUI | Reaktiv yeniləmə ilə deklarativ interfeys |
| Foundation | Əsas tiplər: String, Data, URLSession, JSONEncoder |
| Core Data | SQLite-də lokal məlumat saxlama üçün ORM |
| CloudKit | iCloud ilə sinxronizasiya və backend olmadan server məntiqi |
| Core Location | Geolokasiya: GPS, geofencing, iBeacon |
| MapKit | Apple xəritələrinin göstərilməsi, annotasiyalar, marşrutlar |
| AVFoundation | Audio/video çəkiliş və oxutma |
| Metal | Aşağısəviyyəli qrafika və GPGPU hesablamaları |
| Core ML | Cihazda maşın öyrənməsi on-device inference ilə |
| PushKit / UserNotifications | Push bildirişləri, VoIP, məzmun yeniləmələri |
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.
iOS üçün tətbiq inkişafına başlayarkən UIKit və SwiftUI 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.
| Kriteriya | UIKit | SwiftUI |
|---|---|---|
| Paradiqma | İmperativ (MVC, MVVM) | Deklarativ (State-driven) |
| Minimal iOS | iOS 2.0+ | iOS 13.0+ |
| Dizayn | Kodda Auto Layout və ya Interface Builder | Modifier chain, HStack/VStack/ZStack |
| Fərdiləşdirmə | Tam (CALayer, drawRect) | Modifikatorlarla məhdud |
| Performans | Yüksək (əl ilə optimallaşdırma) | Avtomatik invalidasiya |
| Preview | Dəstəkləmir | Real vaxtda Xcode Preview |
| Test etmə | XCTest + Snapshot testləri | XCTest + 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.
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.
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.
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 — 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ı).
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ı.
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əb | Təsvir |
|---|---|
| Privacy Manifest | Toplanan bütün məlumatların və toplama məqsədlərinin bəyannaməsi |
| HIG Compliance | Apple Human Interface Guidelines-ə uyğunluq |
| Stability | Moderasiya mərhələsində çökmələrin olmaması |
| Sandbox Rules | Yalnız icazə verilən resurslara giriş |
| iCloud Entitlements | iCloud Container-in düzgün konfiqurasiyası |
Tez-tez verilən suallar
Ə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.
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.
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 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.
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ə
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