iOS: що це, архітектура системи та мова Swift

Автор: IT Sectr Опубліковано: 2026-02-07 Час читання: 10 хв

iOS — мобільна операційна система Apple, що забезпечує роботу iPhone та iPod touch. Розробка під iOS ведеться мовою Swift у середовищі Xcode. Розглянемо архітектуру платформи, ключові фреймворки та процес публікації в App Store.

Головне

  • iOS — монолітна ОС з XNU-ядром, рівнем ядра Darwin та користувацьким рівнем Cocoa Touch
  • Swift — основна мова розробки з автоматичним керуванням пам'яттю ARC та протокол-орієнтованим програмуванням
  • UIKit та SwiftUI — два фреймворки для побудови інтерфейсу: імперативний та декларативний
  • App Store — єдиний офіційний канал поширення з обов'язковою модерацією
  • App Sandbox — модель безпеки, що ізолює кожен додаток в окремому контейнері

Що таке iOS?

iOS — мобільна операційна система компанії Apple, вперше випущена в 2007 році разом з першим iPhone. Система побудована на мікроядрі XNU, гібридному ядрі, що поєднує компоненти Mach та FreeBSD. На відміну від Android, iOS є закритою платформою: встановлення додатків можливе лише через App Store, а вихідний код системи недоступний.

Apple контролює як апаратне, так і програмне забезпечення, що забезпечує високий рівень оптимізації. За даними StatCounter (2026), частка iOS на ринку мобільних ОС становить близько 28% у глобальному масштабі та перевищує 50% у США та Японії.

Система використовує модель пісочниці (App Sandbox) — кожен додаток працює в ізольованому середовищі та не має доступу до даних інших додатків без явного дозволу користувача через системні діалоги.

Історія версій iOS

Перша версія iPhone OS 1.0 не підтримувала сторонні додатки. App Store з'явився в iOS 2.0 у 2008 році. Ключові віхи: iOS 4 (багатозадачність), iOS 7 (плоский дизайн), iOS 10 (iMessage додатки), iOS 14 (віджети на робочому столі), iOS 17 (режим StandBy). Кожен великий реліз приносить нові API та фреймворки.

Версія iOSРікКлючове нововведення
iPhone OS 12007Перша версія, без App Store
iOS 22008App Store, сторонні додатки
iOS 42010Багатозадачність, FaceTime
iOS 72013Повний редизайн інтерфейсу
iOS 102016iMessage додатки, SiriKit
iOS 142020Віджети, App Library, Picture in Picture
iOS 172023StandBy, NameDrop, Live Voicemail

Архітектура iOS: чотири рівні системи

Архітектура iOS складається з чотирьох абстрактних рівнів, кожен з яких надає API для вищестоящого рівня. Нижні рівні — ядро та системні служби, верхні — користувацькі фреймворки.

Cocoa Touch — верхній рівень

Cocoa Touch — шар фреймворків для побудови користувацького інтерфейсу. Містить UIKit, SwiftUI, Foundation, MapKit, NotificationCenter та інші API, з якими безпосередньо працює розробник. UIKit надає UIViewController, UIView, UIWindow та всі візуальні компоненти.

Media — графіка та звук

Рівень Media включає Core Graphics, Core Animation, Core Image, AVFoundation та Metal. Metal — низькорівневий API для роботи з GPU, що забезпечує високу продуктивність графіки в іграх та додатках доповненої реальності. Core Animation керує анімаціями на рівні шарів з апаратним прискоренням.

Core Services — системні служби

Core Services включає Core Data, CloudKit, Core Location, HealthKit, Core Motion та Network. CFNetwork — низькорівневий C-інтерфейс для роботи з мережевими протоколами. Foundation — об'єктно-орієнтована обгортка над Core Foundation з класами NSString, NSArray, NSDictionary.

Core OS — ядро та безпека

Нижній рівень включає XNU-ядро, файлову систему APFS, криптографічні модулі (CommonCrypto, Security.framework), керування живленням та драйвери пристроїв. На цьому рівні працює Secure Enclave — співпроцесор для зберігання біометричних даних та ключів шифрування.

objective-c
// Перевірка цілісності Secure Enclave через Security framework
#import <LocalAuthentication/LocalAuthentication.h>

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

if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
                          error:&error]) {
    NSLog(@"Secure Enclave доступний для біометрії");
} else {
    NSLog(@"Secure Enclave недоступний: %@", error.localizedDescription);
}

Swift — основна мова розробки під iOS

