Derin teknik yazılar ve platform duyuruları
Sahada karşılaştığımız konuları, resmi dokümantasyona dayanarak ve uygulanabilir örneklerle anlatıyoruz.
Mimari ve AI yolculuğu
Kolaydan zora sıralı bir rota. Her yazı bir seviye; okudukça yol aydınlanır.
Singleton'ları tamamen yok etmek gerçekten doğru mu?
Büyük iOS ve Android projelerinde can yakan şey gizli erişim ve global mutable state; bir nesneden tek tane olması kimseyi incitmiyor. Hangi singleton kalır, hangisi oturuma bağlanır, hangisi silinir: Swift 6 ve Hilt ile adım adım anlatıyoruz.
OkuDependency Injection'ın yanlış kullanımı: iOS'ta DI container anti-pattern'leri
Projeye bir DI container eklemek, bağımlılıkları enjekte ettiğiniz anlamına gelmiyor. Service locator'a dönüşen resolve çağrılarını, QA'in açmadığı ekranda patlayan kayıtları, tanrı container'ı ve SwiftUI environment tuzaklarını; yerine koyduğumuz composition root'u ve geçiş adımlarını anlatıyoruz.
OkuDependency Injection'ın yanlış kullanımı: Android'de DI container anti-pattern'leri
Hilt ya da Koin kurulu diye bağımlılıklarınız yönetiliyor sayılmaz. Her şeyin @Singleton olduğu graph'ler, kılık değiştirmiş service locator'lar ve 80 @Provides'lı AppModule nasıl oluşur, adım adım nasıl toparlanır, anlatıyoruz.
OkuBookingFlowContext gibi global state object'leri neden tehlikelidir?
Çok adımlı bir akışta her ekranın okuyup yazdığı otuz optional'lı context çantası, ilk gün kolaylık, üçüncü yıl crash kaynağıdır. Neyi kırdığını, observable yapmanın neden yetmediğini ve yerine koyduğumuz tipli girdi, çıktı ve state machine modelini Swift ve Kotlin koduyla anlatıyoruz.
OkuFeature-based mimari vs layer-based mimari
Kodu teknik katmana göre mi, özelliğe göre mi dilimlemeli? Layer-first projelerin nasıl yaşlandığını, feature-first'ün neye mal olduğunu, ölçekte önerdiğimiz yapıyı ve bir seferde tek feature taşıyan geçiş yolunu iOS ve Android örnekleriyle anlatıyoruz.
OkuDomain boundary nasıl belirlenir?
Modülerleştirmeden önce verilmesi gereken karar, bir domain'in nerede bitip diğerinin nerede başladığıdır. Ekranlara ya da endpoint'lere göre kesmek yerine dile, birlikte değişen koda ve verinin sahibine bakarak sınır çizmeyi, hayali bir seyahat uygulaması üzerinden anlatıyoruz.
OkuShared model kullanmak mı, domain-specific model kullanmak mı?
Her feature’ın import ettiği altmış alanlı `Booking`, module grafiği temiz görünse bile bütün uygulamayı birbirine bağlar. Feature’a ait modelleri, sıkıcı mapper’ları, küçük bir shared kernel’i ve god-model’i tüketici tüketici bölmenin yolunu Swift ve Kotlin ile anlatıyoruz.
OkuModularization'ın gerçek maliyeti: ne zaman modüllememeliyiz?
Modularization bedava diye satılır, faturası sonradan gelir. Modül başına build ayarı, ikiye katlanan interface modülleri, launch süresi, Gradle configuration süresi ve yanlış yerde donan sınırlar. Ne zaman bölmemenizi önerdiğimizi ve karardan önce neyi ölçeceğinizi anlatıyoruz.
OkuCircular dependency büyük iOS projelerinde nasıl önlenir?
SwiftPM ve Xcode module cycle'ını zaten reddeder; asıl sorun, cycle'ın şişmiş bir Common module'ü ya da bölünemeyen bir monolit olarak geri dönmesidir. Beş tekniği, hangi nedene hangisinin uyduğunu ve yasak kenarı CI'da yakalayan script'i anlatıyoruz.
OkuCompile-time dependency graph'i yönetmek: iOS
Projeyi 60 module'e böldünüz ama Core'daki tek satır hâlâ her şeyi yeniden derliyor. Swift'in neyi neden yeniden derlediğini, import'ların erişim seviyesini, interface module'leri ve graph'inizdeki sıcak noktaları kendi projenizde nasıl ölçeceğinizi anlatıyoruz.
OkuCompile-time dependency graph'i yönetmek: Android
Kırk module'e böldüğünüz proje tek satırlık değişiklikte hâlâ dakikalarca derleniyorsa bakmanız gereken yer graph'in şeklidir. Gradle'da api ile implementation farkını, api/impl ayrımını, fark etmeden sızan şeyleri ve kazancı nasıl ölçeceğinizi anlatıyoruz.
OkuArchitecture dependency rule'larını compiler'a enforce ettirmek: iOS
Wiki'de duran bir dependency rule'u çoktan çiğnenmiştir. Kuralı Package.swift'e, access control'e, bir CI script'ine ve Swift 6 isolation'ına taşıyıp build'i kırdırmanın yolunu, SwiftPM'in sessizce warning'e çevirdiği boşlukla birlikte anlatıyoruz.
OkuArchitecture dependency rule'larını compiler'a enforce ettirmek: Android
Wiki sayfasında ya da code review yorumunda yaşayan bir dependency rule çoktan delinmiştir. Gradle module sınırları, convention plugin'ler, explicitApi, module graph assertion, Konsist, ArchUnit, detekt ve dependency guard ile kuralları build'i kıran kontrollere çeviriyoruz.
OkuTuist / SPM / XcodeProj: büyük organizasyonlarda hangisi?
20 ile 200 arası iOS mühendisi olan ekipler için karar yazısı. Elle bakılan .xcodeproj, ince proje artı yerel Swift package'lar, Tuist ve XcodeGen ile proje üretimi, Bazel. Hangisini hangi koşulda seçtiğimizi, geri alınabilir geçiş planıyla birlikte anlatıyoruz.
OkuSwift Package Manager ile 100+ modüllü iOS architecture
Yüz module'ü local Swift package'larla yönetmek mümkün, yeter ki manifest'i veri gibi değil kod gibi yazın. Tek package kararından linking tuzaklarına, macro faturasından yalnızca etkilenen testleri çalıştıran CI script'ine kadar uçtan uca kurulum.
OkuSSL pinning: ne zaman gerekli, nasıl doğru yapılır, nasıl kırılır?
Pinning, güvendiğiniz CA kümesini yüzlerce kökten birkaç anahtara indirir; karşılığında sertifika takviminizi uygulama sürümlerinize bağlar. iOS ve Android'de doğru kurulum, rotasyon runbook'u, telemetri, test ve pentest'te nasıl atlatıldığı.
OkuApp Attest ve Play Integrity: sahte istemcileri durdurmanın uçtan uca rehberi
API’niz kiminle konuştuğunu bilmiyor. Tehdit modelinden veri modeline, Swift ve Kotlin istemci kodundan TypeScript ile sunucu doğrulamasına, karar matrisinden kademeli yayın planına kadar App Attest ve Play Integrity’yi üretimde nasıl kurduğumuzu adım adım anlatıyoruz.
OkuKod asistanı lisansı almak dönüşüm değildir: AI destekli SDLC'yi adım adım kurmak
Lisans almak tek tek geliştiricilerin yazma hızını değiştirir, ekibin teslimat biçimine dokunmaz. Ortak talimat dosyaları, repoda duran komutlar, PR şablonu, CI adımı ve çalışma anlaşmalarıyla AI destekli bir SDLC'yi aşama aşama nasıl kurduğumuzu anlatıyoruz.
OkuAI ile kod inceleme: insan incelemesinden önce ne yakalanır, ne yakalanmaz?
Ekip AI ile daha çok kod yazınca ilk tıkanan yer review kuyruğu olur. AI ön incelemesinin mekanik katmanda neyi güvenilir yakaladığını, neyi kaçırdığını, talimat dosyasını, CI kurulumunu, gürültü kontrolünü ve insana kalan işi Swift ve Kotlin örnekleriyle anlatıyoruz.
OkuBüyük bir iOS/Android kod tabanında AI ajanlarını çalıştırmak: proje kuralları, bağlam ve sınırlar
Kodlama ajanları küçük repoda parlıyor, 100 modüllü mobil uygulamada tökezliyor. Fark çoğu zaman repo'nun hazırlığından geliyor. Tek modüllük build ve test komutları, modül başına kural dosyaları, bağlam sınırı ve ajana verilmeyecek yetkiler üzerinden uçtan uca anlatıyoruz.
OkuAI'ın yazdığı kodun mimariyi bozmasını önlemek: kuralları ajanlara da zorlatmak
Bir ajan görevin geçmesini optimize eder; mimariniz o hedefin içinde yer almaz. Build'in zorlamadığı kuralı her insandan daha hızlı ve daha kibar çiğner. Talimat dosyasından CODEOWNERS'a uzanan korkuluk yığınını ve korkulukların kendisini nasıl koruduğumuzu anlatıyoruz.
OkuAI ile test üretimi: kapsam artıyor, peki güven artıyor mu?
Bir agent bir öğleden sonrada kapsamı ikiye katlayabilir, ama üretilen testlerin çoğu kodu kendisine doğrulatır ve hiçbir zaman kırmızıya dönmez. Swift ve Kotlin örnekleriyle neyi istemeniz, neyi reddetmeniz ve güvenin gerçekten artıp artmadığını nasıl ölçmeniz gerektiğini anlatıyoruz.
OkuAI verimliliğini ölçmek: 'daha hızlıyız' hissini sayıya dökmek
Ekip daha hızlı olduğunu söylüyor, bütçe sahibi sayı istiyor, vendor paneli acceptance rate gösteriyor. Hangi metriklerin yanılttığını, hangilerinin dayandığını, veriyi kendi Git host'unuzdan nasıl çekeceğinizi ve yönetime abartmadan nasıl raporlayacağınızı anlatıyoruz.
Okun8n ile ilk üretim otomasyonu: form, sınıflandırma, CRM, Slack (uçtan uca)
Web sitesindeki iletişim formunu LLM ile sınıflandırıp CRM'e yazan ve Slack'e haber veren bir n8n workflow'unu demo seviyesinden üretim seviyesine taşıyoruz. Webhook ya da kuyruktan çekme, idempotent yazma, hata workflow'u, dead-letter, test ve runbook dahil.
Okun8n'de AI adımlarını güvenilir kılmak: hata yönetimi, insan onayı, maliyet sınırı
Demo'da çalışan LLM adımı gerçek trafikte şemayı bozar, enjekte edilmiş talimata uyar, faturayı şişirir. n8n 2.x'te çıktı sözleşmesi, onay adımı, dead-letter, idempotency ve günlük bütçe kapısını node ayarları ve koduyla kuruyoruz.
OkuŞirket içi bilgi asistanı kurmak: RAG ne zaman yeter, ne zaman yetmez?
Dokümanlarımızı bilen bir asistan isteği çoğu zaman üç şekilde hayal kırıklığına dönüşür: emin ama yanlış, bayat ya da soranın görmemesi gerekeni sızdıran cevaplar. Sorulardan başlayıp yetki, tazelik ve ölçüme kadar uçtan uca anlatıyoruz.
OkuMobil uygulamaya LLM özelliği eklemek: cihazda mı, sunucuda mı?
Model seçmeden önce özelliği tanımlayın. Bir seyahat uygulaması üzerinden kalite, gecikme, maliyet, gizlilik ve cihaz kapsamı eksenlerini, anahtarı saklayan gateway'i, Swift ve Kotlin ile streaming istemcisini, cihaz içi modele düşen hibrit akışı ve özellik tipine göre karar tablosunu anlatıyoruz.
OkuiOS ve Android'de cihaz üzerinde çalışan modeller: bugün neler mümkün?
Foundation Models, Core ML ve Core AI bir yanda; Gemini Nano, ML Kit GenAI, LiteRT ve Play for On-device AI öbür yanda. Ekim 2026 itibarıyla hangi API hangi cihazda, hangi dilde çalışıyor, nerede yetmiyor ve model yokken uygulamanız ne yapmalı, kodla anlatıyoruz.
OkuŞirket için AI kullanım politikası: kod, veri ve müşteri bilgisi nereye gidebilir?
Politikanız yoksa da bir politikanız var, yalnızca onu her geliştirici kendi yazıyor. Araçlar arasındaki gerçek veri farklarını, on saniyede uygulanan bir veri sınıflandırmasını, kod ve müşteri verisi kurallarını, teknik zorlamayı ve uyarlayabileceğiniz tek sayfalık şablonu anlatıyoruz.
OkuPlatform duyuruları yakında burada.