UniFandora - mini slayt gösterisi (görsel, GIF, video)
(github.com/enarche-ahn)İ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
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~