Swift — мова програмування, представлена Apple у 2014 році як заміна Objective-C. Розроблена Крісом Латтнером в Apple. Swift поєднує синтаксис сучасних мов (Rust, Kotlin, C#) з продуктивністю на рівні C. За даними TIOBE (2026), Swift входить до топ-15 мов програмування.

Ключові можливості Swift

Swift використовує Automatic Reference Counting (ARC) — автоматичний підрахунок посилань для керування пам'яттю без збирача сміття. Протокол-орієнтоване програмування (POP) дозволяє розширювати типи через protocol extension. Optionals забезпечують типобезпечну роботу з nil, а pattern matching спрощує обробку розгалужень.

swift
import UIKit

/// Протокол для сервісу завантаження даних
protocol DataServiceProtocol {
    associatedtype T
    func fetch(completion: @escaping (Result<[T], Error>) -> Void)
}

/// Реалізація сервісу для завантаження користувачів
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
}

У прикладі показано реалізацію сервісу завантаження даних з використанням Swift Concurrency (async/await), протоколу з associatedtype та Codable для декодування JSON. ARC автоматично керує пам'яттю, а weak self запобігає циклам сильних посилань у замиканні.

Swift Concurrency: async/await та Actors

Починаючи з iOS 13, Swift підтримує вбудовану асинхронність через async/await та Actors — потокобезпечні типи, що захищають стан від data races. DispatchQueue для багатопоточності поступово витісняється структурами async/await та Task.

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 гарантує, що доступ до кешу відбувається в одному потоці, виключаючи стани гонки. Компілятор перевіряє ізоляцію на етапі збірки — звернення до mutable-властивості actor можливе лише через await.

Xcode та інструменти розробника

Xcode — інтегроване середовище розробки (IDE) від Apple, доступне виключно на macOS. Включає редактор коду, Interface Builder для візуального верстання, симулятор пристроїв, Instruments для профілювання та дебагер LLDB. Xcode 15 підтримує Swift 5.9 з макросами.

Interface Builder та Storyboards

Interface Builder дозволяє створювати інтерфейс через drag-and-drop з автоматичною генерацією XML-опису (XIB/Storyboard). Storyboards описують потоки екранів. З 2023 року Apple рекомендує SwiftUI Preview як основний інструмент для візуальної розробки, хоча Interface Builder залишається в проектах на UIKit.

Інструменти налагодження та профілювання

Xcode Instruments включає десятки шаблонів: Time Profiler (аналіз CPU), Allocations (пам'ять), Leaks (витоки), Core Animation (FPS), Network та Energy Log. Metal Debugger дозволяє інспектувати виклики GPU та шейдери. LLDB — консольний дебагер з підтримкою Swift-виразів та точок зупину з умовами.

Основні фреймворки iOS-розробки

iOS SDK включає сотні фреймворків. Нижче наведені ключові, з якими працює кожен iOS-розробник щодня.

ФреймворкПризначення
UIKitІнтерфейс: UIView, UIViewController, анімації, жести
SwiftUIДекларативний інтерфейс з реактивним оновленням
FoundationБазові типи: String, Data, URLSession, JSONEncoder
Core DataORM для локального зберігання даних в SQLite
CloudKitСинхронізація з iCloud та серверна логіка без бекенду
Core LocationГеолокація: GPS, geofencing, iBeacon
MapKitВідображення карт Apple, анотації, маршрути
AVFoundationАудіо/відео захват та відтворення
MetalНизькорівнева графіка та GPGPU-обчислення
Core MLМашинне навчання на пристрої з on-device inference
PushKit / UserNotificationsPush-сповіщення, VoIP, оновлення контенту

Core Data: робота з локальними даними

Core Data — фреймворк для керування об'єктною моделлю даних. Дозволяє зберігати, завантажувати та синхронізувати об'єкти між потоком UI та фоновими контекстами. В iOS 17 додано SwiftData — сучасна обгортка над Core Data з підтримкою Swift Macros.

UIKit та SwiftUI: порівняння підходів

Вибір між UIKit та SwiftUI — ключове архітектурне рішення при старті розробки під iOS. UIKit існує з 2007 року і підтримує всі версії iOS. SwiftUI представлений у 2019 році і потребує iOS 13+.

КритерійUIKitSwiftUI
ПарадигмаІмперативна (MVC, MVVM)Декларативна (State-driven)
Мінімальна iOSiOS 2.0+iOS 13.0+
ВерстанняAuto Layout в коді або Interface BuilderModifier chain, HStack/VStack/ZStack
КастомізаціяПовна (CALayer, drawRect)Обмежена модифікаторами
ПродуктивністьВисока (ручна оптимізація)Автоматична інвалідація
PreviewНе підтримуєXcode Preview в реальному часі
ТестуванняXCTest + Snapshot тестиXCTest + Preview тести

На практиці більшість комерційних проектів використовують гібридний підхід: SwiftUI для нових екранів та простих форм, UIKit — для складних кастомних компонентів, що потребують тонкого контролю рендерингу. Apple активно інвестує в SwiftUI, і очікується, що до 2028 року він стане основним фреймворком.

Життєвий цикл iOS-додатку

Кожен iOS-додаток проходить через п'ять станів, керованих UIApplication та AppDelegate. В SwiftUI цю роль бере на себе App Protocol з @main-атрибутом.

Стани додатку

Not running — додаток не запущено або завершено системою. Inactive — додаток на передньому плані, але не отримує події (наприклад, при вхідному дзвінку). Active — нормальний стан, додаток отримує touch-події. Background — додаток згорнуто, виконує фонові завдання. Suspended — додаток у пам'яті, але не виконує код.

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("Додаток став активним")
            case .inactive:
                print("Додаток неактивний")
            case .background:
                print("Додаток пішов у фон")
            @unknown default:
                break
            }
        }
    }
}

