2026'da Android'de Room TypeConverters: şemanı bozmadan enum, tarih ve liste saklamak
Android'de Room TypeConverters için pratik bir rehber — enum'lar, Instant/LocalDate ve listeler — ve bir converter'ı sessiz bir veri bozulması hatasına dönüştüren hatalar.
Kotlin, Room ve Compose için R8 ve ProGuard: yalnızca release'te olan çökme
Bir Room + Compose Android uygulaması debug'da neden kusursuz çalışıp üretimde neden çöküyor ve bunu bir kullanıcı bulmadan önce yakalayan spesifik R8/ProGuard keep kuralları.
Android In-App Review API: sıkıcı olmadan puan istemek
Google'ın In-App Review API'sine pratik bir rehber — gerçekte nasıl çalıştığı, ne zaman tetiklenmesi gerektiği ve alışılmış 'bizi puanlayın' popup'ının Play Store puanınızı sessizce nasıl zedelediği.
Android uygulama kısayolları ve Hızlı Ayarlar Karosu: uygulamayı açmadan su kaydetmek
Android'in dinamik ShortcutManager API'sine ve TileService'e pratik bir rehber — tek dokunuşlu bir eylemin uygulamayı tamamen atlamasını nasıl sağlarsınız, çoğu uygulamayı çuvallatan tuzaklarla birlikte.
Android'de 2026'da ön plan servis türleri: özelliğinize gerçekten uyanı seçmek
Android'in ön plan servis türü kısıtlamalarına pratik bir rehber — dataSync, mediaPlayback, specialUse, shortService — ve öldürülmeden ya da reddedilmeden doğru olanı nasıl seçeceğiniz.
Jetpack Compose'da StateFlow ve SharedFlow: replay bug'ı olmadan UI state modellemek
Bir Compose ViewModel'inde StateFlow'u ne zaman, SharedFlow'u ne zaman kullanmalısınız — ve ikisini karıştırınca ortaya çıkan tek seferlik olay bug'ı.
2026'da Room veritabanı index'leri: gerçekten yavaş olan sorguyu bulmak ve düzeltmek
Android'de Room/SQLite veritabanını index'lemeye pratik bir rehber — EXPLAIN QUERY PLAN okumak, tahmin etmeden @Index eklemek ve bir index'i sessizce etkisiz kılan hatalar.
Room'un @Relation'ı: Android'de N+1 sorgu olmadan bire-çok veri sorgulamak
Room'un @Relation ek açıklamasına pratik bir rehber — kategoriler ve girişler gibi bire-çok veriyi N+1 sorgu ya da elle join olmadan modellemek.
Jetpack Compose'da Tip Güvenli Navigasyon: Route'lar String Değil, Veridir
String tabanlı Compose Navigation route'larını serializable Kotlin nesneleriyle nasıl değiştirdiğim — tip güvenli argümanlar, iç içe graph'lar ve bir refactor'dan sağ çıkan deep link'ler.
Android 16 Live Updates: Mintly'nin odak zamanlayıcısını kilit ekranına taşımak
Android 16'nın ilerleme odaklı bildirimlerine pratik bir rehber — ProgressStyle segmentleri, yükseltilmiş devam eden bildirimler ve bunların çalışan bir Pomodoro zamanlayıcısına kattıkları.
2026'da Android bildirim kanalları: kullanıcıların susturmayacağı önem düzeyleri tasarlamak
Android bildirim kanalları için pratik bir rehber — önem düzeyleri, kanal grupları, ayarların oluşturulduktan sonra neden donduğu ve kullanıcı güvenini kaybetmeden nasıl göç edileceği.
Room ile Paging 3: 2026'da Android'de büyüyen bir işlem listesini akıcı tutmak
Room tabanlı bir işlem listesini Jetpack Paging 3 ile sayfalayarak yılların verisinin Compose'da akıcı kalmasını sağlamak — RemoteMediator yok, ağ yok, sadece doğru yapılmış yerel bir veritabanı.
Android 16 KB sayfa boyutu geçişi: gerçekte ne bozulur, APK'nı nasıl kontrol edersin
Google artık Android uygulamalarının 16 KB bellek sayfalarını desteklemesini istiyor. Pratikte bunun anlamı, neden native kütüphanelerin kırıldığı ve uygulamanın güvenli olduğunu nasıl doğrulayacağın.
2026'da Android'de yapılandırılmış eşzamanlılık: scope'lar, iptal ve önlediği sızıntılar
Android'de Kotlin yapılandırılmış eşzamanlılığına pratik bir rehber — viewModelScope'a karşı lifecycleScope, iptalin neden yayıldığı ve sessizce önlediği coroutine sızıntıları.
Jetpack Compose'da recomposition: gerçekte neyin tetiklediği ve tahmin etmeyi bırakışım
Jetpack Compose recomposition'a 2026 için pratik bir rehber — tip kararlılığı, kararsız lambda'lar, LazyColumn anahtarları ve derleyicinin kendi metrik raporunu okumak.
Room'da tam metin arama: 2026'da yerel öncelikli bir Android uygulamasına anında arama eklemek
Room'un FTS4 desteğine pratik bir rehber — sanal bir arama tablosu kurmak, onu tetikleyicilerle senkron tutmak ve FTS5'in neden elle bir migration gerektirdiği.
Room veritabanını 2026'da şifrelemek: SQLCipher, Keystore ve veri kaybetmeden geçiş
Bir Room/SQLite veritabanını Android'de dinlenme halindeyken SQLCipher ile şifrelemek için pratik bir rehber — Keystore üzerinden anahtar yönetimi, tek seferlik geçiş ve gerçek performans maliyeti.
2026'da Android'de local-first veriyi yedeklemek: SAF export, Auto Backup ve güvenebileceğiniz bir geri yükleme akışı
Local-first Android uygulamaları kullanıcı verisini sunucu olmadan nasıl yedekler: SAF export/import, Auto Backup for App Data ve üzerine yazmadan önce doğrulayan bir geri yükleme.
2026'da local-first bir Android uygulamasını test etmek: gerçek hataları yakalayan Room, Flow ve Compose UI testleri
2026'da local-first Android uygulamaları için pratik bir test stratejisi — bellek içi Room DAO testleri, Flow için Turbine ve yazmaya gerçekten değen birkaç Compose UI testi.
Android'de biyometrik kimlik doğrulama, 2026: BiometricPrompt, Keystore ve yerel öncelikli bir uygulamayı kilitlemek
androidx.biometric için pratik bir rehber — BiometricPrompt, CryptoObject destekli anahtarlar, cihaz kimlik bilgisi yedeği ve bir parmak izi kontrolünün hiçbir şeyi korumamasına yol açan hatalar.
2026'da Android'de erişilebilirlik: gerçekten uygulanan bir TalkBack ve Compose semantiği kontrol listesi
2026 için pratik bir Android erişilebilirlik kontrol listesi — TalkBack, Compose semantiği, dokunma hedefleri ve her ekranda yayınlamadan önce yaptığım test turu.
2026'da Android'de Health Connect: local-first'ten vazgeçmeden veri okuyup yazmak
Android'in Health Connect API'sine 2026 için pratik bir rehber — izinler, arka planda okuma ve local-first uygulamaların bunu neden gerçek değil, isteğe bağlı bir katman olarak görmesi gerektiği.
Android'de kenardan kenara (edge-to-edge) ve tahmini geri (predictive back): 2026'da artık zorunlu olan ve arayüzünüzü bozmadan nasıl uygulanır
Kenardan kenara artık API 35+ için zorunlu, tahmini geri ise varsayılan hareket oldu. Compose insets, WindowInsets ve PredictiveBackHandler için pratik bir rehber.
2026'da Jetpack DataStore: tek bir ayarı bile kaybetmeden SharedPreferences'tan geçiş
SharedPreferences'tan Jetpack DataStore'a geçiş için pratik bir Android rehberi — asenkron tuzaklar, mevcut değerleri koruyan migrasyon yolu ve bunu nasıl test edeceğiniz.
Android'de ML Kit ile barkod tarama (2026): Stocky bir kiler ürününü bir saniyeden kısa sürede nasıl ekliyor
ML Kit ve CameraX ile cihaz üzerinde barkod tarama için pratik bir 2026 rehberi: format ayarı, çevrimdışı ürün arama ve bir kiler uygulamasının arkasındaki kısmi kullanım matematiği.
2026'da Room veritabanı migrasyonları: tek bir satır kaybetmeden şema değişikliği göndermek
Android'de Room veritabanı migrasyonları için pratik bir rehber — AutoMigration, elle yazılmış Migration nesneleri ve kullanıcılarınız bulmadan önce bir migrasyonu nasıl test edersiniz.
Android'de Baseline Profiles: 2026'da soğuk başlatma süresini asıl ne değiştiriyor
Android Baseline Profiles için pratik bir rehber — Macrobenchmark ile profil oluşturma, Gradle'a bağlama, gerçek kazancı ölçme ve soğuk başlatmayı asıl etkileyen üç şey daha.
2026'da Jetpack Glance: verisi hakkında asla yalan söylemeyen bir ana ekran widget'ı
Jetpack Glance widget'ları için pratik bir rehber — durum yönetimi, tıklama aksiyonları ve widget'ları eski veri göstermeye iten güncelleme kotası tuzağı.
OldSchool'un düzen takvimini inşa etmek: doz dokunuşlarını güvenilir bir güne dönüştürmek
Aylık bir düzen takvimi, her gün için tek renkli bir nokta gibi görünür. İşte arkasındaki olay modeli, gün durumu kuralları ve zamanında alım matematiği, cihaz üzerinde.
Subly'yi Geliştirmek: abonelik yenileme tarihlerinin arkasındaki takvim matematiği
Bir aboneliğin sonraki ödeme tarihini tahmin etmek, ay sonu faturalandırmaya, artık yıllara ve deneme sürümü dönüşümlerine çarpana kadar önemsiz görünür. Subly'nin bunu cihaz üzerinde nasıl doğru yaptığı burada.
Mintly'i inşa etmek: Android süreci öldürmek isterken bir odak zamanlayıcısını doğru tutmak
Çalışan bir Pomodoro zamanlayıcısının, tek seferlik bir hatırlatıcıdan daha zor bir güvenilirlik sorunu var. İşte Mintly'in ön plan servisi ve duvar saati bitiş zamanıyla Doze, süreç ölümü ve ekran kapalıyken oluşan kaymayı nasıl atlattığı.
Granyn'i Geliştirmek: banka girişi olmayan bir bütçe takipçisi, üç tabloda
Granyn tek bir banka hesabı bağlamadan, para birimleri arasında harcamaları nasıl takip ediyor ve tekrarlayan faturaları nasıl yakalıyor — altındaki Room şeması ve bunun getirdiği ödünleşimler.
Android bildirim eylemleri doğru şekilde: uygulamayı açmadan bir dozu alındı olarak işaretlemek
Android bildirim eylem düğmeleri için pratik bir rehber — PendingIntent'ler, trambolin kısıtlaması, goAsync() ve Room durumunu güvenle güncellemek.
Stocky'yi Geliştirmek: mutfağınızda neyin biteceğini tahmin etmek — hem de cihazın üzerinde
Stocky bir barkod taramasını ve biraz kullanım geçmişini, siz daha bitirmeden önünüze düşen bir alışveriş listesine nasıl dönüştürüyor — tüm matematik ve tüm veriler telefonunuzda kalarak.
Android'de gizlilik öncelikli OCR: Subly faturaları buluta göndermeden nasıl okuyor
ML Kit Text Recognition ile Android'de cihaz üzerinde OCR için pratik bir 2026 rehberi — kurulum, kod ve kullanıcı verisini sunucularınızdan uzak tutan alan çıkarma teknikleri.
Hydrame'i geliştirmek: dırdır etmeden akıllı hatırlatıcılar
Bir hatırlatıcı uygulaması, bildirimleriyle var olur ya da yok olur. Hydrame'in bildirimlerini seni nazikçe dürtsün — ve gününle savaşmak yerine ona uyum sağlasın diye nasıl tasarladığımı anlatıyorum.
2026'da güvenilir Android hatırlatıcıları: WorkManager, kesin alarmlar ve yeni pil kuralları
2026'da Android'de gerçekten tetiklenen hatırlatıcılar nasıl yayınlanır — WorkManager mı AlarmManager mı, SCHEDULE_EXACT_ALARM, POST_NOTIFICATIONS ve hâlâ can yakan OEM tuhaflıkları.
2026'da local-first Android: SQLite, Room ve kullanıcı verisini cihazda tutmak
Room ve SQLite ile local-first Android uygulamaları geliştirmenin 2026 rehberi — şema tasarımı, migration'lar, WAL, dışa aktarma ve senkronizasyonu ne zaman eklemeli (ve ne zaman eklememeli).
Yerel öncelikli uygulamaların gizlilik avantajı
En gizli veri, hiç toplamadığın veridir. Yerel öncelikli olmak yalnızca bir mimari tercih değil — var olan en yalın gizlilik politikasıdır.