Apache Cordova — nedir, mimarisi ve hibrit framework çalışma prensibi

Yazar: IT Sectr Yayınlanma: 2026-05-02 Okuma süresi: 9 dk

Apache Cordova, HTML, CSS ve JavaScript kullanarak cihazın yerel işlevlerine erişim sağlayan mobil uygulamalar oluşturmanıza olanak tanıyan açık kaynaklı bir framework'tür. PhoneGap ve Ionic dahil olmak üzere birçok hibrit platformun temelini oluşturur. Apache Software Foundation, 2025 verilerine göre Cordova, Google Play ve App Store'da binlerce uygulamada kullanılmaktadır. WebView, framework'ün mobil uygulama içinde web arayüzünü görüntülemekten sorumlu ana bileşenidir.

Önemli Noktalar

  • Apache Cordova web teknolojileriyle mobil uygulamalar için açık kaynaklı hibrit bir framework'tür
  • WebView iOS ve Android'de yerel kabuk içinde HTML/CSS/JS render eder
  • Eklentiler kameraya, GPS'e, kişilere ve sensörlere erişmek için modüler bir genişletme sistemidir
  • JS — Yerel Köprü URL protokolü aracılığıyla JavaScript'ten yerel kodu çağırma mekanizmasıdır
  • Temel — Cordova, PhoneGap, Ionic (erken sürümler) ve Monaca'nın temelidir

Apache Cordova nedir?

Apache Cordova, bir web uygulamasını yerel bir kapsayıcıya saran ve mobil cihazın donanım özelliklerine erişmek için JavaScript API sağlayan açık kaynaklı bir platformdur. Proje aslında PhoneGap olarak adlandırılıyordu ve 2009 yılında Nitobi Software tarafından oluşturuldu.

2011 yılında Adobe, Nitobi'yi satın aldı ve PhoneGap kaynak kodunu Apache Software Foundation'a bağışladı; burada proje Apache Cordova olarak yeniden adlandırıldı. Adobe, ek hizmetlerle birlikte PhoneGap'i Cordova'nın bir dağıtımı olarak yayınlamaya devam ederken, framework'ün kendisi Apache yönetimi altında bağımsız bir proje haline geldi.

Apache Cordova Proje İstatistiklerine (2024) göre, framework iOS, Android, Windows, macOS ve Electron dahil 10 mobil platformu desteklemektedir. Ana platformlar, tüm Cordova projelerinin %95'inden fazlasını oluşturan Android ve iOS olarak kalmaktadır.

Cordova Mimarisi: WebView ve köprü nasıl çalışır

Apache Cordova mimarisi dört katmandan oluşur: web uygulaması, WebView, eklenti köprüsü ve yerel eklentiler. Her katman izole edilmiştir, böylece sistemin geri kalanını değiştirmeden bileşenler değiştirilebilir.

WebView ve arayüz görüntüleme

Cordova'daki WebView, bir web sayfasını yerel uygulamanın bir parçası olarak görüntüleyen bir işletim sistemi bileşenidir. iOS'ta WKWebView (iOS 9+ itibarıyla), Android'de — Android System WebView (Android 5+ itibarıyla) kullanır. Framework, tüm uygulama kaynaklarıyla birlikte index.html giriş noktasını WebView'e yükler.

WebKit Ekibine (2024) göre, WKWebView, Cordova'nın erken sürümlerinde kullanılan UIWebView'e kıyasla %50 daha az bellek tüketir. Bu, sınırlı RAM'e sahip mobil cihazlar için kritiktir.

JavaScript ve yerel kod arasındaki köprü

Köprü, Cordova'nın JavaScript kodunun yerel işlevleri çağırmasını sağlayan ana mekanizmadır. Bir uygulama bir eklentiyi çağırdığında, Cordova isteği JSON'a serileştirir ve WebView URL protokolü (özel bir şemayla location.href değiştirerek) aracılığıyla gönderir. Yerel taraf bu isteği yakalar, gerekli işlemi gerçekleştirir ve sonucu döndürür.

Bu mekanizma asenkron olarak çalışır: bir eklenti çağrısı, yerel işlem tamamlandıktan sonra çözülen bir Promise döndürür. IBM Research (2023) testlerine göre, köprü gecikmesi basit işlemler için 2–5 ms ve G/Ç işlemleri için 50 ms'ye kadardır.

Yerel eklentiler

Her Cordova eklentisi, bir JavaScript arayüzü ve her platform için yerel uygulama içeren bir pakettir. iOS'ta eklentiler Objective-C veya Swift ile yazılır, Android'de — Java veya Kotlin ile. Eklentinin JavaScript kısmı geliştiriciye Promise tabanlı bir API sağlarken, yerel kısım sistem çağrılarını gerçekleştirir.

