← Nesim Apps

"Diğer Oyunlarım" İçin Sunucusuz Uzak Liste: GitHub Pages'te Tek JSON Dosyası

Nesim Razon, bağımsız Android geliştiricisi · 2026-11-14

#Geliştirici notları#Android

Oyunlarımın her birinde diğerlerini tanıtan bir "Diğer oyunlarım" penceresi var. Bir süre bu liste her uygulamanın içine gömülüydü; yani yeni bir oyun çıkarmak, eskilerin hepsine güncelleme çıkarmayı zorunlu kılıyordu. Onu GitHub Pages'teki tek bir JSON dosyasıyla değiştirdim. İşte nasıl çalıştığı ve onu güvenli tutan sınırlar.

Uygulamanın içindeki listenin sorunu

Uygulamaya gömülü bir liste yazması kolay, bakımı zor bir şeydir. Her yeni oyun yeni kod, yeni ikonlar ve her eski oyun için yeni bir sürüm demekti; o sürümlerin her biri incelemeden geçer. Yaklaşık bir düzine oyunla, tanıtım penceresi her çıkışın en yavaş parçasıydı.

GitHub Pages'te tek dosya

Liste artık web sitemin yanında duran statik bir dosya ve oyun başına küçük bir ikon. Her kayıtta kısa bir anahtar, oyun adı, Android paket adı, bir ikon yolu ve dil başına bir açıklama var. Uygulamalar açıklamayı telefonun dilinde okuyor, olmazsa İngilizceye düşüyor.

Küçük bir betik dosyayı üretiyor. Oyun başına bir satır tutuyor, her ikonu sabit küçük bir boyuta getiriyor ve her şeyi yazıyor. Oyun eklemek bir satır eklemek, betiği çalıştırmak ve göndermek demek. Bunun için eski uygulamaların hiçbirine sürüm gerekmiyor.

Uygulama bunu nasıl kullanıyor

Uygulama en fazla 48 saatte bir listeyi arka plan iş parçacığında indirip telefona kaydediyor. Pencere her zaman kayıtlı kopyayı okuyor. Telefon hiç çevrimiçi olmadıysa ya da dosya bozuksa uygulama, uygulamanın içinde gelen liste kopyasına ve ikonlara düşüyor.

İkonu bulunmayan bir kayıt, gri bir kare göstermek yerine atlanıyor ve oyun kendini hiç listelemiyor.

Güvenli tutan kontroller

Liste yalnızca bir mağaza sayfası açabilir, yine de onu güvenilmez girdi sayıyorum.

Doğru sırayla yazmak

Uygulama önce ikonları indirip kaydediyor, liste dosyasını ancak ondan sonra kaydediyor. Böylece kayıtlı liste hiçbir zaman eksik bir ikonu göstermiyor. Yeni liste kaydedilince küçük bir sayaç değişiyor ve açık bir pencere kendini yeniliyor; bu, ilk açılışın boş pencere göstermesi durumunu düzeltti.

Yine de değiştirmek isteyeceklerim

Yeni bir oyun bir sonraki yenilemeden sonra görünüyor; bu iki güne kadar ve pencerenin bir sonraki açılışına kadar sürebilir, yani anlık değil. Listenin kendine ait bir kullanım sayımı yok; tıklamaları uygulamalar sayıyor. Ve her şey tek bir sunucuya bağlı, gömülü yedeğin önemi de bu yüzden.

Sık sorulan sorular

Yeni bir oyun eklemek eski uygulamaların güncellenmesini gerektirir mi?

Hayır. Uygulamalar listeyi çevrimiçi bir JSON dosyasından okuyor; dosyaya bir satır ekleyip yayınlamak yeterli.

Telefon çevrimdışıyken ne olur?

Uygulama son kaydedilmiş kopyayı kullanır; listeyi hiç indirmediyse uygulamanın içinde gelen kopyayı.

Uygulama listeyi ne sıklıkla yeniliyor?

En fazla 48 saatte bir, arka plan iş parçacığında.

Liste zararlı bir şeyi açmak için kötüye kullanılabilir mi?

Yalnızca mağaza sayfalarını açabilir ve indirmeler, boyutlar, anahtarlar ve paket adları kullanılmadan önce kontrol edilir.

Diğer yazılar