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 Apps), iOS 14 (виџети на радној површини), iOS 17 (StandBy режим). Сваки велики издање доноси нове API-је и фрејмворкове.

Верзија iOSГодинаКључна иновација
iPhone OS 12007Прва верзија, без App Store-а
iOS 22008App Store, апликације трећих страна
iOS 42010Вишезадатност, FaceTime
iOS 72013Потпуни редизајн интерфејса
iOS 102016iMessage Apps, 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 — нискoнивоски API за рад са GPU, који обезбеђује високе перформансе графике у играма и апликацијама проширене стварности. Core Animation управља анимацијама на нивоу слојева са хардверским убрзањем.

Core Services — системске услуге

Core Services укључује Core Data, CloudKit, Core Location, HealthKit, Core Motion и Network. CFNetwork — нискoнивоски 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 својству актора могућ је само кроз await.

Xcode и алати за програмере

Xcode — интегрисано развојно окружење (IDE) од Apple-а, доступно искључиво на macOS-у. Укључује уређивач кода, Interface Builder за визуелни дизајн, симулатор уређаја, Instruments за профилисање и дебагер LLDB. Xcode 15 подржава Swift 5.9 са макроима.

Interface Builder и Storyboards

Interface Builder омогућава креирање интерфејса путем превуци-и-пусти са аутоматском генерацијом XML описа (XIB/Storyboard). Storyboards описују токове екрана. Од 2023. године Apple препоручује SwiftUI Preview као главни алат за визуелни развој, иако Interface Builder остаје у пројектима на UIKit-у.

Алати за отклањање грешака и профилисање

Xcode Instruments укључује десетине шаблона: Time Profiler (анализа CPU), Allocations (меморија), Leaks (цурeња), Core Animation (FPS), Network и Energy Log. Metal Debugger омогућава инспекцију GPU позива и shader-а. 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Нискoнивоска графика и GPGPU израчунавања
Core MLМашинско учење на уређају са on-device закључивањем
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 — нормално стање, апликација прима догађаје додира. 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 проверава усклађеност са смерницама: безбедност података, перформансе, 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. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође