PhoneGap, Adobe'nin Apache Cordova ticari dağıtımıdır ve HTML, CSS ve JavaScript kullanarak mobil uygulamalar oluşturmayı sağlar, yerel SDK'lar olmadan bulutta derleme imkanı sunar. Platform, bilinen ilk hibrit framework haline geldi ve çapraz platform geliştirmenin popülerleşmesinde kilit rol oynadı. Adobe PhoneGap, 2024'e göre, platformun varlığı süresince 1 milyondan fazla uygulama oluşturuldu. PhoneGap Build, Xcode veya Android Studio kurmadan APK ve IPA'ya derleme yapan Adobe'nin ana hizmetidir.
Önemli noktalar
PhoneGap, ilk olarak 2009 yılında Nitobi Software tarafından oluşturulmuş bir mobil uygulama geliştirme platformudur. 2011 yılında Adobe, Nitobi'yi satın aldı ve PhoneGap'i ticari bir ürün olarak yayınladı, framework çekirdeğini Apache Software Foundation'a Cordova adıyla devretti.
PhoneGap, 2008 yılında iPhoneDevCamp konferansında oluşturuldu ve Nitobi Software geliştiricileri web uygulamalarını yerel bir kapsayıcıya sarma teknolojisini sergiledi. İlk halka açık sürüm 2009'da yayınlandı ve Objective-C öğrenmeden mobil pazara girmenin yollarını arayan web geliştirici topluluğunun dikkatini hemen çekti.
PhoneGap'in temel yeniliği, geliştiricilerin tanıdık web teknolojilerini — HTML, CSS ve JavaScript — kullanarak uygulama mağazaları aracılığıyla cihaza yüklenen ve kamera, GPS, kişiler ve ivmeölçer gibi yerel özelliklere erişebilen uygulamalar oluşturabilmesiydi.
Adobe Developer Relations (2015)'e göre, zirve döneminde dünya çapında 600 binden fazla geliştirici PhoneGap kullanıyordu. Platform, iOS ve Android mühendisleri işe almadan mobil projelerle portföylerini genişletmek isteyen web stüdyoları ve freelancerlar arasında özellikle popülerdi.
PhoneGap ve Apache Cordova arasındaki temel fark, dağıtım modeli ve ek hizmetlerdedir. Cordova, Apache Foundation tarafından yönetilen tamamen açık kaynaklı bir framework iken, PhoneGap onun Adobe'ye özel özelliklere sahip ticari dağıtımıdır.
| Özellik | Apache Cordova | PhoneGap (Adobe) |
|---|---|---|
| Lisans | Apache 2.0 (açık) | Apache 2.0 + tescilli bileşenler |
| Çekirdek | Orijinal kod | Aynı Cordova kodu |
| Bulut derleme | Yok | PhoneGap Build |
| Araçlar | CLI + üçüncü taraf IDE'ler | Adobe PhoneGap Desktop + CLI |
| Destek | Apache topluluğu | Adobe (2020'ye kadar) |
PhoneGap'in Apache Cordova'ya göre ana avantajı ve temel ticari farkı, derleme aşamasını üstlenen PhoneGap Build hizmetidir. Geliştirici kaynak dosyaları Adobe sunucusuna yükler, hedef platformları seçer ve Android SDK, Xcode veya ilgili derleme araçlarını kurmadan hazır ikili dosyaları alır.
Ayrıca PhoneGap, Adobe Creative Cloud ile entegrasyon içeriyordu ve tasarımcıların Photoshop'tan düzenleri doğrudan PhoneGap proje yapısına aktarmasına olanak tanıyordu. Bu özellik, özel mobil geliştiricisi olmayan küçük ekiplerde talep görüyordu.
PhoneGap Build, PhoneGap/Cordova uygulama kaynak kodunu iOS (.ipa), Android (.apk), Windows Phone (.xap) ve diğer platformlar için kurulum dosyalarına derleyen bir Adobe web hizmetidir. Kullanıcının bilgisayarına hedef işletim sistemlerinin SDK'larını kurması gerekmez.
Derleme süreci üç adımdan oluşur: geliştirici projeyi arşivler (veya bir Git deposunu belirtir), build.phonegap.com'a yükler ve platformları seçer. Birkaç dakika içinde sunucu, uygulama mağazalarına yüklenmeye hazır ikili dosyaları döndürür.
PhoneGap Build iki tür abonelik destekliyordu: ücretsiz (2 uygulamaya kadar, herkese açık derleme) ve ücretli (25 uygulamaya kadar, özel derleme, özel simgeler ve sertifikalar). iOS için, kullanıcının kişisel hesabına yüklediği bir Apple Developer Program imza sertifikası gerekiyordu. Build'in mekanizması basitti: kullanıcı bir ZIP arşivi gönderir veya bir Git deposunu belirtir, sunucu otomatik olarak platformları belirler ve kontrol paneli aracılığıyla hazır ikili dosyaları döndürürdü.
Adobe Blog'una (2017) göre, aylık 500 binden fazla derleme PhoneGap Build'ten geçiyordu. Hizmet, katılımcıların Mac altyapısına erişimi olmayan eğitim kurumlarında ve hackathonlarda özellikle popülerdi. Geliştiriciler, ortam kurulumu olmadan doğrudan cihazlarda müşterilere prototip göstermek için de Build'i kullanıyordu.
PhoneGap projesinin yapısı Cordova ile aynıdır. Tek fark, PhoneGap sürümünü ve Adobe uygulama tanımlayıcısını belirten bir
<?xml version='1.0' encoding='utf-8'?>
<widget id='com.adobe.phonegap.app'
version='1.0.0'
xmlns='http://www.w3.org/ns/widgets'
xmlns:gap='http://phonegap.com/ns/1.0'>
<name>PhoneGapApp</name>
<description>
PhoneGap Uygulaması
</description>
<gap:platform name='ios' />
<gap:platform name='android' />
<gap:plugin name='cordova-plugin-camera' />
<gap:config platform='ios' min-version='13.0' />
</widget>
Bu yapılandırma dosyası, iOS ve Android desteği olan bir uygulamayı tanımlar, minimum iOS 13 sürümünü belirtir ve kamera eklentisini içerir. PhoneGap Build'e yüklendiğinde, sunucu bu ayarları otomatik olarak tanır ve projeyi gerekli bağımlılıklarla derler.
Cihaz hazır olayını işleyen ve yerel bir iletişim kutusu çağıran temel JavaScript kodu örneği:
document.addEventListener('deviceready', function() {
console.log('PhoneGap çalışmaya hazır');
document.getElementById('btnAlert')
.addEventListener('click', function() {
navigator.notification.alert(
'PhoneGap'ten merhaba!',
function() { console.log('Tamam'); },
'Mesaj',
'Kapat'
);
});
});
deviceready olayı, tüm PhoneGap ve Cordova uygulamalarında zorunlu bir giriş noktasıdır. Bu olay olmadan, köprü henüz başlatılmadığı için yerel API çağrıları çalışmaz. Hazır olduktan sonra, yerel iletişim pencereleri için notification.alert dahil tüm eklentiler kullanılabilir.
PhoneGap, 2010'ların ortasında popüler hale getiren bir dizi avantaja sahipti, ancak 2018'den sonra pazar payının düşmesine neden olan sınırlamaları da vardı.
PhoneGap'in ana avantajı, web geliştiricileri için düşük giriş engelidir. HTML, CSS ve JavaScript, her frontend uzmanının hakim olduğu teknolojilerdir ve web geliştirme stüdyolarının iOS ve Android mühendisleri işe almadan mobil uygulama pazarına hızla girmesini sağlar.
PhoneGap Build bulut hizmeti, altyapı sorununu çözdü: Windows ekipleri Mac satın almadan iOS uygulamaları derleyebiliyordu. Bu, sınırlı ekipman bütçesi olan startup'lar için kritikti.
PhoneGap'in ana dezavantajı performanstır. WebView, özellikle karmaşık animasyonlar, büyük listeler ve grafik işleme konusunda yerel UI framework'lerinden daha yavaştır. HTML5Rocks testlerine (2016) göre, 1000 öğeli bir listeyi render etmek PhoneGap'te 200–400 ms sürerken yerel uygulamada 16–30 ms sürüyordu.
Ek sınırlamalar arasında kullanıcının cihazındaki WebView sürümüne bağımlılık, yerel eklentilerde hata ayıklama sorunları ve ilgili Cordova eklentileri yayınlanana kadar yeni iOS ve Android API'lerine erişim eksikliği yer alıyordu.
2020 yılında Adobe, PhoneGap ve PhoneGap Build desteğinin sona erdiğini duyurdu. Şirket, Apache Cordova veya Capacitor'a geçilmesi önerisiyle geliştirmeleri topluluğa devretti. PhoneGap Build kapatıldı ve bulut derleme artık mevcut değil.
Mevcut PhoneGap projeleri için Capacitor'a geçiş önerilir — bu, minimum kod değişikliğiyle doğrudan bir yoldur. Başlatma betiklerini değiştirin ve yapılandırmayı güncelleyin. Capacitor aynı köprü ilkelerini kullandığından tüm JavaScript kodu ve HTML şablonları değişmeden kalır.
Alternatif bir seçenek doğrudan Apache Cordova'ya geçmektir. Bu, platformların CLI aracılığıyla yerel olarak kurulmasını ve yerel derlemenin yapılandırılmasını gerektirir, ancak mevcut eklentiler ve uygulama mimarisiyle tam uyumluluğu korur.
Kapanışa rağmen, PhoneGap'in tarihsel önemini abartmak zordur. Web teknolojilerinin mobil uygulamaların temeli olabileceğini pazara gösteren PhoneGap oldu ve modern hibrit ve çapraz platform framework'lerinin yolunu açtı. İlk olarak PhoneGap Build'de uygulanan bulut derleme konsepti, daha sonra Ionic Appflow, Visual Studio App Center ve mobil projeler için diğer sürekli entegrasyon hizmetleri tarafından benimsendi.
PhoneGap'in mimari kararları — WebView aracılığıyla köprü, eklenti sistemi ve config.xml ile yapılandırma — hibrit geliştirme için fiili standart haline geldi. Modern Capacitor projelerinde bile PhoneGap'in mirası görülür: eklentilerle çalışmanın aynı ilkeleri ve benzer bir derleme süreci.
Eski PhoneGap projelerini sürdüren geliştiriciler için temel beceri, eklenti köprüsünü anlamak ve eklentileri modern Android ve iOS sürümlerine uyarlama yeteneğidir. Bu olmadan, güncel olmayan sistem izinleri nedeniyle uygulamayı yeni mağaza gereksinimlerini karşılayacak şekilde güncellemek imkansız hale gelir.
Sıkça sorulan sorular
PhoneGap resmi olarak 2020'den beri Adobe tarafından desteklenmemektedir, ancak onunla oluşturulan uygulamalar çalışmaya devam etmektedir. PhoneGap Build üzerinden yeni projeler derlemek mümkün değildir. Güvenlik güncellemeleri almak için Capacitor veya Apache Cordova'ya geçilmesi önerilir.
Ionic, Cordova (ve daha sonra Capacitor) üzerinde UI bileşenleri, yönlendirme ve derleme araçları ekleyen bir sarmalayıcıdır. PhoneGap, bulut derleme özelliğine sahip ancak kendi UI bileşenleri olmayan bir Cordova dağıtımıdır. Ionic, yerel erişim için backend olarak Cordova veya Capacitor kullanır.
PhoneGap Build sayesinde Mac gerekli değildi — iOS derlemesi Adobe sunucularında yapılıyordu. Build'in kapanmasından sonra iOS için derleme yapmak, Xcode ile bir Mac gerektirir çünkü Apache Cordova ve Capacitor yerel projeleri Apple araçları aracılığıyla yerel olarak derler.
PhoneGap, aynı mimariyi kullandığı için tüm Apache Cordova eklentileriyle uyumludur. cordova-plugin-camera, cordova-plugin-geolocation, cordova-plugin-file ve cordova-plugin-inappbrowser eklentileri değişiklik yapılmadan çalışır. Yalnızca PhoneGap'e özgü eklentiler mevcut değildi.
PhoneGap'i yeni bir araç olarak öğrenmek anlamlı değil — artık desteklenmiyor. Ancak, mimarisini anlamak eski projeleri sürdürmek için faydalıdır. Yeni hibrit uygulamalar için Ionic veya React Native ile birlikte Capacitor öğrenilmesi önerilir.
Özet
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.
Ayrıca okuyun