Go ve Wails v3: Electron’un Hantallığına Son Veren 15MB’lık Ultra Hafif Uygulamalar
Go ve Wails v3: Electron’un Hantallığına Son Veren 15MB’lık Ultra Hafif Uygulamalar
Günümüzde masaüstü uygulama geliştirmek denildiğinde akla ilk gelen teknoloji genellikle Electron oluyor. Slack, VS Code, Discord, Spotify gibi her gün kullandığımız devasa uygulamaların arkasında hep Electron var. Ancak Electron ile uygulama geliştirmenin geliştiriciler ve kullanıcılar için çok ağır bir bedeli var: Yüksek RAM tüketimi ve devasa dosya boyutları. Sadece ekrana "Merhaba Dünya" yazdıran boş bir Electron uygulaması bile bugün 100 MB'ın üzerinde yer kaplıyor ve arka planda yüzlerce megabayt RAM tüketiyor.
İşte tam bu noktada, Go (Golang) topluluğunun geliştirdiği Wails, bu hantal yapıya adeta bir savaş açıyor. Özellikle Wails v3 sürümüyle birlikte, sadece masaüstü değil, mobil (Android & iOS) platformları da hedefleyen, 15MB civarında ultra hafif ve yüksek performanslı uygulamalar geliştirmek artık hayal değil.
Bu yazımızda, Wails v3'ün getirdiği yenilikleri, Electron'un hantal yapısına karşı nasıl bir alternatif sunduğunu ve Go gücüyle nasıl modern uygulamalar geliştirebileceğinizi inceleyeceğiz.
Electron Neden Bu Kadar Hantal?
Wails'in sunduğu çözümü anlamak için önce Electron'un neden bu kadar ağır olduğunu anlamamız gerekir. Electron, yazdığınız JavaScript/TypeScript kodunu çalıştırabilmek için her uygulamanın içerisine iki devasa bileşen gömer:
- Chromium Tarayıcısı: Uygulamanızın arayüzünü (HTML/CSS) render etmek için tam teşekküllü bir tarayıcı motoru.
- Node.js: Arka planda dosya sistemine, ağa ve işletim sistemi API'lerine erişmek için bir runtime.
Bu durum, kullanıcının bilgisayarında zaten bir tarayıcı olmasına rağmen, yüklediği her Electron uygulaması için bilgisayarına yeni bir tarayıcı daha kurması anlamına gelir. Sonuç: Şişkin disk boyutları ve RAM'i sömüren uygulamalar.
Wails Nedir ve Nasıl Çalışır?
Wails, Go dilinin hızını ve güvenliğini, modern web teknolojilerinin (HTML, CSS, JS/TS) esnekliğiyle birleştiren açık kaynaklı bir framework'tür.
Wails'in en büyük sırrı, kendi içine bir tarayıcı (Chromium) gömmek yerine, işletim sisteminin halihazırda sahip olduğu yerleşik webview (Native Webview) mekanizmasını kullanmasıdır:
- Windows'ta: Microsoft Edge WebView2
- macOS & iOS'ta: WebKit (Safari motoru)
- Linux'ta: WebKitGTK
- Android'te: Android System WebView
Bu sayede uygulamanızın içine ekstra bir tarayıcı motoru eklenmez. Uygulama boyutu 10MB - 15MB seviyelerine düşerken, RAM kullanımı da Electron'a kıyasla %80'e varan oranlarda azalır.
Wails v3 Devrimi: Artık Sadece Masaüstü Değil, Mobil de Var!
Wails v2 zaten masaüstü dünyasında rüzgarlar estiriyordu. Ancak Wails v3 sürümü, bu ekosistemi tamamen değiştirecek devasa yeniliklerle geldi.
1. Yerel Mobil Desteği (Android ve iOS)
Wails v3 ile birlikte artık aynı kod tabanını kullanarak hem masaüstü (Windows, macOS, Linux) hem de mobil (Android, iOS) uygulamalar derleyebilirsiniz. Go ile yazdığınız arka plan mantığı ve React, Vue veya Svelte ile yazdığınız ön yüz, mobil cihazlarda da yerel webview üzerinde sorunsuz bir şekilde çalışır.
2. Gelişmiş Pencere ve Menü Yönetimi
v3 sürümüyle birlikte çoklu pencere (multi-window) yönetimi, sistem tepsisi (system tray) entegrasyonları, yerel menüler ve karanlık/aydınlık mod algılama gibi işletim sistemi seviyesindeki özellikler çok daha kararlı ve performanslı hale getirildi.
3. Yenilenmiş Binding (Bağlama) Sistemi
Go fonksiyonlarınızı frontend tarafına aktarmak (bind etmek) v3 ile çok daha kolay. Wails, Go kodlarınızı analiz ederek frontend için otomatik olarak TypeScript tanımları (types) üretir. Bu sayede frontend tarafında çalışırken tam bir "Type-Safe" (tip güvenli) deneyim yaşarsınız.
Neden Wails v3 Tercih Etmelisiniz?
| Özellik | Electron | Tauri (Rust) | Wails v3 (Go) |
|---|---|---|---|
| Minimum Dosya Boyutu | ~100 MB | ~10 MB | ~15 MB |
| RAM Tüketimi | Çok Yüksek | Düşük | Düşük |
| Arka Plan Dili | JavaScript/Node.js | Rust | Go (Golang) |
| Öğrenme Eğrisi | Kolay | Zor (Rust ownership) | Kolay (Go sadeliği) |
| Mobil Desteği | Yok (Ek araçlar gerekir) | Var (v2 ile) | Var (v3 yerleşik) |
Go Dilinin Getirdiği Avantajlar
Rust tabanlı Tauri de harika bir alternatif olsa da, Rust dilinin öğrenme eğrisi oldukça diktir. Go ise sadelik, okunabilirlik ve yüksek eşzamanlılık (concurrency - Goroutines) özellikleriyle bilinir.
Go ile yazılan bir backend: * Çok hızlı derlenir. * Goroutine'ler sayesinde binlerce asenkron işlemi sıfır gecikmeyle yönetebilir. * Bellek yönetimini (Garbage Collector) sizin yerinize yapar, böylece bellek sızıntılarıyla (memory leak) uğraşmazsınız.
Wails ile Geliştirmeye Hızlı Bir Başlangıç
Wails ile proje geliştirmek oldukça zahmetsizdir. Sisteminizde Go ve Node.js kuruluysa, aşağıdaki adımlarla dakikalar içinde ilk uygulamanızı ayağa kaldırabilirsiniz.
1. Wails CLI Kurulumu
go install github.com/wailsapp/wails/v2/cmd/wails@latest
(Not: v3 şu anda aktif geliştirme aşamasında/alpha-beta sürecindedir. v3 özelliklerini denemek için v3 reposunu takip edebilirsiniz).
2. Yeni Bir Proje Oluşturma
Wails; React, Vue, Svelte, Vanilla JS gibi birçok frontend framework'ünü hazır şablon olarak destekler. Örneğin, Svelte ve Tailwind kullanan bir proje oluşturmak için:
wails init -n ilk-uygulamam -t svelte
3. Proje Yapısı
Oluşturulan proje klasöründe iki ana dünya göreceksiniz:
* main.go ve app.go: Uygulamanızın işletim sistemiyle konuşan, veri tabanına erişen Go tarafı.
* frontend/: React, Vue veya Svelte kodlarınızın yer aldığı, arayüzü tasarladığınız web tarafı.
4. Uygulamayı Geliştirme Modunda Çalıştırma
Aşağıdaki komut, uygulamanızı "Hot Reload" (canlı yenileme) modunda başlatır. Frontend veya Go kodunda yaptığınız her değişiklik anında ekrana yansır:
wails dev
5. Üretim (Production) İçin Derleme
Uygulamanız hazır olduğunda, tek bir komutla hedef işletim sistemine uygun, optimize edilmiş ve sıkıştırılmış tek bir çalıştırılabilir dosya (binary) elde edersiniz:
wails build
Bu işlem sonucunda build/bin klasöründe sadece ~15MB boyutunda, çift tıklayıp çalıştırabileceğiniz uygulamanız hazır olacaktır!
Sonuç: Masaüstü ve Mobilin Geleceği "Hafif" Olacak
Kullanıcılar artık bilgisayarlarını ve telefonlarını yoran, pillerini hızla tüketen hantal uygulamalardan sıkıldı. Wails v3, Go'nun muazzam performansını ve sadeliğini, web teknolojilerinin esnekliğiyle birleştirerek bu soruna harika bir reçete sunuyor.
Eğer siz de hem masaüstünde hem de mobilde çalışacak, performanstan ödün vermeyen ve sadece 15MB yer kaplayan modern uygulamalar geliştirmek istiyorsanız, Wails v3 dünyasına adım atmak için en doğru zamandasınız.
Siz bu konuda ne düşünüyorsunuz? Electron'un hantallığından kurtulma vakti geldi mi? Yorumlarda düşüncelerinizi paylaşın!