0Pricing
Android Academy · Ders

Anlık Bildirimler

Firebase Cloud Messaging üzerinden anlık bildirimler gönderin. FCM'yi kurun, bildirim kanalları oluşturun, eylemlere sahip bildirimler hazırlayın ve ön plan ile arka plan teslimatını yönetin.

Anlık Bildirimler, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 6 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 6 dersten oluşur.

Anlık Bildirimler Nedir

Anlık bildirimler, uygulama ön planda olmasa bile sunucunuzun kullanıcılara mesaj göndermesini sağlar. Yaygın kullanım alanları:

  • Yeni mesaj uyarıları
  • Sipariş durumu güncellemeleri
  • Son dakika haberleri
  • Anımsatıcılar ve kampanyalar

Android'de Firebase Bulut Mesajlaşma (FCM), standart anlık bildirim iletim hizmetidir.

FCM'ye Genel Bakış

Firebase Bulut Mesajlaşma (FCM) akışı:

  1. Uygulama ilk açılışta FCM'ye kaydolur → bir cihaz belirteci alır
  2. Uygulama belirteci sunucunuza gönderir
  3. Anlık bildirim göndermek istediğinizde sunucunuz FCM'ye bir mesaj gönderir
  4. FCM mesajı cihaza iletir

FCM ücretsiz ve güvenilirdir; uygulama sonlandırılmış olsa bile çalışır.

Projeye Firebase Ekleme

Firebase ekleme adımları:

  1. Firebase Console'a gidin → Proje ekle → Android uygulaması ekle
  2. Uygulamanızı paket adıyla kaydedin
  3. google-services.json dosyasını indirin ve app/ klasörüne yerleştirin
  4. Eklentileri ve bağımlılıkları ekleyin
// project/build.gradle:
buildscript {
    dependencies { classpath 'com.google.gms:google-services:4.4.1' }
}

// app/build.gradle:
plugins { id 'com.google.gms.google-services' }

dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.7.4')
    implementation 'com.google.firebase:firebase-messaging-ktx'
}

FCM İzni (Android 13+)

Android 13'ten (API 33) itibaren POST_NOTIFICATIONS iznini, tehlikeli bir izin gibi çalışma zamanında istemeniz gerekir:

<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

// In Activity (Android 13+):
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    requestPermissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS)
}

FirebaseMessagingService

Gelen FCM mesajlarını ve belirteç yenilemelerini işleyen bir hizmet oluşturun:

class MyFirebaseService : FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        // Send token to your backend to enable push delivery
        sendTokenToServer(token)
    }

    override fun onMessageReceived(message: RemoteMessage) {
        val title = message.notification?.title ?: "New Message"
        val body  = message.notification?.body  ?: ""
        showNotification(title, body)
    }
}

Hizmeti Manifest'e Kaydetme

Hizmeti AndroidManifest.xml içinde bildirin:

<service
    android:name=".MyFirebaseService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

Bildirim Kanalları (Android 8+)

Android 8'den (Oreo) itibaren bildirimler bir kanala atanmalıdır. Kullanıcılar her kanal için sesi, titreşimi ve önem düzeyini denetleyebilir:

fun createNotificationChannel(context: Context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val channel = NotificationChannel(
            "messages_channel",           // channel ID
            "Messages",                   // user-visible name
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "Incoming message notifications"
            enableVibration(true)
        }
        val manager = context.getSystemService(NotificationManager::class.java)
        manager.createNotificationChannel(channel)
    }
}

Bildirim Oluşturma ve Gösterme

Android sürümleri arasında uyumluluk sağlamak için NotificationCompat.Builder kullanın:

fun showNotification(context: Context, title: String, body: String) {
    val intent = Intent(context, MainActivity::class.java)
    val pendingIntent = PendingIntent.getActivity(
        context, 0, intent,
        PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
    )

    val notification = NotificationCompat.Builder(context, "messages_channel")
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle(title)
        .setContentText(body)
        .setPriority(NotificationCompat.PRIORITY_HIGH)
        .setAutoCancel(true)             // dismiss on tap
        .setContentIntent(pendingIntent) // open app on tap
        .build()

    NotificationManagerCompat.from(context)
        .notify(System.currentTimeMillis().toInt(), notification)
}

İşlem Düğmeli Bildirim

Kullanıcıların uygulamayı açmadan işlem yapabilmesi için bildirimlere işlem düğmeleri ekleyin:

val replyIntent = Intent(context, ReplyReceiver::class.java)
val replyPending = PendingIntent.getBroadcast(
    context, 1, replyIntent,
    PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

val notification = NotificationCompat.Builder(context, "messages_channel")
    .setSmallIcon(R.drawable.ic_notification)
    .setContentTitle("New message from Alice")
    .setContentText("Hey, are you coming?")
    .addAction(R.drawable.ic_reply, "Reply", replyPending)
    .addAction(R.drawable.ic_dismiss, "Dismiss", null)
    .build()

Ön Plan ve Arka Plan İşleme

FCM, uygulamanın durumuna bağlı olarak farklı davranır:

  • Uygulama ön planda — onMessageReceived() çağrılır; bildirimi kendiniz oluşturup gösterirsiniz
  • Uygulama arka planda veya sonlandırılmış — FCM, notification yükündeki bildirimi otomatik olarak gösterir; onMessageReceived çağrılmaz

Ek verileri data yüküne koyun; böylece bunları onMessageReceived içinde her zaman alabilirsiniz.

FCM Belirteci Alma

Sunucunuza göndermek üzere geçerli FCM belirtecini alın:

FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w("FCM", "Fetching token failed", task.exception)
        return@addOnCompleteListener
    }
    val token = task.result
    Log.d("FCM", "Token: $token")
    // Send token to your server
    sendTokenToServer(token)
}

Hızlı Kontrol

Uygulamanız arka plandayken FCM, 'notification' yükü içeren bir mesaj iletirse ne olur?

Özet: Anlık Bildirimler

Android'de FCM ile anlık bildirimler:

  • Firebase'i, google-services.json dosyasını ve firebase-messaging-ktx öğesini ekleyin
  • Android 13 ve sonraki sürümlerde POST_NOTIFICATIONS iznini isteyin
  • FirebaseMessagingService oluşturun → onNewToken + onMessageReceived
  • Android 8 ve sonraki sürümler için bir NotificationChannel oluşturun
  • NotificationCompat.Builder ile bildirimler oluşturun
  • onMessageReceived içinde her zaman alabilmek için data yükünü kullanın

Sırada: WorkManager ile arka plan işlerini zamanlamak var.

Sıkça Sorulan Sorular

“Anlık Bildirimler” dersi ücretsiz mi?

Evet — “Anlık Bildirimler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 6 dersten oluşur.

“Anlık Bildirimler” dersinde ne öğreneceğim?

Firebase Cloud Messaging üzerinden anlık bildirimler gönderin. FCM'yi kurun, bildirim kanalları oluşturun, eylemlere sahip bildirimler hazırlayın ve ön plan ile arka plan teslimatını yönetin. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Android Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 6 dersinin 4. dersidir.

“Anlık Bildirimler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Retrofit ve REST API'leri
  2. Coil ile Görüntü Yükleme
  3. Hata Yönetimi ve Kullanıcı Deneyimi
  4. Anlık Bildirimler
  5. WorkManager ve Arka Plan Görevleri
  6. Play Store'da Yayınlama
← Android Academy Sayfasına Dön