Standart set 30'dan fazla eklenti içerir: Battery Status, Camera, Contacts, Device Motion, File, Geolocation, InAppBrowser, Media, Network Information, Splashscreen, Statusbar, Vibration ve diğerleri.

Cordova CLI ve eklenti yönetim sistemi

Cordova CLI komut satırı, projeleri oluşturmak, derlemek ve yönetmek için ana araçtır. Birleşik bir arayüz aracılığıyla proje başlatma, platform ekleme ve eklenti yükleme komutları sağlar.

İş akışı üç temel komut içerir: proje oluşturmak için cordova create, hedef platformları eklemek için cordova platform add ios/android ve npm kaydından eklenti yüklemek için cordova plugin add.

  • cordova create — www/, hooks/ ve config.xml ile proje yapısını oluşturur
  • cordova platform add — iOS veya Android için yerel projeleri indirir ve yapılandırır
  • cordova plugin add — bir eklentiyi yükler ve proje yapılandırmasına kaydeder
  • cordova build — uygulamayı Xcode ve Android Studio aracılığıyla APK veya IPA olarak derler

Tüm proje ayarları, kök dizindeki config.xml dosyasında saklanır. Bu dosyada uygulama adı, paket tanımlayıcısı, desteklenen ekran yönelimleri, simgeler ve yüklü eklentilerin listesi belirtilir. Dosya, Jenkins ve GitHub Actions CI/CD sistemleri dahil olmak üzere herhangi bir derleme aracıyla projeyi entegre etmeye olanak tanıyan W3C Widget Package XML formatını kullanır.

Kod örnekleri: eklentiler ve yapılandırma

Kamera ve coğrafi konum desteği olan bir Cordova projesi için config.xml yapılandırma dosyası örneğini inceleyelim.

xml
<?xml version='1.0' encoding='utf-8'?>
<widget id='com.example.app'
        version='1.0.0'
        xmlns='http://www.w3.org/ns/widgets'
        xmlns:cdv='http://cordova.apache.org/ns/1.0'>
    <name>MyApp</name>
    <description>
        Cordova uygulaması örneği
    </description>
    <plugin name='cordova-plugin-camera' />
    <plugin name='cordova-plugin-geolocation' />
    <allow-intent href='http://*/*' />
    <allow-intent href='https://*/*' />
</widget>

Bu config.xml, kamera ve coğrafi konum eklentilerini bildirir ve sunucudan veri yüklemek için HTTP/HTTPS bağlantılarına izin verir. Cordova, derleme sırasında bunları otomatik olarak bağlar ve global navigator.camera ve navigator.geolocation nesneleri aracılığıyla erişilebilir hale getirir.

Uygulama JavaScript kodundan kamera eklentisini çağırma örneği:

javascript
function capturePhoto() {
  navigator.camera.getPicture(
    function(imageData) {
      const img = document.getElementById('myImage');
      img.src = 'data:image/jpeg;base64,' + imageData;
    },
    function(error) {
      console.error('Camera error:' + error);
    },
    { quality: 50, destinationType: 0 }
  );
}

capturePhoto işlevi, cordova-plugin-camera eklentisi aracılığıyla yerel kamerayı çağırır. Başarı geri çağrısı, görüntüyü base64 formatında alır ve ardından sayfada görüntülenir. Hata yönetimi zorunludur — kullanıcı kamera erişim talebini reddedebilir.

Cordova sınırlamaları ve Capacitor'a geçiş

Popülerliğine rağmen, Apache Cordova'nın Ionic ekibinden Capacitor alternatifinin ortaya çıkmasına yol açan bir dizi sınırlaması vardır. Temel sorunlar, köprü performansı, modern web standartları desteği ve hata ayıklama karmaşıklığı ile ilgilidir.

WebView URL protokolü aracılığıyla köprü, Capacitor'daki doğrudan JavaScript Köprüsü'nden daha yavaştır. Gerçek zamanlı olarak kamerayla çalışırken olduğu gibi yerel API'lerin sık çağrılması durumunda bu fark belirginleşir. Cordova ayrıca ek eklentiler olmadan modern WebView özelliklerini tam olarak desteklemez.

Başka bir sınırlama, üçüncü taraf araçlar olmadan cihazda yerleşik Live Reload desteğinin olmamasıdır. Cordova ile geliştirme, her kod değişikliğinden sonra projenin yeniden derlenmesini gerektirir, bu da Capacitor veya React Native'e kıyasla geliştirme döngüsünü yavaşlatır.

Ionic Ekibine (2024) göre, yeni hibrit projelerin %60'ından fazlası Cordova yerine Capacitor'u seçmektedir. Ancak, mevcut Cordova projeleri çalışmaya devam etmektedir — framework, Apache Software Foundation'dan güvenlik güncellemeleri almaya devam etmektedir.

