satır Swift, 41 dosyada
VAKA ÇALIŞMASI · 2026
MacPulse
CPU, bellek, disk, ağ, pil ve termal durumu tek bir gösterge panelinde toplayan; hiçbir veriyi makineden çıkarmayan yerel bir macOS sistem monitörü.
- Alan
- macOS · SwiftUI · System Utility
- Rol
- Ürün tasarımı, mühendislik, dağıtım
- Durum
- Yalnızca yerelde çalışıyor

macOS sistem verileri farklı araçlara dağılmış durumda; depolama temizliği, bellek baskısı, pil sağlığı, ağ bağlantıları ve geliştirici kalıntılarını güvenli biçimde anlamak teknik bilgi ve zaman gerektiriyor.
CPU, bellek, disk, ağ, pil ve termal durumu gerçek sistem API’lerinden izleyen; kadranlar, segment göstergeleri ve tabular ölçümleri düz grafit bir Instrument Cluster arayüzünde birleştiren yerel bir macOS uygulaması geliştirdim. Hash tabanlı kopya tespiti, geliştirici depolama analizi ve geri alınabilir temizlik de aynı sistemin parçaları.
Veriyi buluta göndermeden çalışan; temizlikte ikinci onay ve Çöp Kutusu güvenliğini koruyan, menü çubuğundan hızlı erişilen ve Türkçe–İngilizce kullanılabilen kapsamlı bir Mac sağlık çalışma alanı. Tasarım; blur ve gradient yerine yüksek okunabilirlikli, makine paneli karakterine sahip ortak bir ölçüm dili kullanıyor.
birim testi, domain katmanında
izleme bölümü tek panelde
kadran animasyonu kapalıyken boştaki CPU
Teknik kararlar
Her kararın bir bedeli var; burada ikisi birlikte duruyor.
Kuralları makineden ayırdım
Paket iki hedefe bölünmüş durumda. MacPulseKit saf Foundation: modeller, ayrıştırma, özetleme, kopya ve temizlik politikası, örnekleme temposu ve sağlık eşikleri burada — SwiftUI yok, AppKit yok, sistem çağrısı yok. MacPulse ise uygulama katmanı: mach/IOKit örnekleme, dosya sistemi taraması, arayüz. Değerlerden karar verilebilen her şey Kit tarafında yaşıyor.
İki hedef arasındaki sınırı sürdürmek fazladan bakım demek. Karşılığında, 44 test bir sistem monitörünün kurallarını herhangi bir Mac’in durumuna bağlı olmadan doğruluyor.
Mac App Store’dan vazgeçtim
App Store sandbox’ı ps çalıştırmayı, lsof ve xcrun kullanmayı, başka süreçleri sonlandırmayı ve ev dizinini taramayı yasaklıyor. Bu uygulamanın yaptığı işin neredeyse tamamı bunlar. Dağıtım bu yüzden GitHub releases üzerinden yürüyor.
İmzasız bir indirme macOS tarafından karantinaya alınıyor ve kullanıcıya uygulama bozukmuş gibi görünüyor; README tek seferlik xattr adımını açıklıyor. Alternatif, ürünü ölçmek istediği şeyi ölçemez hâle getirmekti.
Kadran animasyonunu varsayılan olarak kapattım
Gösterge süpürmesini canlandırmak SwiftUI animasyonunu sürekli havada tutuyor; bir animasyon çalışırken pencerenin tamamı her ekran karesinde yeniden değerlendiriliyor. Genel bakış ekranında ölçülen boştaki maliyet ~%27 CPU’ya karşı ~%4.
Varsayılan görünüm daha durgun. Bir monitörün kendi tükettiği kaynak, ölçtüğü kaynaktan daha az önemli değil; isteyen Ayarlar → Enerji & Örnekleme’den açıyor.
Her kaynağı kendi temposunda örnekliyorum
ps çalıştırmak, çekirdeğin pid tablosunu gezmek ve AppleSmartBattery özellik sözlüğünü kopyalamak, bir CPU tick’i okumaktan kat kat pahalı. SampleSchedule her birini bağımsız kısıyor; süreç taraması main actor dışında dönüyor ve ekranda pencere yokken örnekleme geri çekiliyor.
Tek bir yenileme aralığı çok daha basit olurdu. Ayrı tempolar kodun karmaşıklığını artırıyor ama uygulamanın arka planda sessiz kalmasını sağlıyor.
Hiçbir şey silinmiyor
Her kaldırma bir trashItem çağrısı ve son yığın geri alınabiliyor. “Tümünü seç” yalnızca kendi kendine yeniden oluşan kategorileri işaretliyor: önbellekler, derleme çıktıları, DerivedData, kullanılamayan simülatörler. Kopyalar ve iOS yedekleri asla toplu seçilmiyor.
Temizlik daha yavaş ilerliyor ve kullanıcıdan daha çok karar istiyor. Gerekçe açık: kopyada hangi dosyanın gereksiz olduğu yalnızca bir tahmin, bir yedek ise bir cihazın tek kopyası olabilir.
Ekran ekran

Gösterge paneli
Kadranlar, segment göstergeleri ve tabular ölçümler tek bir okuma dilinde birleşiyor. Blur ve gradient yerine, makine paneli karakterinde yüksek okunabilirlik.

Bellek danışmanı
“Sahte RAM temizliği yok — baskıyı ne yaratıyor ve buna karşı güvenli işlem ne.” Kullanımı aktif, wired, sıkıştırılmış ve önbelleklenmiş olarak ayırıyor; en çok bellek tutan süreçleri Quit ve Force ayrımıyla listeliyor.

Temizlik merkezi
Ekranın kendi başlığı politikayı tekrarlıyor: “Önce incele. Hiçbir şey otomatik silinmez.” Eylem düğmesi Sil değil, Çöp Kutusu’na Taşı. Pencerenin köşesinde kalıcı bir not duruyor: yalnızca yerel, telemetri yok.