Tüm Yazılar
KategoriiOS
Okuma Süresi
25 dk okuma
Yayın Tarihi
...
Kelime Sayısı
1.456kelime

Kahveni hazırla - bu içerikli bir makale!

iOS 18 ile gelen yeni API'ler, framework degisiklikleri, Control Center widget'lari, RCS destegi ve migration rehberi.

iOS 18 Yenilikleri: Gelistiriciler icin Tam Rehber

iOS 18, Apple'in tarihindeki en buyuk guncelleme olarak nitelendiriliyor. Gelistiriciler icin onlarca yeni API, framework guncellemesi ve platform degisikligi iceriyor. Bu rehberde iOS 18'in tum yeniliklerini gelistirici perspektifinden inceleyecegiz.


Icindekiler


1. Genel Bakis

iOS 18 Onemli Degisiklikler

Alan
Degisiklik
Etki
**Home Screen**
Serbest ikon yerlestirme
Launcher app'ler etkilenir
**Control Center**
3. parti widget destegi
Yeni gelir modeli
**Messages**
RCS destegi
Chat SDK'lari guncellenmeli
**Siri**
Apple Intelligence
SiriKit → App Intents gecisi
**Photos**
Yeni layout
Photo picker API'si guncellendi
**Mail**
Kategorilendirme
Email entegrasyonu
**Safari**
AI ozet
Web content extraction

2. SwiftUI Yenilikleri

Mesh Gradient

swift
1import SwiftUI
2 
3struct MeshGradientDemo: View {
4 var body: some View {
5 MeshGradient(
6 width: 3,
7 height: 3,
8 points: [
9 .init(0, 0), .init(0.5, 0), .init(1, 0),
10 .init(0, 0.5), .init(0.5, 0.5), .init(1, 0.5),
11 .init(0, 1), .init(0.5, 1), .init(1, 1)
12 ],
13 colors: [
14 .red, .orange, .yellow,
15 .green, .blue, .indigo,
16 .purple, .pink, .mint
17 ]
18 )
19 .frame(width: 300, height: 300)
20 .clipShape(RoundedRectangle(cornerRadius: 20))
21 }
22}

Yeni ScrollView Ozellikleri

swift
1struct ScrollViewDemo: View {
2 @State private var position = ScrollPosition(edge: .top)
3 
4 var body: some View {
5 ScrollView {
6 LazyVStack(spacing: 12) {
7 ForEach(0..<100) { index in
8 RoundedRectangle(cornerRadius: 12)
9 .fill(Color.blue.opacity(0.3))
10 .frame(height: 80)
11 .overlay(Text("Item \(index)"))
12 .id(index)
13 }
14 }
15 .padding()
16 }
17 .scrollPosition($position)
18 .onChange(of: position) { oldValue, newValue in
19 // Scroll pozisyonu degistiginde
20 print("Scroll position changed")
21 }
22 
23 // Programmatic scroll
24 Button("En Basa Git") {
25 position.scrollTo(edge: .top)
26 }
27 }
28}

Yeni Container API

swift
1// iOS 18 — Custom container
2struct CardContainer<Content: View>: View {
3 @ViewBuilder var content: Content
4 
5 var body: some View {
6 VStack(spacing: 12) {
7 ForEach(subviewOf: content) { subview in
8 subview
9 .padding()
10 .background(.regularMaterial)
11 .clipShape(RoundedRectangle(cornerRadius: 12))
12 .shadow(radius: 2)
13 }
14 }
15 }
16}
17 
18// Kullanim
19struct ContentView: View {
20 var body: some View {
21 CardContainer {
22 Text("Kart 1")
23 Text("Kart 2")
24 Text("Kart 3")
25 }
26 }
27}

3. Control Center Widget'lari

iOS 18'in en heyecan verici ozelliklerinden biri Control Center'a 3. parti widget ekleme destegi:

swift
1import WidgetKit
2import SwiftUI
3 
4struct QuickActionControl: ControlWidget {
5 static let kind = "com.app.quickaction"
6 
7 var body: some ControlWidgetConfiguration {
8 StaticControlConfiguration(kind: Self.kind) {
9 ControlWidgetToggle(
10 "Sessiz Mod",
11 isOn: SilentModeBinding(),
12 action: ToggleSilentIntent()
13 ) { isOn in
14 Label(
15 isOn ? "Sessiz" : "Normal",
16 systemImage: isOn ? "bell.slash" : "bell"
17 )
18 }
19 }
20 .displayName("Sessiz Mod")
21 .description("Bildirim sesini ac/kapat")
22 }
23}

4. App Intents Guncellemeleri

swift
1import AppIntents
2 
3// iOS 18 — Enhanced App Intent
4struct SendMessageIntent: AppIntent {
5 static var title: LocalizedStringResource = "Mesaj Gonder"
6 static var description = IntentDescription("Bir kisiye mesaj gonderir")
7 
8 @Parameter(title: "Alici")
9 var recipient: String
10 
11 @Parameter(title: "Mesaj")
12 var message: String
13 
14 static var parameterSummary: some ParameterSummary {
15 Summary("\(\.$recipient) kisisine \(\.$message) gonder")
16 }
17 
18 func perform() async throws -> some IntentResult & ProvidesDialog {
19 // Mesaj gonderme islemi
20 await MessageService.shared.send(message, to: recipient)
21 return .result(dialog: "Mesaj gonderildi!")
22 }
23}
24 
25// Spotlight ve Siri entegrasyonu
26struct AppShortcuts: AppShortcutsProvider {
27 static var appShortcuts: [AppShortcut] {
28 AppShortcut(
29 intent: SendMessageIntent(),
30 phrases: [
31 "\(.applicationName) ile mesaj gonder",
32 "\(.applicationName) mesaj at"
33 ],
34 shortTitle: "Mesaj Gonder",
35 systemImageName: "message"
36 )
37 }
38}

5. Privacy ve Security

Locked and Hidden Apps

swift
1// iOS 18'de uygulamanizi kilitlenebilir/gizlenebilir yapmak
2// otomatik olarak desteklenir. Ancak bazi durumlar ozel handling gerektirir:
3 
4class AppDelegate: UIResponder, UIApplicationDelegate {
5 func applicationDidBecomeActive(_ application: UIApplication) {
6 // Uygulama gizli moddan acildiginda
7 // sensitive verileri yeniden yukle
8 refreshSensitiveData()
9 }
10 
11 func applicationWillResignActive(_ application: UIApplication) {
12 // Gizli moda gecerken sensitive verileri temizle
13 clearSensitiveViews()
14 }
15}

Contact Access Kontrolu

swift
1import Contacts
2 
3// iOS 18 — Limited Contact Access
4func requestContactAccess() async {
5 let store = CNContactStore()
6 
7 do {
8 let authorized = try await store.requestAccess(for: .contacts)
9 if authorized {
10 // Tam erisim veya sinirli erisim olabilir
11 let status = CNContactStore.authorizationStatus(for: .contacts)
12 switch status {
13 case .authorized:
14 print("Tam erisim")
15 case .limited:
16 print("Sinirli erisim — sadece secilen kisiler")
17 // Kullaniciya sinirli erisimi goster
18 default:
19 break
20 }
21 }
22 } catch {
23 print("Erisim reddedildi: \(error)")
24 }
25}

6. Machine Learning Yenilikleri

Ozellik
Detay
Min. Cihaz
**Apple Intelligence**
On-device LLM
A17 Pro+
**Writing Tools**
Metin duzenleme API
A12+
**Image Playground**
Gorsel olusturma
A17 Pro+
**Genmoji**
Ozel emoji
A17 Pro+
**Smart Reply**
Otomatik yanit
A12+
swift
1// Writing Tools entegrasyonu
2import SwiftUI
3 
4struct WritingToolsDemo: View {
5 @State private var text = ""
6 
7 var body: some View {
8 TextEditor(text: $text)
9 .writingToolsBehavior(.automatic)
10 // Sistem otomatik olarak yeniden yazma,
11 // ozetleme, ton degistirme secenekleri sunar
12 }
13}

7. Migration Rehberi

