Rich Notification: nedir, medya içeriği ve bildirim oluşturma

Yazar: IT Sectr Yayınlanma: 2026-03-20 Okuma süresi: 8 dk

Rich Notification, kullanıcı deneyimini iyileştirmek için medya ekleri, etkileşimli düğmeler ve özel arayüzler içeren gelişmiş bir iOS push bildirimi biçimidir. Standart metin bildirimlerinin aksine, Rich Notification, banner veya kilit ekranında doğrudan resim, video ve ses gösterebilir. Apple Developer Documentation, 2026'ya göre, UNNotificationAttachment tek bir bildirimde 10 dosyaya kadar destekler ve tüm cihazlarda optimum görüntüleme için bunları otomatik olarak ölçeklendirir.

Önemli Noktalar

  • Medya Ekleri — Rich Notification, UNNotificationAttachment aracılığıyla resimleri (JPEG, PNG, GIF), videoyu (MP4, MOV 30 saniyeye kadar) ve sesi (MP3, AAC, WAV) destekler.
  • Etkileşim — düğmeler ve metin girişi, bildirim kategorilerine bağlı UNNotificationAction ve UNTextInputNotificationAction aracılığıyla eklenir.
  • Service Extension — medya yüklemek için zorunlu bir bileşen: yük URL'sinden eki indirir ve içeriğe ekler.
  • Content Extension — özel UI, animasyonlar ve jest işleme ile tamamen özel bir bildirim arayüzü oluşturur.
  • Sınırlar — maksimum ek boyutu 10 MB, uzantı bellek sınırı 50 MB, işlem süresi 30 saniyeye kadar.

Rich Notification Nedir

Rich Notification, yalnızca metin değil aynı zamanda medya ekleri, etkileşimli öğeler ve özelleştirilmiş bir arayüz içeren bir iOS push bildirimidir. “Rich” terimi, bildirime resim, video, ses, eylem düğmeleri ve metin girişi ekleme yeteneğini yansıtarak basit bir uyarıyı tam teşekküllü etkileşimli bir öğeye dönüştürür.

iOS'ta Bildirimlerin Evrimi

Apple, Rich Notification desteğini iOS 10'da UserNotifications çerçevesiyle birlikte tanıttı. Bundan önce, push bildirimleri yalnızca metin, ses ve rozet içerebiliyordu. iOS 10, içeriği değiştirme ve özel arayüzler oluşturma olanağı sunan UNNotificationServiceExtension ve UNNotificationContentExtension'i tanıttı. Sonraki sürümler, Content Extension'da SwiftUI desteği, animasyonlu GIF'ler ve gelişmiş medya ölçeklendirme ekledi.

Standart Bildirimlere Göre Avantajlar

Rich Notification, kullanıcı katılımını önemli ölçüde artırır. Apple araştırmaları, resim içeren bildirimlerin yalnızca metin içerenlere kıyasla %30–40 daha fazla etkileşim aldığını göstermektedir. Bir ürün resmi, video önizlemesi veya hızlı yanıt düğmesi, kullanıcının uygulamayı açmadan doğrudan bildirimden karar vermesini sağlar. Bu, hedef eyleme giden yolu kısaltır ve kullanıcı deneyimini iyileştirir.

Medya Eki Türleri ve Biçimleri

UNNotificationAttachment üç medya kategorisini destekler: resimler, video ve ses. Her türün kendi biçim, boyut ve süre sınırlamaları vardır. Sistem, performans optimizasyonu için resimleri bildirim boyutuna uyacak şekilde otomatik olarak ölçeklendirir ve video süresini 30 saniye ile sınırlar.

Medya TürüDesteklenen BiçimlerMaksimum Boyut
ResimlerJPEG, PNG, GIF, TIFFDosya başına 10 MB
VideoMPEG, MP4, MOV10 MB, 30 saniyeye kadar
SesMP3, AAC, WAV, CAF10 MB

Resimler ve Animasyonlu GIF'ler

Resimler, kompakt ve genişletilmiş bildirim görünümlerinde görüntülenmek üzere sistem tarafından otomatik olarak kırpılır ve ölçeklendirilir. Animasyonlu GIF'ler iOS 12'den itibaren desteklenir ve bildirim görüntülenirken otomatik olarak oynatılır. Önerilen resim boyutu 1024x1024 pikseldir ve büyük ekranlı iPad dahil tüm cihazlarda keskin görüntüleme sağlar.

Video ve Ses Ekleri

Rich Notification'daki video varsayılan olarak sessiz oynatılır — kullanıcı oynatıcı düğmesiyle sesi etkinleştirebilir. Maksimum video süresi 30 saniyedir ve sonrasında oynatma durur. Ses ekleri, sesli mesajlar veya ses önizlemeleri için kullanılabilir ve genişletilmiş görünümde bildirime dokunulduğunda oynatılır.

Etkileşimli Düğmeler ve Eylemler

Etkileşimli eylemler, kullanıcının uygulamayı açmadan doğrudan bildirimden işlem yapmasına olanak tanır. Eylemler, uygulama başlatıldığında UNNotificationCategory ve UNNotificationAction aracılığıyla kaydedilir. Her eylem arka planda (uygulamayı açmadan) veya ön planda (işlemi tamamlamak için uygulamayı açar) olabilir.

UNNotificationAction ve UNTextInputNotificationAction

UNNotificationAction, bir başlık ve requiresAuthentication (Face ID/Touch ID gerektirir) veya destructive (kırmızı renkle vurgulanır) gibi isteğe bağlı değiştiriciler içeren bir düğmeyi temsil eder. UNTextInputNotificationAction, bir metin giriş alanı ekleyerek bu yeteneği genişletir — mesajlara veya yorumlara hızlı yanıtlar için idealdir. Eylemler, bildirime uzun basıldığında veya aşağı kaydırıldığında görüntülenir.

Kategorileri ve Eylemleri Kaydetme

Bildirim kategorileri, içerik türünü mevcut eylem kümesiyle ilişkilendirir. Kayıt işlemi, uygulama başlatıldığında AppDelegate'te UNUserNotificationCenter.current().setNotificationCategories aracılığıyla gerçekleştirilir. Kategori, sunucuda JSON yükünün category alanında belirtilir ve sistem, bildirime otomatik olarak ilgili eylem kümesini uygular.

Eylem Dokunuşlarını İşleme

Kullanıcı bir düğmeye dokunduğunda veya metin gönderdiğinde, sistem didReceive response yöntemiyle UNUserNotificationCenterDelegate'i çağırır. UNNotificationResponse, eylem tanımlayıcısını ve girilen metni (UNTextInputNotificationAction için) içerir. Bu bilgilere dayanarak uygulama ilgili iş mantığını yürütür: mesaj gönderir, eylemi onaylar veya belirli bir ekranı açar.

Swift'te Rich Notification Uygulaması

Rich Notification oluşturma döngüsünün tamamını inceleyelim: AppDelegate'te kategorileri kaydetmekten Service Extension'da işlemeye ve görüntülemeye kadar. AppDelegate, düğmelerle kategoriyi kaydeder, sunucu bir resim URL'siyle bildirim gönderir, Service Extension medyayı indirir ve Content Extension, düğmelerle özel bir arayüz görüntüler.

swift
// AppDelegate — kategorilerin ve eylemlerin kaydı
func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
    [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {

    let replyAction = UNTextInputNotificationAction(
        identifier: "reply",
        title: "Yanıtla",
        options: [.authenticationRequired])

    let likeAction = UNNotificationAction(
        identifier: "like",
        title: "Beğen",
        options: [])

    let category = UNNotificationCategory(
        identifier: "social_post",
        actions: [replyAction, likeAction],
        intentIdentifiers: [],
        options: [])

    UNUserNotificationCenter.current()
        .setNotificationCategories([category])
    return true
}

Resim Yüklemek için Service Extension

“social_post” kategorisi ve özel bir alanda resim URL'si içeren bir push bildirimi alındıktan sonra Service Extension etkinleştirilir. Uzantı resmi indirir, benzersiz bir tanımlayıcıyla UNNotificationAttachment oluşturur ve içeriğe ekler. İndirilen dosyanın boyutunu kontrol etmek önemlidir — 10 MB'ı aşarsa ek oluşturulmaz ve sistem medya olmadan bildirimi gösterir.

swift
class NotificationService: UNNotificationServiceExtension {

    override func didReceive(
        _ request: UNNotificationRequest,
        withContentHandler contentHandler:
        @escaping (UNNotificationContent) -> Void
    ) {
        let content = (request.content.mutableCopy()
            as! UNMutableNotificationContent)
        guard let urlString = content.userInfo["media-url"]
            as? String,
            let url = URL(string: urlString)
        else { contentHandler(request.content); return }

        URLSession.shared.downloadTask(with: url) {
            location, _, _ in
            guard let location = location else {
                contentHandler(content); return }
            let attachment = try! UNNotificationAttachment(
                identifier: "media", url: location,
                options: [UNNotificationAttachmentOptionsTypeHintKey:
                    "jpg"])
            content.attachments = [attachment]
            contentHandler(content)
        }.resume()
    }
}

Rich Notification Test Etme

Sunucu olmadan Rich Notification'ı test etmek için iOS simülatörünü kullanın ve xcrun simctl push ile terminal üzerinden push gönderin. Yükte, Service Extension'ı etkinleştirmek için mutable-content: 1 ve eylemleri görüntülemek için kategoriyi belirttiğinizden emin olun. Komut, seçilen simülatöre doğrudan bir JSON dosyasından push göndererek sunucu altyapısı kurmadan hızlı yineleme yapılmasını sağlar.

Content Extension ve Özel Arayüz

UNNotificationContentExtension, standart bildirim arayüzünü tamamen özel bir UIKit veya SwiftUI görünümüyle değiştirmenize olanak tanır. Uzantı, kullanıcı bildirimi genişlettiğinde (force touch veya aşağı kaydırma) etkinleşir ve düğmeler, kaydırıcılar, animasyonlar ve diğer UI bileşenlerini içerebilir. Arayüz boyutu, Auto Layout kullanarak içeriğe uyum sağlar.

Content Extension'da Storyboard ve SwiftUI

Content Extension, UIViewController'dan miras alan bir görünüm denetleyicisiyle storyboard tabanlıdır. SwiftUI View, iOS 16'dan itibaren UIHostingController aracılığıyla entegre edilir ve modern arayüz oluşturma yaklaşımlarına olanak tanır. iOS 14–15 ile geriye dönük uyumluluk için xib dosyalarıyla UIKit kullanılması önerilir. Arayüz, UNNotificationContent aracılığıyla Service Extension'dan değiştirilmiş içeriği alır.

Kullanıcı Eylemlerini İşleme

Content Extension, didReceive response yöntemiyle UNNotificationContentExtension protokolünü uygular. UNNotificationResponse, basılan düğme veya girilen metin hakkında bilgi içerir. Uzantı, bildirimi kapatmadan arayüzü güncelleyebilir veya kapatmak için tamamlama işleyicisini çağırabilir. Bu, bildirimde doğrudan görsel geri bildirim içeren bir “beğen” gibi hızlı etkileşim senaryoları oluşturmayı sağlar.

Tasarım Önerileri

Apple, Content Extension'ı kısa ve işlevsel tutmayı, aşırı öğelerden kaçınmayı önerir. Genişletilmiş bildirimin maksimum yüksekliği yaklaşık 400 puntodur ve sonrasında içerik kaydırılır. Diğer bildirimlerle tutarlılık için sistem yazı tiplerini ve boşlukları kullanın. Arayüzün hem iPhone hem de iPad'de doğru görüntülendiğinden emin olmak için farklı ekran boyutlarında test edin.

Sıkça Sorulan Sorular

Rich Notification'da maksimum resim boyutu nedir?

Tek bir medya ekinin maksimum boyutu 10 MB'tır. Sınır aşılırsa UNNotificationAttachment oluşturulmaz ve bildirim medya olmadan görüntülenir. Service Extension'da hızlı yükleme için resimlerin 1–3 MB'a optimize edilmesi önerilir.

Rich Notification tüm iPhone modellerinde çalışır mı?

Rich Notification, iOS 10 ve üzeri tüm cihazlarda desteklenir, iPhone 5s ve daha yenileri dahil. Özel UI ile Content Extension, iOS 12'den itibaren kullanılabilir. Content Extension'da SwiftUI — iOS 16'dan itibaren. Eski sürümlerde bildirim standart biçimde görüntülenir.

Rich Notification'da GIF kullanılabilir mi?

Evet, animasyonlu GIF'ler iOS 12'den itibaren desteklenir. GIF, normal bir resim olarak UNNotificationAttachment aracılığıyla yüklenir ve bildirim görüntülenirken otomatik olarak oynatılır. GIF boyutu, diğer biçimlerle aynı şekilde 10 MB ile sınırlıdır.

Bir bildirime kaç düğme eklenebilir?

Bir kategori kaydedilirken bildirim başına maksimum 4 eylem. Daha fazla belirtilirse, sistem ilk 4'ü görüntüler ve gerisini yok sayar. Optimum kullanıcı deneyimi için 2–3 düğme kullanılması önerilir — çok fazla seçenek arayüzü aşırı yükler.

Rich Notification göndermek için sunucu gerekli mi?

Evet, sunucu, özel bir alanda medya dosyası URL'si ve mutable-content: 1 bayrağı içeren bir JSON yüküyle APNS (Apple Push Notification servisi) aracılığıyla push göndermelidir. Sunucu ayrıca Content Extension ve eylemleri etkinleştirmek için kategoriyi belirtir.

Özet

  • Rich Notification — medya ekleri, etkileşimli düğmeler ve özel UI ile kullanıcı katılımını artıran bir iOS push bildirimi.
  • Desteklenen medya — JPEG/PNG/GIF resimler, MP4/MOV video (30 saniyeye kadar), MP3/AAC/WAV ses (dosya başına 10 MB sınırı).
  • Service Extension, yük URL'sinden medyayı indirir ve UNNotificationAttachment'ı bildirim içeriğine ekler.
  • Etkileşimli eylemler — kategori başına 4 düğmeye kadar, UNTextInputNotificationAction aracılığıyla metin girişi dahil.
  • Content Extension, standart arayüzü isteğe bağlı öğelerle özel bir UIKit/SwiftUI görünümüyle değiştirir.
  • Content Extension, dokunuşları işlemek ve UI'yi gerçek zamanlı güncellemek için didReceive yöntemiyle UNNotificationContentExtension protokolünü uygular.
  • Rich Notification tüm seviyelerde yapılandırma gerektirir: sunucu (APNS), Service Extension (medya yükleme) ve AppDelegate (kategori kaydı).

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun