Mobil Uygulama Backend: Uygulamanın Arka Ucu, API ve Yönetim Paneli

Telefondaki uygulama işin görünen yüzüdür; verinin saklandığı, kuralların işletildiği ve panelden yönetildiği yer ise backend’dir. Katmanları ve doğru kurgunun önemini anlattık.

İçindekiler
  1. Mobil uygulama backend nedir?
  2. Arka ucu oluşturan temel katmanlar
  3. Backend olmadan uygulama olur mu?
  4. Hazır servis mi, özel backend mi?
  5. Sunucu, güvenlik ve ölçeklenme
  6. Bu işi nasıl birlikte yaparız?
  7. Sık sorulan sorular
  8. Sonuç

Bir müşteri “Uygulamayı yaptıralım, mağazaya koyalım, iş biter” dediğinde genellikle telefondaki ekranları düşünür. Oysa o ekranlardaki ürün listesi, kullanıcının sipariş geçmişi, kampanya fiyatı ya da randevu takvimi bir yerden gelmek zorundadır. Bu “bir yer” mobil uygulama backend katmanıdır. Bu yazıda arka ucun hangi parçalardan oluştuğunu, neden uygulamanın kendisi kadar önemli olduğunu ve planlarken nelere dikkat etmeniz gerektiğini anlatıyorum.

Mobil uygulama backend nedir?

Backend, kullanıcının görmediği ama uygulamanın çalışması için gereken her şeyi barındıran sunucu tarafıdır. Telefondaki uygulama (frontend) yalnızca veriyi gösterir ve kullanıcıdan girdi alır; veriyi saklamak, doğrulamak, hesaplamak ve diğer sistemlerle konuşmak backend’in işidir.

Basit bir benzetmeyle: uygulama restoranın salonuysa backend mutfaktır. Garson (uygulama) siparişi alır, mutfak (backend) hazırlar, kontrol eder ve geri gönderir. Salon ne kadar şık olursa olsun mutfak düzgün çalışmıyorsa müşteri memnun kalmaz.

Arka ucu oluşturan temel katmanlar

İyi kurgulanmış bir mobil uygulama backend genellikle şu parçalardan oluşur:

  • API: Uygulamanın sunucuyla konuştuğu kapı. “Ürünleri getir”, “sipariş oluştur”, “profilimi güncelle” gibi istekler buradan geçer.
  • Veritabanı: Kullanıcılar, ürünler, siparişler, randevular gibi tüm kayıtların tutulduğu yer.
  • İş kuralları: Stok sıfırsa sipariş alma, kampanya yalnızca ilk alışverişte geçerli, randevu saatleri çakışmasın gibi kuralların işletildiği kod.
  • Kimlik doğrulama ve yetkilendirme: Kimin giriş yaptığı ve neyi görmeye yetkili olduğu.
  • Yönetim paneli: İşletme ekibinin ürün, fiyat, içerik ve kullanıcıları yönettiği web arayüzü.
  • Bildirim ve entegrasyonlar: Push bildirim, SMS, ödeme, kargo, muhasebe gibi dış servislerle bağlantı.
  • Dosya depolama: Ürün görselleri, kullanıcıların yüklediği belgeler ve fotoğraflar.

API: uygulama ile sunucu arasındaki sözleşme

Mobil uygulamalarda en yaygın yaklaşım REST API’dir. Uygulama belirli bir adrese istek atar, sunucu da sonucu genellikle JSON biçiminde döner. Bu yapının temellerini REST API nedir yazısında ayrıntılı anlattım. Örneğin bir ürün isteğine dönen yanıt kabaca şöyle görünür:

{
  "id": 128,
  "ad": "Süzme Bal 850 g",
  "kategori": "bal",
  "stokta": true
}

Burada önemli olan, API’nin bir sözleşme gibi düşünülmesidir. Uygulama mağazada yayındayken API’de yapılan dikkatsiz bir değişiklik, güncellemeyi henüz indirmemiş kullanıcıların uygulamasını bozabilir. Bu yüzden sürümleme ve geriye dönük uyumluluk baştan planlanmalıdır.

Yönetim paneli: işletmenin kontrol odası

Birçok proje bütçesinde en çok küçümsenen kalem yönetim panelidir. Oysa uygulama yayına girdikten sonra her gün kullanacağınız şey paneldir: yeni ürün eklemek, fiyat güncellemek, siparişi onaylamak, bildirim göndermek, raporlara bakmak. Panel kullanışsızsa ekibiniz ya hata yapar ya da her küçük değişiklik için yazılımcıya muhtaç kalır.

Backend olmadan uygulama olur mu?

Olur, ama sınırlı kalır. Hesap makinesi, not defteri ya da internetsiz çalışan basit bir oyun backend’e ihtiyaç duymayabilir. Fakat şu durumlardan biri varsa bir arka uç kaçınılmazdır:

  • Kullanıcılar hesap açıp giriş yapacaksa,
  • İçerik (ürün, fiyat, menü, duyuru) uygulama güncellemesi beklemeden değişecekse,
  • Birden fazla kullanıcının verisi bir araya gelecekse (sipariş, randevu, mesaj),
  • Ödeme alınacaksa ya da başka sistemlerle veri alışverişi yapılacaksa,
  • Push bildirim gönderilecekse.

Somut bir örnek: kuyumcular için geliştirdiğim altın fiyatları eklentisi ve mobil uygulama projesinde Flutter uygulaması fiyatları doğrudan kaynaktan değil, önbellekli bir REST API’den alır. Kaynağa erişilemediği anda bile uygulama son geçerli fiyatı göstermeye devam eder. Bu dayanıklılık tamamen arka uçtaki tasarım kararından gelir.

Hazır servis mi, özel backend mi?

Bugün Firebase gibi “hazır backend” servisleriyle kimlik doğrulama, veritabanı ve dosya depolamayı hızlıca kurmak mümkün. Özel yazılmış bir backend ise daha fazla emek ister ama kontrol sizde kalır. İkisini kabaca şöyle karşılaştırabiliriz:

Ölçüt Hazır backend servisi Özel backend
Başlangıç hızı Hızlı Daha uzun
Karmaşık iş kuralları Sınırlı ya da dolambaçlı İhtiyaca göre yazılır
Maliyet öngörüsü Kullanım arttıkça değişken Sunucu maliyeti daha öngörülebilir
Veri ve kod sahipliği Sağlayıcıya bağlı Tamamen sizde
Mevcut sistemlerle entegrasyon Ek çalışma gerekir Doğrudan kurgulanır

Fikri test eden küçük bir ilk sürüm için hazır servis mantıklı olabilir. Muhasebe, stok ya da mevcut web sitenizle derin entegrasyon gerekiyorsa özel backend çoğu zaman uzun vadede daha sağlıklıdır. Hazır servislerin güncel fiyat ve limitlerini mutlaka sağlayıcının sitesinden kontrol edin.

Sunucu, güvenlik ve ölçeklenme

Backend’in nerede çalışacağı da önemli bir karardır. Ben genellikle bir VPS üzerinde Docker konteynerleriyle çalışan, önünde Nginx bulunan bir yapı kuruyorum; böylece API, veritabanı ve panel birbirinden ayrılmış ama tek sunucuda düzenli biçimde yaşar. Bu yaklaşımın temellerini Docker nedir yazısında bulabilirsiniz.

Güvenlik tarafında ise arka uç, uygulamanın en kritik halkasıdır. Telefondaki uygulama her zaman kurcalanabilir kabul edilmeli; fiyat, indirim ya da yetki kontrolü asla yalnızca uygulamada yapılmamalı, sunucuda tekrar doğrulanmalıdır. Kimlik doğrulama, istek sınırlama ve şifreli iletişim konularını API güvenliği yazısında ele aldım.

Bu işi nasıl birlikte yaparız?

Mobil uygulama backend projelerinde süreç, ekranlardan önce veriden başlar:

  1. İhtiyacı dinleme: Uygulamanın hangi verileri göstereceğini, kimlerin neyi yöneteceğini ve hangi sistemlerle konuşacağını birlikte çıkarırız.
  2. Veri modeli ve kapsam: Tabloları, API uç noktalarını ve panel ekranlarını kabaca listeler, buna göre teklif hazırlarım.
  3. Geliştirme ve test: Önce API ve paneli kurar, uygulama ekranlarını bu API’ye bağlarım. Test ortamında gerçek senaryolarla deneriz.
  4. Yayın ve destek: Sunucuyu kurar, yedekleme ve izlemeyi ayarlar, yayın sonrası güncellemeleri birlikte planlarız.

Mevcut bir uygulamanız varsa ve arka ucu yeniden kurmak ya da genişletmek istiyorsanız iletişim sayfasından durumu anlatmanız yeterli.

Sık sorulan sorular

Mevcut web sitemin altyapısı mobil uygulamanın backend’i olabilir mi?

Çoğu zaman evet. Örneğin WordPress veya WooCommerce tabanlı bir sitenin REST API’si uygulamaya veri sağlayabilir. Ancak performans, yetkilendirme ve mobil özel ihtiyaçlar için genellikle ek uç noktalar yazmak gerekir.

Backend için hangi programlama dili kullanılmalı?

Node.js, PHP (Laravel), Python gibi seçeneklerin hepsi işi görür. Belirleyici olan dil değil; ekibin hâkimiyeti, mevcut sistemlerle uyum ve bakım kolaylığıdır.

Yönetim paneli ayrı bir proje mi?

Teknik olarak backend’in parçasıdır ama ayrı bir web arayüzü olarak tasarlanır. Kapsamı ve bütçesi projede ayrı kalem olarak düşünülmelidir.

Kullanıcı sayısı artarsa backend’i baştan mı yazmak gerekir?

Baştan doğru kurgulanmış bir backend genellikle sunucu kaynağı artırılarak ya da bazı parçalar ayrıştırılarak büyür. Tamamen yeniden yazma ihtiyacı çoğunlukla aceleyle kurulmuş yapılarda ortaya çıkar.

Sonuç

Mobil uygulama backend, uygulamanızın görünmeyen ama her şeyi taşıyan omurgasıdır; ekranlar kadar özenle planlanmalıdır. Doğru kurulmuş bir API ve kullanışlı bir panel, yayından sonraki yıllarda size zaman ve para kazandırır. Projenizin arka ucunu konuşmak isterseniz bana yazabilirsiniz.