📱 Android Uygulama — Tech Stack
🤖 Temel Teknolojiler
🟣
Kotlin
JVM Target 17
Birincil programlama dili
🤖
Android SDK
minSdk 29 · targetSdk 34
Android 10+ (API 29+)
🎨
Material Design 3
material:1.11.0
UI bileşenleri, Material You
⚡
Kotlin Coroutines
1.7.3
Asenkron programlama
💉
Hilt (Dagger)
2.50
Dependency Injection
🗄️
Room + SQLCipher
2.6.1 · 4.5.4
Şifreli yerel veritabanı
🌐
Retrofit + OkHttp
2.9.0 · 4.12.0
HTTP istemcisi
🧭
Navigation Component
2.7.7
Fragment navigasyonu
⏱️
WorkManager
2.9.0
Arka plan sync
🔥
Firebase BOM
32.7.0
Analytics + Crashlytics + Firestore
💳
Google Play Billing
6.1.0
In-App Purchase
🏗️ Uygulama Mimarisi
📐 MVVM + Clean Architecture (Katmanlı)
UI Katmanı
Fragments
Activities
ViewBinding
RecyclerView
SplashScreen
Material3
↕
ViewModel
LiveData
StateFlow
Lifecycle-aware
Hilt inject
↕
Repository
SpamRepository
ReportRepository
SettingsRepository
Coroutines
↕
Data Katmanı
Room (SQLCipher)
DataStore Prefs
Retrofit API
Firestore
Gson
↕
System Service
CallScreeningService
WorkManager
BillingClient
SHA-256 Hash
📦 Tam Bağımlılık Listesi
🔩 build.gradle.kts — dependencies
| Kütüphane | Grup | Sürüm | Amaç |
core-ktx | AndroidX | 1.12.0 | Kotlin uzantıları |
appcompat | AndroidX | 1.6.1 | Geriye uyumluluk |
activity-ktx | AndroidX | 1.8.2 | Activity Kotlin uzantıları |
material | Google | 1.11.0 | Material Design 3 / UI |
lifecycle-viewmodel-ktx | AndroidX Lifecycle | 2.7.0 | ViewModel, LiveData |
navigation-fragment-ktx | AndroidX Nav | 2.7.7 | Fragment navigasyonu |
room-runtime | AndroidX Room | 2.6.1 | Yerel SQLite veritabanı |
android-database-sqlcipher | Zetetic | 4.5.4 | Veritabanı şifreleme (AES) |
datastore-preferences | AndroidX | 1.0.0 | Kullanıcı tercihleri |
kotlinx-coroutines-android | JetBrains | 1.7.3 | Asenkron programlama |
hilt-android | Google Dagger | 2.50 | Dependency Injection |
retrofit | Square | 2.9.0 | HTTP istemcisi |
okhttp | Square | 4.12.0 | HTTP engine |
gson | Google | 2.10.1 | JSON serialization |
work-runtime-ktx | AndroidX Work | 2.9.0 | Arka plan iş yönetimi |
billing-ktx | Google Play | 6.1.0 | In-App Purchase |
firebase-bom | Google Firebase | 32.7.0 | Firebase BOM (sürüm yönetimi) |
firebase-analytics-ktx | Firebase | BOM | Kullanıcı analitikleri |
firebase-crashlytics-ktx | Firebase | BOM | Çökme raporlama |
firebase-firestore-ktx | Firebase | BOM | NoSQL bulut veritabanı |
core-splashscreen | AndroidX | 1.0.1 | Splash Screen API |
constraintlayout | AndroidX | 2.1.4 | Gelişmiş layout |
recyclerview | AndroidX | 1.3.2 | Liste görünümü |
swiperefreshlayout | AndroidX | 1.1.0 | Çek-yenile |
🌐 Web Sitesi — Tech Stack
💻 Promosyon Sitesi (spam-kalkani-tr.web.app)
🏗️
HTML5 + CSS3
Saf (framework yok)
Custom design sistemi, CSS variables
✨
Vanilla JavaScript
ES2020+ (Modular)
npm/build adımı yok, saf JS
🔥
Firebase JS SDK
v10.8.0 (Modular)
Firestore, Auth, Hosting
🔐
Web Crypto API
Native browser API
SHA-256 hash (number checker)
👁️
IntersectionObserver
Native browser API
Scroll animasyonları, counter
🌍
i18n (TR/EN)
Custom JS
data-i18n attribute tabanlı
☁️ Altyapı & Servisler
🔥 Firebase Hosting
PlanSpark (Ücretsiz)
URLspam-kalkani-tr.web.app
CDNGoogle Global CDN
SSLOtomatik HTTPS
🗃️ Firestore (NoSQL)
Koleksiyonlar3 adet
spam_reportsSpam hash'leri
app_statsSayaçlar
devicesCihaz kayıtları
📊 Firebase Analytics
PlatformAndroid
Custom events7 adet
Retention28 gün
BigQueryBağlı değil
💥 Firebase Crashlytics
Durum✅ Aktif
Debug buildDevre dışı
Release buildAktif
Crash rate%100 free
🔐 Firebase Auth
ProviderGoogle Sign-In
KullanımRapor erişimi
TokenJWT (otomatik)
🏪 Google Play Billing
SDKbilling-ktx 6.1.0
Pro₺79 tek seferlik
Pro+₺149/yıl abonelik
DurumTest aşaması
🔐 Güvenlik & Gizlilik
🛡️ Güvenlik Önlemleri
🔒
SHA-256 Hash + Salt
Tüm numara raporlamaları salt|number formatında SHA-256 ile hashlenir. Orijinal numara asla sunucuya iletilmez.
🗄️
SQLCipher — Şifreli Yerel Veritabanı
Room veritabanı SQLCipher 4.5.4 ile AES-256 şifrelenir. Cihaz ele geçirilse bile veriler okunamaz.
📵
Cihaz-üstü İşleme
Gelen aramaların denetimi tamamen yerel veritabanı üzerinde yapılır. Arama kontrolü için dışa veri gönderilmez.
🔥
Firestore Security Rules
get / list izinleri ayrıştırıldı. Koleksiyon tarama yalnızca admin. Bot/crawler koruması aktif.
🔑
ProGuard (Release)
Release build'de kod küçültme (isMinifyEnabled=true) ve kaynak küçültme (isShrinkResources=true) aktif.
🌐
CallScreeningService — Minimal İzin
Uygulama yalnızca CallScreeningService iznini kullanır. Rehber, SMS veya konum iznine erişim yoktur.
⚠️
Debug Salt Açık Kaynaklı
Debug build'de HASH_SALT="debug_spam_kalkani_salt_v1" açık görünür. Release build'de local.properties / CI ortam değişkeni kullanılmalı.
🔧 Build Konfigürasyonu
🐛 Debug Build
isDebuggable | true |
applicationId | com.spamkalkani.app.debug |
versionName | 1.0.0-debug |
API_BASE_URL | api-staging… |
Crashlytics | Devre dışı |
ProGuard | Devre dışı |
🚀 Release Build
isMinifyEnabled | true |
isShrinkResources | true |
applicationId | com.spamkalkani.app |
API_BASE_URL | api.spamkalkani.com |
Crashlytics | Aktif |
Signing | Keystore (CI) |
🔍 Web SEO Durumu
📡 Teknik SEO
✅
<title> — Türkçe karakterli, #1 kaldırıldı"Spam Kalkanı — Türkiye Odaklı Çağrı Engelleyici"
✅
Open Graph + Twitter Card meta tagog:title, og:description, og:image, twitter:card
✅
JSON-LD Structured DataSoftwareApplication + FAQPage schema — arama motoru zengin snippet
✅
Canonical URLhttps://spamkalkani.com
⚠️
og:image dosyası yokimg/og-image.png henüz oluşturulmadı (1200×630 px gerekli)
⚠️
sitemap.xml yokFirebase Hosting'e sitemap.xml eklenmeli