iOS ekosistemi neye benziyor?
iOS, küresel cihaz sayısında Android'in arkasında olsa da ARPU (kullanıcı başına gelir) ve kullanıcı bağlılığı açısından önde. AIOR'da kurumsal müşterilerin (özellikle finans, sağlık, B2B SaaS) iOS önceliği veya iOS-only başlangıç tercih ettiğini sıkça görüyoruz. Native iOS geliştirme Swift + SwiftUI ile yapılıyor; AIOR projelerinde 2026'da UIKit ile başlatılan yeni proje yok.SwiftUI — UI'ın yeni standardı
SwiftUI 2019'da çıktı, başlangıçta yetersizdi (iOS 13/14 sürümlerinde production-grade değildi). 2022 sonrası iOS 16+ ile birlikte SwiftUI olgunlaştı; 2026'da AIOR'ın yeni iOS projelerinin %95'i SwiftUI temelinde. UIKit hâlâ var ve gerekli durumlarda kullanılıyor (kompleks koleksiyon görünümleri, custom animasyonlar) ama varsayılan değil.SwiftUI'nin avantajları:
- Declarative syntax, state-driven UI.
- Live preview Xcode'da geliştirme hızını belirgin artırıyor.
- Animation built-in, basit.
- Cross-platform — iOS + iPadOS + macOS + watchOS + tvOS aynı kodla.
Ödünleşmeler:
- iOS 15 ve altı hedefleniyorsa SwiftUI özelliklerinin bir kısmı kullanılamaz.
- Performance tuning'i UIKit'ten farklı düşünmeyi gerektiriyor.
- Custom layout'lar için UIKit'e geri dönmek hâlâ gerekebilir.
Swift Concurrency — async/await ve actor'lar
Swift 5.5 (2021) ile gelen async/await + actor sistemi, GCD ve completion handler'lara dayalı eski asenkron kalıpları belirgin sadeleştirdi. AIOR projelerinde standart kullanım:
Code:
actor UserService {
func fetch(_ id: String) async throws -> User {
return try await api.get("/users/\(id)")
}
}
`@Observable` macro (Swift 5.9+) ile state management daha sade — `@Published` + ObservableObject yerine daha az boilerplate.
State management mimarileri
iOS dünyasında state management için tek bir baskın çözüm yok. AIOR'da tercih ettiğimiz yaklaşımlar:- MVVM + Combine — orta projeler, AIOR'ın varsayılan tercihi.
- TCA (The Composable Architecture, Point-Free) — büyük projeler, deterministik state, test edilebilirlik. Test ağırlıklı ekipler tercih ediyor.
- Redux-style (ReSwift, ReactorKit) — Redux deneyimi olan ekipler için.
- SwiftUI native (@State, @Binding, @Environment, @Observable) — küçük projeler.
Bağımlılık yönetimi — SPM
Swift Package Manager (SPM) 2026'da varsayılan. CocoaPods hâlâ var ama yeni projelerde tercih edilmiyor. Carthage neredeyse tamamen terk edildi. AIOR projelerinde SPM standart; private package'lar için git submodule veya private repo + SPM kombinasyonu kullanıyoruz.Veritabanı ve persistence
- SwiftData — iOS 17+ için Apple'ın yeni Core Data muadili, SwiftUI ile uyumlu. AIOR yeni projelerde tercih.
- Core Data — eski projelerde hâlâ kullanılıyor, geçiş kararı dikkat gerektirir.
- Realm — daha hafif alternatif, multiplatform desteği iyi.
- GRDB — SQLite üzerinde Swift wrapper, kontrol istenilen yerlerde.
Networking
URLSession yerleşik, çoğu senaryo için yeterli. Async/await ile temiz kullanım. AIOR projelerinde repository pattern + URLSession + Codable standart. Daha kompleks ihtiyaçlar için Alamofire hâlâ tercih ediliyor ama yeni projelerde gerek azaldı.Test stratejisi
Swift Testing framework (Swift 6.0, 2024) XCTest'in modern halefi. AIOR'da yeni projelerde Swift Testing tercih ediliyor — `@Test` macro ve `#expect` makrosu ile daha temiz syntax. XCTest mevcut projelerde devam ediyor. UI testler için XCUITest. E2E için Maestro (cross-platform).App Store ve dağıtım
App Store Review süreci 2-3 gün arası, bazen daha uzun. AIOR'da TestFlight ile internal/external beta dağıtımı standart. Phased release ile production rollout — ilk gün %1, sonra %5, %10, %50, %100. Crash ve negative feedback erken yakalanır.Privacy ve App Tracking Transparency
iOS 14.5'ten beri ATT (App Tracking Transparency) zorunlu. Privacy Manifest 2024'ten itibaren zorunlu — uygulamanın hangi verileri topladığı declare edilmeli. AIOR olarak müşteri uygulamalarında bu beyanı tüm gerekli framework'ler için (analytics, ad SDK) hazırlıyoruz.Sonuç
iOS 2026'da SwiftUI + Swift Concurrency + SwiftData kombinasyonu ile modern, üretken bir geliştirme platformu. AIOR olarak kurumsal müşterilerimiz için iOS önceliği gerektiren projelerde native Swift tercih ediyoruz; cross-platform daha düşük maliyetli olsa da iOS-özel deneyim, performans ve App Store dünyasındaki güven native ile daha güçlü. Sizin iOS projenizde SwiftUI tam adapte mi, yoksa UIKit hibrit kodbaz mı taşıyorsunuz?What does the iOS ecosystem look like?
While iOS sits behind Android in global device count, it leads in ARPU (average revenue per user) and user loyalty. At AIOR we often see enterprise customers (especially finance, health, B2B SaaS) prioritise iOS or start iOS-only. Native iOS development is done with Swift + SwiftUI; no new AIOR project in 2026 starts with UIKit.SwiftUI — the new UI standard
SwiftUI shipped in 2019 but was inadequate initially (not production-grade on iOS 13/14). It matured post-2022 with iOS 16+; in 2026, 95% of new AIOR iOS projects are SwiftUI-based. UIKit still exists and is used when needed (complex collection views, custom animations) but it's not the default.SwiftUI advantages:
- Declarative syntax, state-driven UI.
- Live preview in Xcode meaningfully accelerates development.
- Animation is built-in and simple.
- Cross-platform — iOS + iPadOS + macOS + watchOS + tvOS from one codebase.
Trade-offs:
- Targeting iOS 15 or below blocks some SwiftUI features.
- Performance tuning requires a different mental model than UIKit.
- Going back to UIKit for custom layouts is sometimes still necessary.
Swift Concurrency — async/await and actors
The async/await + actor system in Swift 5.5 (2021) substantially simplified the older asynchronous patterns based on GCD and completion handlers. Standard usage on AIOR projects:
Code:
actor UserService {
func fetch(_ id: String) async throws -> User {
return try await api.get("/users/\(id)")
}
}
The `@Observable` macro (Swift 5.9+) makes state management cleaner — less boilerplate than `@Published` + ObservableObject.
State management architectures
There's no single dominant solution for state management in the iOS world. Approaches we prefer at AIOR:- MVVM + Combine — mid-sized projects, AIOR's default.
- TCA (The Composable Architecture, Point-Free) — large projects, deterministic state, testability. Teams that focus on testing pick it.
- Redux-style (ReSwift, ReactorKit) — for teams with Redux experience.
- SwiftUI native (@State, @Binding, @Environment, @Observable) — small projects.
Dependency management — SPM
Swift Package Manager (SPM) is the default in 2026. CocoaPods still exists but isn't preferred on new projects. Carthage is almost fully retired. SPM is standard on AIOR projects; for private packages we use git submodules or private repos + SPM.Database and persistence
- SwiftData — Apple's new Core Data successor for iOS 17+, SwiftUI-compatible. AIOR's preference on new projects.
- Core Data — still used on legacy projects; migration decision needs care.
- Realm — lighter alternative, good multiplatform support.
- GRDB — Swift wrapper on SQLite, used when control is desired.