Система може завершити додаток у фоні при нестачі пам'яті. Розробник повинен зберігати стан у onDisappear або через ScenePhase.background, щоб користувач не втратив дані при перемиканні між додатками.

App Store: публікація та вимоги

App Store — єдиний офіційний магазин додатків для iOS. Публікація потребує підписки Apple Developer Program ($99/рік). Кожен додаток проходить модерацію — автоматичну (статичний аналіз бінарного коду) та ручну (перевірка інтерфейсу та контенту).

Процес публікації

Розробник збирає архів в Xcode, завантажує через Transporter або Xcode Organizer в App Store Connect. Середній час модерації — 24–48 годин. App Review перевіряє відповідність guideline: безпека даних, продуктивність, дизайн HIG, відсутність прихованого функціоналу.

Вимоги App Review

Особлива увага приділяється приватності: всі типи збору даних мають бути декларовані в Privacy Manifest. З 2025 року Apple вимагає вказувати причини використання API (NSPrivacyAccessedAPITypes). Додаткам, що використовують трекери без згоди користувача, відмовляють у публікації.

ВимогаОпис
Privacy ManifestДекларація всіх зібраних даних та цілей збору
HIG ComplianceВідповідність Human Interface Guidelines Apple
StabilityВідсутність крашів на етапі модерації
Sandbox RulesДоступ лише до дозволених ресурсів
iCloud EntitlementsПравильне налаштування iCloud Container

Часті запитання

Які мови використовуються для iOS розробки?

Основна мова — Swift. Objective-C також підтримується, але використовується переважно в легасі-проектах. Swift — сучасна типобезпечна мова, представлена Apple у 2014 році. З 2020 року Apple рекомендує Swift як єдину мову для нових проектів.

Що вибрати: UIKit чи SwiftUI?

UIKit — зрілий фреймворк з максимальною кастомізацією, підходить для складних інтерфейсів. SwiftUI — декларативний фреймворк для iOS 13+, що прискорює розробку в 2–3 рази. Більшість проектів використовують обидва підходи через UIViewRepresentable та UIHostingController.

Скільки коштує публікація в App Store?

Річна підписка Apple Developer Program коштує $99 для індивідуальних розробників та $299 для організацій. Без підписки публікація неможлива. Комісія App Store становить 15–30% від продажів залежно від річного доходу розробника.

Яка мінімальна версія iOS для SwiftUI?

SwiftUI доступний з iOS 13 (2019). Однак для використання всіх можливостей, включаючи NavigationStack, Observable Macro та SwiftData, потрібні iOS 17 та Xcode 15. Підтримка старих версій обмежує функціонал SwiftUI.

Що таке App Sandbox в iOS?

App Sandbox — модель безпеки, що обмежує доступ додатку до файлової системи, даних інших додатків та системних ресурсів. Кожен додаток працює в ізольованому контейнері. Доступ до контактів, фото, мікрофону потребує явного дозволу через системний діалог.

Підсумки

  • iOS — закрита мобільна ОС з XNU-ядром, пісочницею для додатків та обов'язковою модерацією в App Store
  • Swift — сучасна мова для iOS-розробки з ARC, протокол-орієнтованим програмуванням та async/await
  • Архітектура iOS включає чотири рівні: Cocoa Touch, Media, Core Services, Core OS
  • Xcode — єдине середовище розробки, включає симулятор, Instruments та дебагер LLDB
  • UIKit та SwiftUI — два підходи до інтерфейсу: імперативний та декларативний, частіше використовуються разом
  • App Store потребує підписки Developer Program, Privacy Manifest та проходження модерації
  • Безпека iOS забезпечується Secure Enclave, Sandbox та обов'язковим шифруванням даних

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також