Adim Adim iOS 18 Gecisi

  1. Xcode 16'ya guncelle — iOS 18 SDK gerekli
  2. Deprecation uyarilarini kontrol et — ozellikle NavigationView, UIAlertView
  3. App Intents'e gec — SiriKit shortcuts deprecated
  4. Privacy manifest'i guncelle — yeni required reason API'leri
  5. Control Center widget ekle — yeni etklesim alani
  6. Writing Tools uyumluluguunu test et — TextEditor/UITextView
  7. Contact access'i kontrol et — limited access destegi
  8. Mesh Gradient ve yeni SwiftUI API'lerini deneyin — gorsel iyilestirmeler icin MeshGradient, ScrollPosition ve custom container API'lerini mevcut ekranlariniza entegre edin
  9. Test suite'inizi guncelleyin — iOS 18'e ozgu davranislari kapsayan unit ve UI testleri ekleyin, ozellikle locked/hidden app state gecislerini test edin

Uyumluluk Matrisi

Ozellik
Min. iOS
Min. Cihaz
Control Center Widget
18.0
Tumu
MeshGradient
18.0
Tumu
Apple Intelligence
18.1
A17 Pro+
Writing Tools
18.0
A12+
Locked Apps
18.0
Tumu

ALTIN İPUCU

Bu yazının en değerli bilgisi

Bu ipucu, yazının en önemli çıkarımını içeriyor.

Easter Egg

Gizli bir bilgi buldun!

Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?

Okuyucu Ödülü

Tebrikler! Bu yaziyi sonuna kadar okudugun icin sana ozel bir hediyem var:

8. Sonuc

iOS 18, gelistiriciler icin devasa firsatlar sunuyor. Control Center widget'lari, Apple Intelligence entegrasyonu ve gelismis SwiftUI ozellikleri ile uygulamalarinizi bir ust seviyeye tasiyabilirsiniz. Erken adapte olmak, App Store'da rekabet avantaji saglayacaktir.


Sonuc ve Oneriler

iOS 18, Apple platformunda gectigimiz yillarin en kapsamli guncellemelerinden birini temsil ediyor. Control Center widget'lari ile kullanicilarin uygulamaniza sistem seviyesinde erisim saglamasi, kullanici bagliligini onemli olcude arttiracaktir. App Intents framework'u ile Siri entegrasyonu ve Shortcuts destegi sunmak, uygulamanizin Apple ekosistemindeki konumunu guclendiren stratejik bir yatirimdir.

Apple Intelligence entegrasyonu planlarken, on-device ve cloud-based islem ayrrimini iyi anlamak gerekir. Kullanici gizliligine duyarli islemler icin on-device modelleri tercih edin; daha karmasik senaryolarda Private Cloud Compute altyapisini kullanin. SwiftUI'daki yeni mesh gradient, custom container ve gelismis animasyon API'leri ile gorsel acidan etkileyici arayuzler olusturabilirsiniz.

Gecis stratejinizi planlarken iOS 17 uyumluluugunu koruyarak kademeli bir yaklasim benimseyin. Oncelikle Control Center widget'lari ve App Intents gibi kullanici deneyimini dogrudan etkileyen ozellikleri implement edin. Ardindan Apple Intelligence ve gelismis SwiftUI ozelliklerini ekleyin. Bu kademeli yaklasim hem mevcut kullanici tabaninizi korur hem de iOS 18 kullaniciilarina yeni degerler sunar. Erken adapte olan gelistiriciler App Store'da goruntululuk ve indirme sayilarinda belirgin artis elde edecektir.

Etiketler

#iOS 18#Apple#WWDC#New Features#Migration#Swift
Muhittin Çamdalı

Muhittin Çamdalı

Senior iOS Developer

12+ yıllık deneyime sahip iOS Developer. Swift, SwiftUI ve modern iOS mimarileri konusunda uzman. Apple platformlarında performanslı ve kullanıcı dostu uygulamalar geliştiriyorum.

iOS Geliştirme Haberleri

Haftalık Swift tips, SwiftUI tricks ve iOS best practices. Spam yok, sadece değerli içerik.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.

Paylaş

Bunu da begenebilirsiniz