PhoneGap یک توزیع تجاری از Apache Cordova توسط Adobe است که امکان ایجاد برنامههای موبایل با HTML، CSS و JavaScript و کامپایل در ابر بدون SDK محلی را فراهم میکند. این پلتفرم اولین فریمورک ترکیبی شناختهشده شد و نقش کلیدی در محبوبسازی توسعه چندسکویی ایفا کرد. به گزارش Adobe PhoneGap، 2024، در طول عمر این پلتفرم بیش از ۱ میلیون برنامه ایجاد شده است. PhoneGap Build — سرویس کلیدی Adobe که کامپایل به APK و IPA را بدون نصب Xcode یا Android Studio انجام میدهد.
نکات اصلی
PhoneGap — پلتفرمی برای توسعه برنامههای موبایل است که ابتدا توسط شرکت Nitobi Software در سال ۲۰۰۹ ایجاد شد. در سال ۲۰۱۱، Adobe Nitobi را خریداری کرد و PhoneGap را به عنوان محصول تجاری منتشر کرد و هسته فریمورک را با نام Cordova به بنیاد نرمافزار Apache واگذار کرد.
PhoneGap در کنفرانس iPhoneDevCamp در سال ۲۰۰۸ ایجاد شد، جایی که توسعهدهندگان Nitobi Software فناوری پوشش برنامههای وب در کانتینر بومی را به نمایش گذاشتند. اولین نسخه عمومی در سال ۲۰۰۹ منتشر شد و بلافاصله توجه جامعه توسعهدهندگان وب را که به دنبال راههایی برای ورود به بازار موبایل بدون یادگیری Objective-C بودند، جلب کرد.
نوآوری اصلی PhoneGap در این بود که توسعهدهندگان میتوانستند از فناوریهای وب آشنا — HTML، CSS و JavaScript — برای ایجاد برنامههایی استفاده کنند که از طریق فروشگاههای برنامه روی دستگاه نصب میشوند و به قابلیتهای بومی مانند دوربین، GPS، مخاطبین و شتابسنج دسترسی دارند.
به گزارش Adobe Developer Relations (2015)، در دوره اوج، بیش از ۶۰۰ هزار توسعهدهنده در سراسر جهان از PhoneGap استفاده میکردند. این پلتفرم به ویژه در میان استودیوهای وب و فریلنسرهایی که میخواستند پرتفوی خود را با پروژههای موبایل بدون استخدام مهندسان iOS و Android گسترش دهند، محبوب بود.
تفاوت اصلی بین PhoneGap و Apache Cordova در مدل توزیع و سرویسهای اضافی است. Cordova یک فریمورک متنباز خالص تحت مدیریت بنیاد Apache است، در حالی که PhoneGap توزیع تجاری آن با قابلیتهای انحصاری Adobe است.
| ویژگی | Apache Cordova | PhoneGap (Adobe) |
|---|---|---|
| مجوز | Apache 2.0 (باز) | Apache 2.0 + مؤلفههای اختصاصی |
| هسته | کد اصلی | همان کد Cordova |
| کامپایل ابری | وجود ندارد | PhoneGap Build |
| ابزارها | CLI + IDEهای شخص ثالث | Adobe PhoneGap Desktop + CLI |
| پشتیبانی | جامعه Apache | Adobe (تا سال ۲۰۲۰) |
مزیت اصلی و مهمترین تفاوت تجاری PhoneGap نسبت به Apache Cordova — سرویس PhoneGap Build است که مرحله کامپایل را بر عهده میگیرد. توسعهدهنده فایلهای منبع را روی سرور Adobe بارگذاری میکند، پلتفرمهای هدف را انتخاب میکند و فایلهای باینری آماده را بدون نصب Android SDK، Xcode و ابزارهای مرتبط دریافت میکند.
علاوه بر این، PhoneGap شامل یکپارچهسازی با Adobe Creative Cloud بود و به طراحان امکان صادرات طرحها از Photoshop را مستقیماً به ساختار پروژه PhoneGap میداد. این ویژگی در تیمهای کوچک بدون توسعهدهنده اختصاصی موبایل مورد تقاضا بود.
PhoneGap Build — سرویس وب Adobe است که کد منبع برنامه PhoneGap/Cordova را به فایلهای نصب برای iOS (.ipa)، Android (.apk)، Windows Phone (.xap) و سایر پلتفرمها کامپایل میکند. کاربر نیازی به نصب SDK سیستمعاملهای هدف روی رایانه خود ندارد.
فرآیند کامپایل از سه مرحله تشکیل شده است: توسعهدهنده پروژه را بایگانی میکند (یا مخزن Git را مشخص میکند)، آن را در build.phonegap.com بارگذاری میکند و پلتفرمها را انتخاب میکند. پس از چند دقیقه، سرور فایلهای باینری آماده برای بارگذاری در فروشگاههای برنامه را برمیگرداند.
PhoneGap Build دو نوع اشتراک را پشتیبانی میکرد: رایگان (تا ۲ برنامه، کامپایل عمومی) و پولی (تا ۲۵ برنامه، کامپایل خصوصی، آیکونها و گواهیهای سفارشی). برای iOS گواهی بارگذاری Apple Developer Program مورد نیاز بود که کاربر در حساب شخصی خود بارگذاری میکرد. مکانیسم کار Build ساده بود: کاربر آرشیو ZIP ارسال میکرد یا مخزن Git را مشخص میکرد، سرور به طور خودکار پلتفرمها را تشخیص میداد و فایلهای باینری آماده را از طریق پنل مدیریت بازمیگرداند.
به گزارش Adobe Blog (2017)، ماهانه بیش از ۵۰۰ هزار کامپایل از طریق PhoneGap Build انجام میشد. این سرویس به ویژه در مؤسسات آموزشی و هکاتونها که شرکتکنندگان به زیرساخت Mac دسترسی نداشتند، محبوب بود. توسعهدهندگان همچنین از Build برای نمایش نمونههای اولیه به مشتریان مستقیماً روی دستگاهها بدون تنظیم محیط استفاده میکردند.
ساختار پروژه PhoneGap مشابه Cordova است. تفاوت فقط در فایل پیکربندی config.xml است، جایی که عنصر <gap> با مشخص کردن نسخه PhoneGap و شناسه برنامه Adobe اضافه میشود.
<?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
</description>
<gap:platform name='ios' />
<gap:platform name='android' />
<gap:plugin name='cordova-plugin-camera' />
<gap:config platform='ios' min-version='13.0' />
</widget>
این فایل پیکربندی برنامه را با پشتیبانی از iOS و Android تعریف میکند، حداقل نسخه iOS 13 را مشخص میکند و پلاگین دوربین را متصل میکند. هنگام بارگذاری در PhoneGap Build، سرور به طور خودکار این تنظیمات را تشخیص میدهد و پروژه را با وابستگیهای مورد نیاز میسازد.
نمونه کد پایه JavaScript با مدیریت رویداد آمادگی دستگاه و فراخوانی دیالوگ بومی:
document.addEventListener('deviceready', function() {
console.log('PhoneGap آماده کار است');
document.getElementById('btnAlert')
.addEventListener('click', function() {
navigator.notification.alert(
'سلام از PhoneGap!',
function() { console.log('OK'); },
'پیام',
'بستن'
);
});
});
رویداد deviceready — نقطه ورود اجباری در تمام برنامههای PhoneGap و Cordova است. بدون این رویداد، فراخوانی APIهای بومی کار نخواهد کرد، زیرا پل هنوز مقداردهی اولیه نشده است. پس از آمادگی، تمام پلاگینها از جمله notification.alert برای پنجرههای دیالوگ بومی در دسترس هستند.
PhoneGap دارای مزایایی بود که آن را در اواسط دهه ۲۰۱۰ محبوب کرد، اما همچنین محدودیتهایی داشت که پس از سال ۲۰۱۸ به کاهش سهم بازار آن منجر شد.
مزیت اصلی PhoneGap — آستانه ورود پایین برای توسعهدهندگان وب است. HTML، CSS و JavaScript فناوریهایی هستند که هر متخصص frontend میشناسد و این به استودیوهای وب اجازه میداد بدون استخدام مهندسان iOS و Android به سرعت وارد بازار برنامههای موبایل شوند.
سرویس ابری PhoneGap Build مشکل زیرساخت را حل میکرد: تیمهای روی Windows میتوانستند برنامههای iOS را بدون خرید Mac کامپایل کنند. این برای استارتآپهایی با بودجه محدود برای تجهیزات حیاتی بود.
عیب اصلی PhoneGap — عملکرد است. WebView از فریمورکهای UI بومی کندتر است، به ویژه در انیمیشنهای پیچیده، لیستهای بزرگ و پردازش گرافیک. بر اساس تستهای HTML5Rocks (2016)، رندر کردن لیست ۱۰۰۰ عنصر در PhoneGap 200–400 میلیثانیه در مقابل 16–30 میلیثانیه در برنامه بومی طول میکشید.
محدودیتهای اضافی شامل وابستگی به نسخه WebView روی دستگاه کاربر، مشکلات اشکالزدایی پلاگینهای بومی و عدم دسترسی به APIهای جدید iOS و Android تا زمان انتشار پلاگینهای Cordova مربوطه بود.
در سال ۲۰۲۰، Adobe اعلام کرد که پشتیبانی از PhoneGap و PhoneGap Build را متوقف میکند. این شرکت دستاوردها را با توصیه به انتقال به Apache Cordova یا Capacitor به جامعه واگذار کرد. PhoneGap Build بسته شد و کامپایل ابری دیگر در دسترس نیست.
برای پروژههای موجود PhoneGap، مهاجرت به Capacitor توصیه میشود — این مستقیمترین مسیر با حداقل تغییرات کد است. کافی است اسکریپتهای مقداردهی اولیه را جایگزین کرده و پیکربندی را بهروز کنید. تمام کد JavaScript و قالبهای HTML بدون تغییر باقی میمانند، زیرا Capacitor از همان اصول پل استفاده میکند.
گزینه جایگزین — انتقال مستقیم به Apache Cordova است. این نیاز به نصب محلی پلتفرمها از طریق CLI و تنظیم کامپایل محلی دارد، اما سازگاری کامل با پلاگینها و معماری برنامه موجود را حفظ میکند.
با وجود تعطیلی، اهمیت تاریخی PhoneGap غیرقابل انکار است. این PhoneGap بود که به بازار نشان داد فناوریهای وب میتوانند پایهای برای برنامههای موبایل باشند و راه را برای فریمورکهای ترکیبی و چندسکویی مدرن هموار کرد. مفهوم کامپایل ابری که اولین بار در PhoneGap Build پیادهسازی شد، بعداً توسط Ionic Appflow، Visual Studio App Center و سایر سرویسهای یکپارچهسازی مداوم برای پروژههای موبایل پذیرفته شد.
تصمیمات معماری PhoneGap — پل از طریق WebView، سیستم پلاگین و پیکربندی از طریق config.xml — به استاندارد دوفاکتو برای توسعه ترکیبی تبدیل شد. حتی در پروژههای مدرن Capacitor نیز میراث PhoneGap دیده میشود: همان اصول کار با پلاگینها و فرآیند مشابه کامپایل.
برای توسعهدهندگانی که پروژههای قدیمی PhoneGap را نگهداری میکنند، مهارت کلیدی درک پل پلاگین و توانایی تطبیق پلاگینها با نسخههای مدرن Android و iOS است. بدون این، بهروزرسانی برنامه برای الزامات جدید فروشگاهها به دلیل مجوزهای سیستمی قدیمی غیرممکن میشود.
سوالات متداول
PhoneGap رسماً از سال ۲۰۲۰ توسط Adobe پشتیبانی نمیشود، اما برنامههای ایجاد شده بر اساس آن همچنان کار میکنند. کامپایل پروژههای جدید از طریق PhoneGap Build در دسترس نیست. برای دریافت بهروزرسانیهای امنیتی به Capacitor یا Apache Cordova مهاجرت کنید.
Ionic — لایهای بر روی Cordova (و بعداً Capacitor) است که مؤلفههای UI، مسیریابی و ابزارهای کامپایل را اضافه میکند. PhoneGap توزیع Cordova با کامپایل ابری است، اما بدون مؤلفههای UI اختصاصی. Ionic از Cordova یا Capacitor به عنوان بکاند برای دسترسی بومی استفاده میکند.
به لطف PhoneGap Build، Mac مورد نیاز نبود — کامپایل iOS روی سرورهای Adobe انجام میشد. پس از بسته شدن Build، برای کامپایل iOS به Mac با Xcode نیاز خواهد بود، زیرا Apache Cordova و Capacitor پروژههای بومی را محلی از طریق ابزارهای Apple کامپایل میکنند.
PhoneGap با تمام پلاگینهای Apache Cordova سازگار است، زیرا از معماری یکسانی استفاده میکند. پلاگینهای cordova-plugin-camera، cordova-plugin-geolocation، cordova-plugin-file و cordova-plugin-inappbrowser بدون تغییر کار میکنند. پلاگینهای مختص PhoneGap وجود نداشت.
یادگیری PhoneGap به عنوان یک ابزار جدید منطقی نیست — پشتیبانی نمیشود. با این حال، درک معماری آن برای نگهداری پروژههای قدیمی مفید است. برای برنامههای ترکیبی جدید، یادگیری Capacitor به همراه Ionic یا React Native توصیه میشود.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید