İçeriğe geç

// Yazılar

Yolculuktan notlar

Tek kişilik bir ekip olarak sakin, gizli yazılım yapmaya dair düşünceler.

RSS akışı
MFKAPPS 4 dk okuma

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.

#android #engineering #room
MFKAPPS 3 dk okuma

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 #engineering #kotlin
MFKAPPS 4 dk okuma

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 #engineering #kotlin
MFKAPPS 4 dk okuma

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 #engineering #kotlin
MFKAPPS 4 dk okuma

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.

#android #engineering #kotlin
MFKAPPS 3 dk okuma

Bir Uygulama, Bir İş: Neden Süper Uygulama Yapmıyorum

Büyüyen her uygulama, özellik ekleyip tek bir platformda birleşme baskısı hisseder. İşte MFKAPPS'in altı küçük, tek işlevli uygulama olarak kalmasının nedeni.

#indie #philosophy #ux
MFKAPPS 4 dk okuma

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'ı.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

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.

#android #engineering #room
MFKAPPS 4 dk okuma

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.

#android #engineering #room
MFKAPPS 4 dk okuma

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 #engineering #kotlin
MFKAPPS 4 dk okuma

Düzensiz gelirle bütçe yapmak: sabit bir maaş varsaymayan bir sistem

Çoğu bütçe tavsiyesi her ay aynı miktarın geldiğini varsayar. İşte serbest çalışma, komisyon ya da mevsimsel gelir için gerçekten işe yarayan bir sistem.

#mobile #ux #indie
MFKAPPS 4 dk okuma

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ı.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

Bir Aile Üyesi İçin İlaç Hatırlatıcıları Kurmak: Bakım Verenin Rehberi

Bir ebeveyne veya eşe ilaçlarını takip etmesinde yardımcı olmaya dair pratik bir rehber — ne kurulmalı, nelerden kaçınılmalı ve üzerine düşmeden nasıl kontrol edilir.

#reminders #ux #mobile
MFKAPPS 4 dk okuma

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.

#android #engineering #notifications
MFKAPPS 4 dk okuma

Bir Odak Seansı Ne Kadar Sürmeli? 25 Dakika Varsayılanının Ötesinde Bir Çerçeve

25 dakikalık Pomodoro bir kural değil, bir başlangıç noktasıdır. Görev türüne ve enerjine göre gerçek odak seansı süreni bulmak için pratik bir çerçeve.

#ux #mobile #indie
MFKAPPS 4 dk okuma

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 #engineering #room
MFKAPPS 4 dk okuma

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.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

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ı.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

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.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

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.

#android #engineering #room
MFKAPPS 3 dk okuma

Hesap Yok, Şifre Yok: Uygulamalarımda Neden Giriş Ekranı Olmuyor

Altı uygulama, sıfır kayıt formu. İşte hesapları tamamen atlamanın ardındaki gerçek gerekçe — neye mal oluyor, neyi ortadan kaldırıyor ve sınır nerede.

#privacy #indie #philosophy
MFKAPPS 5 dk okuma

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.

#android #engineering #privacy
MFKAPPS 4 dk okuma

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.

#android #engineering #privacy
MFKAPPS 5 dk okuma

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 #engineering #kotlin
MFKAPPS 5 dk okuma

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.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

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.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

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 #engineering #kotlin
MFKAPPS 4 dk okuma

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.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

Aslında ne kadar su içmelisin? 'Günde 8 bardak'ı geride bırakan bir formül

8 bardak kuralı vücut ağırlığını, aktiviteni ve iklimi göz ardı eder. İşte klinisyenlerin gerçekten kullandığı vücut ağırlığı formülü ve somut bir örnek.

#mobile #ux #hydrame
MFKAPPS 4 dk okuma

Sakin bir telefon kurulumu: yeni başlayanlar için yol haritası

Daha sakin bir telefona giden pratik, adım adım bir yol haritası — bildirim ayıklama, daha küçük bir ana ekran ve gerçekten kalıcı olan toplu kontrol pencereleri.

#mobile #ux #notifications
MFKAPPS 4 dk okuma

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 #engineering #kotlin
MFKAPPS 4 dk okuma

Aboneliklerinizi 20 dakikada denetlemenin yolu (ve kullanmadıklarınızı gerçekten iptal etmek)

Tek oturuşta bitirebileceğiniz adım adım bir abonelik denetimi — her tekrarlayan ödemeyi bulun, tek bir kuralla tut-ya-da-iptal-et kararı verin, listeyi dürüst tutacak bir alışkanlık kurun.

#subscriptions #ux #mobile
MFKAPPS 5 dk okuma

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.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

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 #engineering #room
MFKAPPS 4 dk okuma

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.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

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ğı.

#android #engineering #kotlin
MFKAPPS 4 dk okuma

İsrafı gerçekten durduran bir kiler envanteri sistemi

Çoğu yiyecek israfı kötü planlamadan değil, zaten var olanı unutmaktan kaynaklanır. Çöp kutusundan önce yakalayan basit bir envanter ve son kullanma triyaj sistemi.

#mobile #ux #stocky
MFKAPPS 4 dk okuma

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.

#android #engineering #room
MFKAPPS 4 dk okuma

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.

#android #engineering #subscriptions
MFKAPPS 4 dk okuma

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ığı.

#android #engineering #mobile
MFKAPPS 4 dk okuma

İrade gücüne dayanmayan bir hidrasyon rutini

Çoğu hidrasyon tavsiyesi 'daha fazla su iç'e indirgenir ve aradaki boşluğu irade gücünün dolduracağını umar. İşte bunun yerine ipuçları ve nazik dürtmeler üzerine kurulu bir rutin.

#mobile #ux #reminders
MFKAPPS 4 dk okuma

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 #engineering #privacy
MFKAPPS 4 dk okuma

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.

#android #engineering #notifications
MFKAPPS 4 dk okuma

Kötü bir günü de atlatan Pomodoro Tekniği

25/5 zamanlayıcısı başlaması kolay, bırakması da o kadar kolay. İşte seri değil, ritüel üzerine kurulu bir Pomodoro Tekniği versiyonu — böylece zor bir gün alışkanlığı bitirmiyor.

#ux #mobile #indie
MFKAPPS 5 dk okuma

Hiç bağlı kalamadığın bütçe planları için bir sistem

Çoğu bütçe planı ilk iki haftada çöker. Karmaşık olmayan bir bozuk ayı da kaldırabilen, mükemmel ayı değil: üç kategorilik bir sistem ve haftada beş dakikalık bir kontrol.

#mobile #ux #indie
MFKAPPS 3 dk okuma

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 #engineering #privacy
MFKAPPS 4 dk okuma

Gerçekten uyacağın bir ilaç rutini kurmak

İlaç uyumuna dair pratik bir rehber — insanlar dozları neden kaçırır, hatırlatıcı zamanlaması gerçekte nasıl işler ve kötü bir haftadan da sağ çıkan bir rutin nasıl kurulur.

#reminders #ux #notifications
MFKAPPS 1 dk okuma

Site artık yedi dil konuşuyor

MFKAPPS artık İngilizce, Türkçe, Fransızca, İspanyolca, Japonca, Hintçe ve Rusça olarak sunuluyor. Tek kişilik bir stüdyonun bununla neden uğraştığına ve nasıl hızlı kaldığına dair kısa bir not.

#indie #ux #philosophy
MFKAPPS 6 dk okuma

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.

#android #engineering #privacy
MFKAPPS 3 dk okuma

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.

#hydrame #engineering #ux
MFKAPPS 5 dk okuma

Abonelik yorgunluğu: bankamı uygulamalara bağlamaktan neden vazgeçtim

Abonelik takip uygulamaları sorunu genellikle banka giriş bilgilerinizi isteyerek çözer. 2026'da daha sakin bir yol var — cihaz üzerinde fatura tarama, Plaid yok, aracı yok.

#privacy #subscriptions #opinion
MFKAPPS 6 dk okuma

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ı.

#android #engineering #mobile
MFKAPPS 6 dk okuma

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).

#android #engineering #privacy
MFKAPPS 6 dk okuma

2026'da tek başıma Android uygulamalarını nasıl yayınlıyorum

2026'da tek başına Kotlin + Compose ile bir Android uygulamasını baştan sona yayınlamak için gerçek bir başlangıçtan bitişe rehber — kapsam, geliştirme, Play Store ilanı ve gerçekten yayınlayıp yayınlamayacağını belirleyen sıkıcı ayrıntılar.

#android #indie #mobile
MFKAPPS 3 dk okuma

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.

#privacy #engineering
MFKAPPS 2 dk okuma

Neden sakin araçlar yapmak için yola çıktım

Çoğu uygulama seni bağımlı tutmak için tasarlanıyor. Ben tam tersini yapmak istedim — işini gören ve sonra yolundan çekilen yazılımlar.

#indie #manifesto #philosophy