Bölüm 10 / 33
Masaüstü Uygulama Sistemleri
Windows, macOS ve Linux üzerinde çalışan masaüstü uygulamaların arayüz, işletim sistemi ve dağıtım kavramları.
3 canlı örnek — seçerek incele
İlgili kavramlar: GUI, Window, Menu Bar
Masaüstü pencere mock
Tarayıcı yerine doğrudan işletim sistemi üzerinde çalışan kullanıcı uygulaması.
Belirli işletim sistemi ve platform API'leri için doğrudan geliştirilen uygulama.
Tek kod tabanıyla birden fazla masaüstü işletim sisteminde çalışmayı hedefleyen uygulama.
Chromium ve Node.js ile JavaScript tabanlı masaüstü uygulama geliştirme platformu.
Web arayüzü ve Rust tabanlı hafif masaüstü uygulama çatısı.
Windows Forms, WPF veya WinUI ile masaüstü uygulama geliştirme ekosistemi.
Java ile masaüstü kullanıcı arayüzü geliştirme kütüphanesi.
- QtO
C++ ve çeşitli binding'lerle cross-platform GUI geliştirme framework'ü.
Electron'da uygulama yaşam döngüsü, pencere ve işletim sistemi işlemlerini yöneten süreç.
Electron penceresindeki web arayüzünü çalıştıran izole Chromium süreci.
Electron uygulamasındaki bir masaüstü pencere örneği.
Yerel uygulama içinde web içeriği ve arayüz çalıştıran gömülü tarayıcı bileşeni.
- IPCO
Ana süreç ile renderer veya farklı süreçler arasında güvenli mesajlaşma.
Electron renderer'a sınırlı ve kontrollü native API köprüsü sağlayan script.
Web içeriğini ayrı JavaScript bağlamında tutarak güvenliği artıran Electron özelliği.
Renderer sürecinin Node.js API'lerine doğrudan erişebilme ayarı.
Pencerenin oluşturulma, gösterilme, küçültülme ve kapatılma olayları.
Uygulamanın başlatılma, aktifleşme, kapanma ve güncellenme aşamaları.
İşletim sistemi bildirim alanında çalışan küçük uygulama ikonu ve menüsü.
Uygulama odakta değilken de çalışan sistem geneli klavye kısayolu.
Metin, görsel veya dosya kopyalama-yapıştırma alanı.
Dosya açma, kaydetme veya klasör seçme için native pencere.
İşletim sisteminin bildirim merkezinde gösterilen uygulama mesajı.
Özel URL protokolüyle uygulamanın belirli ekranını açma yöntemi.
myapp:// gibi uygulamaya kayıtlı özel URL şeması.
Aynı uygulamanın birden fazla örneğinin açılmasını önleyen kilit.
Uygulama verisini cihaz üzerinde saklayan SQLite gibi veritabanı.
Sunucu gerektirmeden tek dosyada çalışan ilişkisel veritabanı.
Uygulamanın internet olmadan temel işlerini sürdürebilmesini önceliklendiren yaklaşım.
Yerel veriler ile uzak sunucu verilerinin karşılıklı güncellenmesi.
Aynı kayıt farklı cihazlarda değiştiğinde doğru birleşim veya kazananı belirleme.
Yeni uygulama sürümünü otomatik kontrol edip indirerek kurma mekanizması.
Stable, beta ve nightly gibi farklı sürüm dağıtım grupları.
Uygulamayı sisteme kuran exe, msi, dmg veya paket.
Kurulum gerektirmeden klasörden çalışabilen uygulama.
Uygulama paketini geliştirici sertifikasıyla imzalayıp bütünlüğünü kanıtlama.
macOS uygulamasının Apple tarafından güvenlik kontrolünden geçirilmesi.
Uygulamanın dosya ve sistem kaynaklarına erişimini sınırlandıran güvenlik ortamı.
JavaScript veya yüksek seviyeli dilden işletim sistemi ya da C/C++ API'sine bağlanan modül.
Barkod okuyucu veya cihazlarla seri iletişim bağlantısı.
USB cihazlarını bulma, yetkilendirme ve veri alışverişi.
Fiş, etiket veya dokümanı sistem yazıcısına gönderme.
Barkod bilgisini klavye, seri port veya özel SDK üzerinden alan cihaz entegrasyonu.
Satış noktası cihazı, ödeme terminali veya fiş yazıcısıyla entegrasyon.
Sık kullanılan uzak veriyi cihaz üzerinde geçici saklama.
Token ve şifre gibi gizli verileri işletim sisteminin güvenli kasasında saklama.
macOS Keychain veya Windows Credential Manager gibi güvenli kimlik depoları.
Uygulama çöktüğünde hata, stack trace ve sistem bilgisini kaydetme.
Uygulama performansı ve kullanım olaylarını kontrollü biçimde toplama.
Pencere kapalı veya küçültülmüşken veri senkronizasyonu gibi işleri sürdüren süreç.
Dosya veya klasör değişikliklerini gerçek zamanlı izleyen mekanizma.
Kamera, mikrofon, bildirim veya dosya erişimi için işletim sistemi izni.
Masaüstü arayüzünün ekran okuyucu ve otomasyon araçlarınca anlaşılmasını sağlayan platform API'si.
| Kavram | Seviye | Kısa açıklama |
|---|---|---|
| Desktop Application | T | Tarayıcı yerine doğrudan işletim sistemi üzerinde çalışan kullanıcı uygulaması. |
| Native Application | T | Belirli işletim sistemi ve platform API'leri için doğrudan geliştirilen uygulama. |
| Cross-platform Application | T | Tek kod tabanıyla birden fazla masaüstü işletim sisteminde çalışmayı hedefleyen uygulama. |
| Electron | O | Chromium ve Node.js ile JavaScript tabanlı masaüstü uygulama geliştirme platformu. |
| Tauri | O | Web arayüzü ve Rust tabanlı hafif masaüstü uygulama çatısı. |
| .NET Desktop | O | Windows Forms, WPF veya WinUI ile masaüstü uygulama geliştirme ekosistemi. |
| JavaFX | O | Java ile masaüstü kullanıcı arayüzü geliştirme kütüphanesi. |
| Qt | O | C++ ve çeşitli binding'lerle cross-platform GUI geliştirme framework'ü. |
| Main Process | O | Electron'da uygulama yaşam döngüsü, pencere ve işletim sistemi işlemlerini yöneten süreç. |
| Renderer Process | O | Electron penceresindeki web arayüzünü çalıştıran izole Chromium süreci. |
| Browser Window | T | Electron uygulamasındaki bir masaüstü pencere örneği. |
| WebView | O | Yerel uygulama içinde web içeriği ve arayüz çalıştıran gömülü tarayıcı bileşeni. |
| IPC | O | Ana süreç ile renderer veya farklı süreçler arasında güvenli mesajlaşma. |
| Preload Script | O | Electron renderer'a sınırlı ve kontrollü native API köprüsü sağlayan script. |
| Context Isolation | O | Web içeriğini ayrı JavaScript bağlamında tutarak güvenliği artıran Electron özelliği. |
| Node Integration | O | Renderer sürecinin Node.js API'lerine doğrudan erişebilme ayarı. |
| Window Lifecycle | T | Pencerenin oluşturulma, gösterilme, küçültülme ve kapatılma olayları. |
| Application Lifecycle | T | Uygulamanın başlatılma, aktifleşme, kapanma ve güncellenme aşamaları. |
| System Tray | T | İşletim sistemi bildirim alanında çalışan küçük uygulama ikonu ve menüsü. |
| Native Menu | T | İşletim sisteminin standart uygulama menü çubuğu. |
| Context Menu | T | Sağ tıklama veya uzun basmayla açılan bağlamsal menü. |
| Global Shortcut | O | Uygulama odakta değilken de çalışan sistem geneli klavye kısayolu. |
| Clipboard | T | Metin, görsel veya dosya kopyalama-yapıştırma alanı. |
| File Dialog | T | Dosya açma, kaydetme veya klasör seçme için native pencere. |
| Notification | T | İşletim sisteminin bildirim merkezinde gösterilen uygulama mesajı. |
| Deep Link | O | Özel URL protokolüyle uygulamanın belirli ekranını açma yöntemi. |
| Custom Protocol | O | myapp:// gibi uygulamaya kayıtlı özel URL şeması. |
| Single Instance Lock | O | Aynı uygulamanın birden fazla örneğinin açılmasını önleyen kilit. |
| Local Database | T | Uygulama verisini cihaz üzerinde saklayan SQLite gibi veritabanı. |
| SQLite | T | Sunucu gerektirmeden tek dosyada çalışan ilişkisel veritabanı. |
| Offline First | O | Uygulamanın internet olmadan temel işlerini sürdürebilmesini önceliklendiren yaklaşım. |
| Synchronization | O | Yerel veriler ile uzak sunucu verilerinin karşılıklı güncellenmesi. |
| Conflict Resolution | İ | Aynı kayıt farklı cihazlarda değiştiğinde doğru birleşim veya kazananı belirleme. |
| Auto Update | O | Yeni uygulama sürümünü otomatik kontrol edip indirerek kurma mekanizması. |
| Update Channel | O | Stable, beta ve nightly gibi farklı sürüm dağıtım grupları. |
| Installer | T | Uygulamayı sisteme kuran exe, msi, dmg veya paket. |
| Portable Application | T | Kurulum gerektirmeden klasörden çalışabilen uygulama. |
| Code Signing | O | Uygulama paketini geliştirici sertifikasıyla imzalayıp bütünlüğünü kanıtlama. |
| Notarization | O | macOS uygulamasının Apple tarafından güvenlik kontrolünden geçirilmesi. |
| App Sandbox | O | Uygulamanın dosya ve sistem kaynaklarına erişimini sınırlandıran güvenlik ortamı. |
| Native Module | İ | JavaScript veya yüksek seviyeli dilden işletim sistemi ya da C/C++ API'sine bağlanan modül. |
| Serial Port | O | Barkod okuyucu veya cihazlarla seri iletişim bağlantısı. |
| USB Integration | O | USB cihazlarını bulma, yetkilendirme ve veri alışverişi. |
| Printer Integration | O | Fiş, etiket veya dokümanı sistem yazıcısına gönderme. |
| Barcode Scanner | T | Barkod bilgisini klavye, seri port veya özel SDK üzerinden alan cihaz entegrasyonu. |
| POS Integration | O | Satış noktası cihazı, ödeme terminali veya fiş yazıcısıyla entegrasyon. |
| Local Cache | T | Sık kullanılan uzak veriyi cihaz üzerinde geçici saklama. |
| Secure Storage | O | Token ve şifre gibi gizli verileri işletim sisteminin güvenli kasasında saklama. |
| Keychain / Credential Vault | O | macOS Keychain veya Windows Credential Manager gibi güvenli kimlik depoları. |
| Crash Report | O | Uygulama çöktüğünde hata, stack trace ve sistem bilgisini kaydetme. |
| Telemetry | O | Uygulama performansı ve kullanım olaylarını kontrollü biçimde toplama. |
| Background Process | O | Pencere kapalı veya küçültülmüşken veri senkronizasyonu gibi işleri sürdüren süreç. |
| File Watcher | O | Dosya veya klasör değişikliklerini gerçek zamanlı izleyen mekanizma. |
| OS Permission | O | Kamera, mikrofon, bildirim veya dosya erişimi için işletim sistemi izni. |
| Accessibility API | İ | Masaüstü arayüzünün ekran okuyucu ve otomasyon araçlarınca anlaşılmasını sağlayan platform API'si. |
Bölüm uygulamaları
Bu bölümü bitirmeden önce şunları deneyin veya açıklayın.
- Bir stok takip masaüstü uygulamasının yerel veritabanı, senkronizasyon ve yazıcı entegrasyonunu tasarlayın.
- Electron main process, renderer ve preload arasındaki güvenli veri akışını şema olarak çizin.
- Offline yapılan kayıtların internet geldiğinde nasıl senkronize edileceğini ve çakışmanın nasıl çözüleceğini yazın.