Firebase ile Quiz / Bilgi Yarışması Uygulaması Geliştirme
Mobil uygulama geliştirirken hem öğretici hem de eğlenceli projeler üretmek istiyorsan, quiz (bilgi yarışması) uygulamaları bunun için harika bir tercihtir. Bu yazıda, Firebase + Android (Kotlin) kullanarak bir quiz uygulamasının nasıl geliştirileceğini, mimari mantığıyla birlikte adım adım anlatıyorum.
Quiz Uygulaması Genel Mantığı
Bir bilgi yarışması uygulamasında temel olarak şu bileşenler bulunur:
Sorular (question)
Şıklar (options)
Doğru cevap
Puanlama sistemi
Kullanıcı ilerlemesi
Firebase bu yapıyı dinamik, güncellenebilir ve ölçeklenebilir hale getirir.
1️⃣ Firebase Projesini Hazırlama
Öncelikle Firebase Console üzerinden:
Firestore Database aktif edilir
Test aşamasında test mode kullanılabilir
Authentication (isteğe bağlı) açılır
Quiz uygulamaları için Cloud Firestore önerilir.
2️⃣ Firestore Veri Modeli (Önerilen Yapı)
quizzes (collection)
└── quizId (document)
├── title: "Genel Kültür"
├── category: "Eğitim"
└── questions (subcollection)
└── questionId (document)
├── question: "Türkiye'nin başkenti neresidir?"
├── options: ["İstanbul", "Ankara", "İzmir", "Bursa"]
└── answer: "Ankara"
Bu yapı sayesinde:
Kategori bazlı quizler
İstediğin zaman soru ekleme
Uygulamayı güncellemeden içerik değiştirme
mümkün olur.
3️⃣ Kotlin Data Class Tanımları
data class Question(
val question: String = "",
val options: List<String> = emptyList(),
val answer: String = ""
)
Firestore’dan veri çekerken bu yapı büyük kolaylık sağlar.
4️⃣ Firestore’dan Soruları Çekme
val db = FirebaseFirestore.getInstance()
db.collection("quizzes")
.document(quizId)
.collection("questions")
.get()
.addOnSuccessListener { result ->
val questions = result.toObjects(Question::class.java)
}
Sorular dinamik olarak Firebase’ten gelir.
5️⃣ Soru Gösterme Mantığı
Genel akış:
Soruları listeye al
Index ile sırayla göster
Kullanıcı seçim yapar
Doğru / yanlış kontrol edilir
Puan güncellenir
if (selectedAnswer == question.answer) {
score += 10
}
6️⃣ Puanlama ve Sonuç Ekranı
Her doğru cevap: +10 puan
Yanlış cevap: 0 puan
Toplam soru sayısına göre sonuç
Son ekranda:
Toplam puan
Doğru / yanlış sayısı
Tekrar oyna butonu
7️⃣ Kullanıcıya Özel İlerleme (Opsiyonel)
Firebase Authentication kullanarak:
users
└── uid
├── name
├── highScore
└── lastQuiz
En yüksek skor
Son oynanan quiz
Kullanıcıya özel istatistikler
saklanabilir.
8️⃣ Sık Yapılan Hatalar
❌ Tüm soruları tek dokümana koymak
❌ Büyük veri çekimleri
❌ Offline senaryoyu düşünmemek
❌ Firestore rules yazmamak
Her soru ayrı doküman olmalıdır.
ZaTH Developer İpucu 💡
Quiz uygulamalarında Firestore + RecyclerView + ViewModel üçlüsü çok stabil çalışır.
Basit başla, sonra özellik ekle:
Zamanlayıcı
Joker hakları
Kategori seçimi
Günlük quiz
Sonuç
Firebase ile quiz uygulaması geliştirmek:
Öğretici
Ölçeklenebilir
Gelir modeli (AdMob) eklenebilir
bir projedir.
ZaTH Developer olarak; eğitici, sade ve sürdürülebilir uygulamalar geliştirmeyi önemsiyorum. Bu blogda gerçek projeler üzerinden anlatmaya devam edeceğim 🚀
Hiç yorum yok:
Yorum Gönder