Geliştiricilerin genellikle başarılı bir web uygulaması başlattıklarında konuştuğumda, kullanıcıların mutlu olduğunu ve trafik aldıklarını görmekteyim. Ancak kaçınılmaz olarak bir kullanıcı onlara e-posta gönderiyor: “Mobil uygulama ne zaman çıkacak? Mac masaüstü uygulamanız var mı?”
Tek başına çalışan bir geliştiriciyseniz, iOS için Swift, Android için Kotlin ve Windows için C++ öğrenmek imkansız hale gelebilir. Zaten bildiğiniz dili kullanmak istersiniz.
En büyük backend toplulukları olan Ruby on Rails ve Laravel (PHP) bu sorunun farkına vardılar. Her ikisi de bunu çözmek için muazzam açık kaynak araçlar yarattı. Rails, Hotwire Native’ı, Laravel topluluğu ise NativePHP’yi geliştirdi.
Ancak bu iki aracın arka planına baktığınızda, tamamen zıt mimari yaklaşımlar benimsediklerini göreceksiniz. Hotwire Native ile NativePHP’yi nasıl çalıştığı, avantaj ve dezavantajlarıyla birlikte özetleyelim.
1. Hotwire Native: “İnce İstemci” (Rails)
1. Hotwire Native: “İnce İstemci” (Rails)
Hotwire Native (eski adıyla Turbo Native), uygulamanızı iOS ve Android platformlarına taşımak için Rails’ın yaklaşımıdır.
Nasıl çalışır:
Bu bir “İnce İstemci”dir. Kullanıcı, uygulamanızı App Store’dan indirip açtığında, aslında yüksek optimizasyonlu, görünmeyen bir web tarayıcısını açmış olur.
Mobil uygulama, bir veritabanına sahip değildir. İş kuralları yoktur. Kullanıcı butona tıkladığında, uygulama canlı Rails sunucunuza bir istek gönderir, HTML alır ve görüntüler.
Sihir, tıklamaları yakaladığı ve gerçek yerel mobil animasyonlar (örneğin, ekran kaydırmaları ve yerel alt sekmeler) kullanarak sayfalar arasında geçiş yaparak sağlanır.
İyi Olanlar:
- Tek Kod Tabanı, Tek Veritabanı: Sadece bir Rails uygulamanız var. Fiyat sayfasındaki bir yazım hatasını düzeltirseniz, bu tüm web, iOS ve Android kullanıcıları için anında güncellenir. App Store incelemesine gerek yok.
- Hafif Uygulama Boyutu: Uygulama sadece bir kabuk olduğundan, indirme boyutu son derece küçüktür.
Kötü Olanlar:
- İnternet Gerektirir: Sunucu tüm işlemi yaptığından, kullanıcı hücresel bağlantıyı kaybederse, uygulama çalışmayı durdurur. Bu şekilde gerçek bir “Offline-First” uygulama inşa edemezsiniz.
2. NativePHP: “Yerel Sunucu” (Laravel)
2. NativePHP: “Yerel Sunucu” (Laravel)
NativePHP, piyasaya sürüldüğünde Laravel topluluğunu şaşırttı. Temelde, PHP uygulamalarını Mac ve Windows Masaüstü ortamlarına taşımak için inşa edildi.
Nasıl çalışır:
Hotwire’a zıt bir yaklaşım benimser. Bu bir “Kalın İstemci”dir.
Uygulamanızı NativePHP ile paketlediğinizde, Electron (veya Tauri) bir kabuk olarak kullanılır. Ama burada çılgın bir kısım var: Uygulamanın içinde tam bir PHP çalışma zamanı ve bir SQLite veritabanı paketlenir.
Kullanıcınız .dmg veya .exe dosyasını indirdiğinde, sessizce bilgisayarlarında mini bir sunucu yüklüyor. Bir butona tıkladıklarında, PHP kodu yerel olarak CPU üzerinde çalışır ve verileri sabit disklerinde yerel bir SQLite veritabanına kaydeder.
İyi Olanlar:
- Gerçek Offline Yeteneği: Uygulama, Wi-Fi olmaksızın mükemmel bir şekilde çalışır.
- Derin OS Entegrasyonu: NativePHP, işletim sistemiyle etkileşim kurmak için basit PHP yöntemleri sunar. Sistem tepsisi simgeleri oluşturabilir, yerel OS bildirimlerini tetikleyebilir ve yerel dosyaları kolayca okuyabilirsiniz.
Kötü Olanlar:
- Büyüklük Problemi: Her kullanıcıya bir tarayıcı, bir PHP çalışma zamanı ve bir veritabanı göndereceksiniz. Uygulama boyutu, yerel bir uygulamayla karşılaştırıldığında büyük olacaktır.
- Senkronizasyon Sorunu: Uygulamanızda bir bulut bileşeni varsa (örneğin, bilgisayar ve telefon arasında not senkronizasyonu), şimdi kullanıcının yerel SQLite veritabanını merkezi bulut veritabanınızla birleştirmek için son derece karmaşık bir mantık yazmanız gerekir.
Mimari Karşılaştırma
Mimari Karşılaştırma
Bu iki araç da mühendislik harikasıdır; ancak yalnızca tek bir geliştirici için çok farklı felsefeleri temsil eder.
Bir SaaS, Pazar Yeri veya Sosyal Ağ inşa ediyorsanız, Hotwire Native kesinlikle kazananıdır. Bir SaaS’de verilerin bulutta saklanması gerekir. Kullanıcının cihazındaki yerel bir veritabanı (NativePHP gibi) korkutucu veri senkronizasyonu sorunlarına yol açar. Hotwire Native ile tek bir Postgres veritabanı yönetirsiniz ve mobil uygulama sadece ona bakan güzel bir penceredir.
Bir Yardımcı Araç, Markdown Editörü veya Yerel Dosya Yöneticisi inşa ediyorsanız, NativePHP harika bir seçenektir. İnternet kesildiğinde bir markdown editörünün durmasını istemezsiniz. Bir PHP geliştiricisinin hızlı, çevrimdışı bir Mac uygulaması oluşturması, Swift veya Rust öğrenmeden, menü çubuğunda yer alması büyük bir başarıdır.
Özet
Özet
2026’da, çoklu platform uygulamaları yayınlamak için bir poliglot olmanıza gerek yok.
- Hotwire Native (Rails) kullanarak bulut tabanlı SaaS’inizi güzel, hafif bir mobil uygulamaya sarın.
- NativePHP (Laravel) kullanarak web becerilerinizi ağır, çevrimdışı çalışabilen bir masaüstü araca paketleyin.
Mobil veya masaüstü dilleri öğrenmek konusunda endişelenmeyi bırakın. Sevdiğiniz backend framework’ünü kullanmaya devam edin, topluluğun sizin için inşa ettiği sarf malzemelerini değerlendirin ve ürünlerinizi geliştirmeye devam edin.
Kaynak: Orijinal Makale