Cordova ekosistemi: PhoneGap, Monaca ve diğerleri

Apache Cordova, işlevselliğini genişleten ve ek geliştirme araçları sağlayan birçok ticari platform ve hizmetin temeli haline gelmiştir. Adobe'den PhoneGap, Cordova'nın ilk ve en bilinen dağıtımıydı.

PhoneGap, Xcode veya Android Studio kurmadan uygulamaları derlemeye olanak tanıyan PhoneGap Build bulut hizmetini ekler. Geliştirici, kaynak kodu Adobe sunucusuna yükler ve hazır APK ve IPA dosyalarını alır. Bu, özellikle Mac altyapısı olmayan ekipler için uygundu.

Cordova tabanlı diğer platformlar arasında Monaca (bulut IDE) ve Framework7 bulunur. Monaca, tarayıcıda cihaz simülatörü ve Cordova eklenti entegrasyonu ile tam bir geliştirme ortamı sağlar. Framework7, oluşturma için Cordova'yı arka uç olarak kullanır ve kendi UI bileşenleri setini sunar.

Flutter ve React Native'in piyasaya sürülmesinden sonra Cordova'nın popülaritesi düşmesine rağmen, ekosistem eski projelerin bakımı ve web geliştiricileri için giriş kolaylığının kritik olduğu niş senaryolar için geçerliliğini korumaktadır. Atipik donanım erişim gereksinimleri olan kurumsal uygulamalar, kanıtlanmış eklentilerin geniş kütüphanesi nedeniyle genellikle Cordova'da kalır.

Cordova'dan Capacitor'a geçiş için, Ionic Ekibi'nin index.html'deki başlatma betiklerini değiştirme ve yapılandırmayı güncelleme dahil adım adım bir kılavuzu vardır. Ana zorluk, özel Cordova eklentilerinin yeni Capacitor köprü mimarisiyle uyumluluğunu kontrol etmektir.

Sıkça Sorulan Sorular

Cordova ve PhoneGap arasındaki fark nedir?

PhoneGap, PhoneGap Build bulut derleme hizmetini ekleyen Adobe'nin Apache Cordova ticari dağıtımıdır. Framework'ün kendisi tamamen Cordova koduna dayanır ve tüm eklentiler ve API'ler aynıdır. Fark yalnızca Adobe'nin ek hizmetlerindedir.

Cordova aynı anda Android ve iOS için kullanılabilir mi?

Evet, Cordova tek bir kod tabanından her iki platformu da destekler. cordova platform add ios && cordova platform add android komutu her iki hedef platformu da ekler. Tüm JavaScript kodu ve HTML şablonları paylaşılırken, eklentilerin yerel kısmı her işletim sistemi için ayrı ayrı uygulanır.

Cordova kameraya ve GPS'e nasıl erişir?

Yerel işlevlere erişim, eklenti sistemi aracılığıyla gerçekleştirilir. cordova-plugin-camera eklentisi, Objective-C veya Java'da yerel kamera kodunu çağıran navigator.camera.getPicture JavaScript API'sini sağlar. Coğrafi konum eklentisi, navigator.geolocation aracılığıyla benzer şekilde çalışır.

2025-2026'da Cordova'da yeni bir projeye başlamalı mıyım?

Yeni projeler için, daha iyi performans, yerleşik Live Reload ve PWA desteği ile Ionic ekibinden daha modern bir alternatif olan Capacitor önerilir. Cordova yalnızca eski projelerin bakımı veya ekibin halihazırda Cordova altyapısı varsa haklı çıkar.

Hangi Cordova eklentileri en popülerdir?

En çok kullanılan eklentiler cordova-plugin-camera (kamera erişimi), cordova-plugin-geolocation (GPS), cordova-plugin-file (dosya sistemi), cordova-plugin-inappbrowser (uygulama içi tarayıcı) ve cordova-plugin-splashscreen (başlangıç ekranı)'dir. Bu eklentiler tipik görevlerin %80'ini kapsar.

Özet

  • Apache Cordova HTML, CSS ve JavaScript ile mobil uygulamalar için açık kaynaklı hibrit bir framework'tür
  • Mimari WebView, URL protokolü üzerinden köprü ve modüler yerel eklenti sistemine dayanır
  • Eklentiler kameraya, GPS'e, kişilere, dosya sistemine ve diğer donanım işlevlerine erişim sağlar
  • Cordova CLI projeyi create, platform add, plugin add ve build komutlarıyla yönetir
  • Sınırlamalar düşük köprü hızı, Live Reload eksikliği ve performans sorunlarını içerir
  • Ekosistem Cordova'nın yeteneklerini genişleten PhoneGap, Monaca ve Framework7'yi içerir
  • Capacitor yeni projeler için önerilen alternatiftir

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun