MOBİL UYGULAMA NEDİR?

1999'da Nokia 7110 ile WAP tarayıcı cebimize girdiğinde, "mobil uygulama" denen şey sadece siyah-beyaz ekranda kıvrılan birkaç satır metindi. Bugün cebinizdeki cihazda yüz binlerce satırlık native kod, GPU shader'ları ve makine öğrenmesi modelleri çalışıyor. Bu iki nokta arasındaki yaklaşık yirmi yılda olan biten şey, sadece donanımın güçlenmesi değil; uygulama dağıtımının, geliştirici ekonomisinin ve kullanıcı beklentisinin tamamen yeniden tanımlanmasıydı.
1. Mobil Uygulamanın Tanımı
Mobil uygulama, akıllı telefon ve tablet gibi taşınabilir cihazlar üzerinde çalışmak üzere tasarlanmış yazılım parçacığıdır. Masaüstü programlardan farkı; dokunmatik girdi, sınırlı pil, değişken ağ koşulları ve arka planda yaşam döngüsü yönetimi gibi kısıtlar altında çalışmasıdır. Kavramın tarihsel gelişimi ve farklı kategorileri için ansiklopedik özet üzerinden de geniş bir perspektif edinilebilir. Bir mobil uygulamanın temel bileşenleri genellikle şunlardır:
- Kullanıcı arayüzü katmanı (Activity, ViewController, Composable)
- İş mantığı ve durum yönetimi
- Yerel veri saklama (SQLite, Room, Core Data)
- Ağ katmanı (REST, GraphQL, WebSocket)
- Platform servisleri (bildirim, konum, sensör erişimi)
2. WAP Dönemi: 1999-2003
Mobil uygulamaların atası WAP (Wireless Application Protocol) sayfalarıydı. WML (Wireless Markup Language) ile yazılan bu sayfalar, GSM şebekesinin dar bandında metin tabanlı içerik sunabiliyordu. WAP, bir uygulama değil aslında bir tarayıcı protokolüydü; ancak operatörler bunu "mobil servis" olarak pazarladı. Geliştirici için ekosistem yoktu — kullanıcı için ise sayfa başına ödenen veri ücreti vardı.
3. J2ME ve Symbian: Uygulama Fikrinin Doğuşu
2001'den itibaren Sun Microsystems'in Java 2 Micro Edition (J2ME) platformu, telefonlara MIDlet adı verilen ilk gerçek üçüncü taraf uygulamaları getirdi. Yılan oyunundan banka uygulamasına kadar her şey JAR dosyası olarak indirilebiliyordu. Aynı dönemde Nokia'nın Symbian OS'i, C++ ile yazılmış native uygulamaları destekledi. Ne var ki dağıtım kanalı parçalıydı: her operatör, her cihaz üreticisi farklı bir portal işletiyordu. Geliştirici, yüzlerce ekran çözünürlüğüne ayrı build hazırlamak zorunda kalıyordu.

4. 2008 Kırılması: iPhone SDK ve App Store
Apple, 2007'de iPhone'u tanıttığında geliştiricilere kapı kapalıydı; sadece web uygulamaları yazılabiliyordu. Mart 2008'de duyurulan iPhone SDK ve Temmuz 2008'de açılan App Store, mobil yazılım tarihinin kırılma noktasıydı. Üç şey aynı anda değişti:
- Tek bir dağıtım kanalı: geliştirici doğrudan kullanıcıya ulaşıyordu
- %70/30 gelir paylaşım modeli, ekonomiyi standartlaştırdı
- Cocoa Touch ve Objective-C, native performans ile dokunmatik arayüzü birleştirdi
Aynı yılın Ekim ayında Google, Android Market'i (bugünkü Google Play) açtı. Açık kaynak işletim sistemi + Java tabanlı geliştirme ortamı kombinasyonu, donanım üreticilerinin Android'i benimsemesini hızlandırdı. 2010'a gelindiğinde "app" kelimesi, bir nesil için yazılımın varsayılan formu haline gelmişti.
5. Native, Hybrid, Cross-Platform Ayrımı
Bugün mobil uygulama üç ana yaklaşımla geliştirilir. Native uygulamalar, platforma özgü dil ve SDK ile yazılır: iOS için Swift/SwiftUI, Android için Kotlin/Jetpack Compose. Hybrid uygulamalar, web teknolojilerini WebView içinde paketler (Cordova, Ionic). Cross-platform çerçeveler ise Flutter ve React Native gibi araçlarla tek kod tabanından iki platforma çıktı üretir. Kotlin tarafını derinlemesine öğrenmek için Android Kotlin eğitimi içeriğinden yararlanabilirsiniz.
6. Uygulama Dağıtımının Anatomisi
Bir mobil uygulama, mağazaya yüklenmeden önce imzalanmak zorundadır. iOS tarafında Apple'ın developer sertifikası ile, Android tarafında ise geliştiricinin kendi keystore dosyası ile yapılan imzalama, uygulamanın kimlik doğrulamasını sağlar. App Store inceleme süreci ortalama 24-48 saat sürerken, Google Play'in otomatize edilmiş incelemesi çoğu zaman birkaç saat içinde sonuç verir. İmzalanmış paket formatı iOS'ta .ipa, Android'de .apk veya .aab uzantısını taşır.

7. Mobil Uygulamanın Bugünkü Anlamı
2008'deki ilk App Store'da 500 uygulama vardı; bugün her iki mağazada toplam 5 milyondan fazla uygulama bulunuyor. Foreground/background ayrımı, push bildirim altyapısı, biyometrik kimlik doğrulama, ARKit ve Core ML gibi platform yetenekleri, mobil uygulamayı artık "küçük ekrana sığdırılmış web sayfası" tanımından çok ötede bir yere taşıdı. WAP sayfasındaki tek satır metinden, cihaz üzerinde çalışan dil modellerine uzanan bu hat, mobil yazılımın hâlâ olgunlaşmakta olduğunu gösteriyor — bugünün "native" tanımı, on yıl içinde başka bir şey olacak.
Sıkça Sorulan Sorular
Mobil uygulama ile mobil web sitesi arasındaki temel fark nedir?
Mobil web sitesi tarayıcı üzerinden çalışır ve sunucudan HTML çeker; mobil uygulama ise cihaza kurulur, native API'lere erişebilir, çevrimdışı çalışabilir ve dokunmatik dünyaya özgü etkileşimleri kullanabilir. Web sitesi dağıtımı URL ile, uygulama dağıtımı ise App Store/Google Play üzerinden yapılır.
J2ME uygulamaları neden bugünkü 'app' tanımına tam uymuyor?
J2ME MIDlet'leri sınırlı bir Java alt kümesi üzerinde çalışıyordu, dokunmatik ekran ve gerçek çok görevli ortam yoktu. Dağıtım kanalı operatöre bağlıydı, geliştirici ekonomisi standartlaşmamıştı. Bugünkü app kavramının iki temel sütunu olan birleşik mağaza ve native performans, J2ME döneminde mevcut değildi.
iPhone SDK'nın 2008'de açılması neden bir kırılma noktası olarak görülüyor?
İlk kez bir akıllı telefon üreticisi, tek bir SDK, tek bir mağaza ve tek bir gelir paylaşım modeli ile geliştiriciyi doğrudan kullanıcıya bağladı. Operatör kapısı ortadan kalktı. Bu yapı, modern uygulama ekosisteminin şablonu oldu; Android Market dahil sonraki tüm mağazalar bu modelin türevidir.
Native, hybrid ve cross-platform geliştirme arasında nasıl seçim yapılır?
Performans ve platform entegrasyonu kritikse native tercih edilir. Mevcut web ekibi varsa ve uygulama içerik ağırlıklıysa hybrid mantıklı olabilir. Tek kod tabanından iki platforma yayın yapmak isteyen ekipler için Flutter veya React Native gibi cross-platform çözümler genellikle iyi bir orta yol sunar.
APK ile AAB dosya formatı arasındaki fark nedir?
APK, Android'in geleneksel uygulama paketidir ve tüm cihaz mimarileri için kaynakları içerir. AAB (Android App Bundle) ise Google Play'in cihaza özel APK'ları runtime'da ürettiği yeni formattır. AAB ile indirme boyutu küçülür çünkü kullanıcı sadece kendi cihazına uygun mimarinin kaynaklarını alır.
Mobil uygulamada arka plan yaşam döngüsü neden bu kadar önemlidir?
Mobil cihazlar pil ve bellek kısıtı altında çalışır. İşletim sistemi, ön planda olmayan uygulamayı her an dondurabilir veya sonlandırabilir. Geliştirici bunu hesaba katarak durumu kaydetmek, ağ isteklerini iptal etmek ve geri dönüldüğünde tutarlı bir ekran sunmak zorundadır. Bu kısıt, masaüstünde nadiren karşılaşılan bir mimari sorundur.
Bir uygulamanın 'native' sayılması için ne yeterlidir?
Native uygulama, platformun resmi dili ve SDK'sı ile derlenmiş, doğrudan işletim sisteminin UI çatısını kullanan uygulamadır. iOS'ta Swift veya Objective-C ile UIKit/SwiftUI, Android'de Kotlin veya Java ile Android Framework kullanımı tipik göstergedir. WebView içinde render edilen arayüzler native sayılmaz.


