6 puan yazan enarche 2025-04-07 | 1 yorum | WhatsApp'ta paylaş

İhtiyacım olduğu için yaptığım basit bir slayt gösterisi uygulamasını tanıtıyorum.
İş haftasında kısa bir kahve molası verirken, monitörün bir köşesinde IU GIF'lerine bakmayı seviyorum.
Ana kullandığım bilgisayarı Mac'e geçirince uygun bir uygulama bulamayınca düşündüm ve GPT'nin yardımıyla basitçe yapmayı denedim.

Uygulamanın genel özellikleri şöyle:

  • Slayt gösterisi özelliği
  • Görsel oynatma (GIF dahil), video oynatma
  • Slayt gösterisi süresinden bağımsız olarak videoyu sonuna kadar izleyebilme
  • Görsel oranına göre pencere yüksekliğini ayarlama
  • Saat gösterimi
  • Otomatik güncelleme

Benimle benzer zevklere sahip olanlar olabilir diye paylaşmak istedim.
İlk başta Swift ile geliştiriyordum, sonra madem öyle cross-platform yapayım dedim.
Flutter ve Electron arasında düşündükten sonra, mobil düşünmediğim için Electron'a karar verdim.

Bu geliştirme sırasında yeni öğrendiğim birkaç şeyi de küçük notlar halinde birlikte paylaşıyorum.
github : https://github.com/enarche-ahn/unifandora-release

Otomatik güncelleme

Electron'u ilk kez kullanıyorum.
Visual Code'un Electron ile geliştirildiğine dair söylentileri duyduğum için merakım vardı,
ama gerçekten kullanınca bayıldım.
Özellikle otomatik güncellemeyi çok kolay bağlayabilmek beni gerçekten şaşırttı.

Shell üzerinden log çıktısı

Normalde renderer tarafında debug için log mesajı bastığınızda bunu sadece tarayıcının geliştirme modunda görebiliyordum.
Belki bir çözümü vardır diye GPT'ye sordum, o da pat diye çözümü gösterdi.
Yöntem düşündüğümden çok daha basit ve verimliydi; gerçekten etkileyiciydi.
(Uzun süredir sadece backend geliştirdiğim için benim de çok bilgim yok tabii ^^;)
Aşağıdaki gibi eklediğinizde [renderer.js] içinden yazdırılan console.log() shell'e düzgün şekilde çıkıyor.

[main.js]  
// Log messages received from renderer  
ipcMain.on('renderer-log', (event, message) => {  
  console.log('Renderer Log:', message);  
});  
  
  
[preload.js]  
contextBridge.exposeInMainWorld('electronAPI', {  
  sendLog: (message) => ipcRenderer.send('renderer-log', message)  
});  
  
[renderer.js]  
// Override console.log to forward log messages to the main process.  
(function() {  
  const originalConsoleLog = console.log;  
  console.log = function(...args) {  
    if (window.electronAPI && typeof window.electronAPI.sendLog === 'function') {  
      window.electronAPI.sendLog(args.join(' '));  
    }  
    originalConsoleLog.apply(console, args);  
  };  
})();  
  
window.addEventListener('DOMContentLoaded', () => {  
  ...  
  console.log('Slideshow started...');  
 });  

1 yorum

 
enarche 2025-04-07

Binary dosyası şu anda yalnızca Windows sürümü için yüklendi.
macOS sürümü için Apple Developer Program’a yeniden katılmam gerektiğinden henüz hazır değil ^^;;;
Öncelikle, ihtiyacı olanlar kaynak kodunu indirip derleyerek kullanabilir~