آپاچی کوردوا

آپاچی کوردُوا (فون گَپ سابق) یک چارچوب توسعه اپلیکیشن موبایل است که توسط نیتوبی (Nitobi) ایجاد شده‌است. ادوبی سیستمز در سال ۲۰۱۱ نیتوبی را خریداری کرد، آن را با نام تجاری فون گپ تغییر نام داد و بعداً نسخه منبع باز نرم‌افزاری به نام آپاچی کوردوا (Apache Cordova) را منتشر کرد. آپاچی کوردوا برنامه نویسان نرم‌افزار را قادر می‌سازد به جای تکیه بر واسطهای برنامه‌نویسی کاربردی (API) مبتنی بر پلت فرم خاص مانند اندروید، سیستم عامل iOS یا ویندوز فون، بتوانند برنامه‌های کاربردی وب هیبریدی (ترکیبی) مبتنی بر CSS3، HTML5 و جاوا اسکریپت برای دستگاه‌های تلفن همراه بسازند. این چارچوب بسته به سیستم عامل دستگاه، بسته‌بندی کدهای CSS , HTML و JavaScript را امکان‌پذیر می‌کند. این کار ویژگیهای HTML و JavaScript را برای کار با دستگاه (همراه) گسترش می‌دهد. برنامه‌هایی که به این روش تولید می‌شوند هیبریدی (ترکیبی) هستند، به این معنی که آنها نه کاملاً برنامه کاربردی نیتیو (ذاتی) تلفن همراه هستند و نه کاملاً مبتنی بر وب هستند. آنها برنامه نیتیو نیستند زیرا تمام رندرینگ لایه نمایش به جای چارچوب رابط کاربری (UI) نیتیو پلتفرم، از طریق نمایشهای وب(Web Views)انجام می‌شود. آنها همچنین برنامه وب نیز نیستند زیرا جهت توزیع به عنوان برنامه کاربردی بسته‌بندی شده‌اند و به APIهای نیتیو دستگاه دسترسی دارند. ترکیب کردن قطعه‌های کد نیتیو و هیبریدی از نسخه ۱٫۹ امکان‌پذیر شده‌است.

این نرم‌افزار قبلاً فون گپ نامیده می‌شد و سپس آپاچی کال بک (Apache Callback) نامیده شد. به عنوان یک نرم‌افزار منبع باز، آپاچی کوردوا اجازه می‌دهد تا بسته‌بندی‌هایی مانند اپری.آی او (Appery.io) یا اینتل ایکس دی کی (Intel XDK) حول محور آن توسعه داده شوند.

فون گپ نسخه تجاری ادوبی از کوردواهمراه با اکوسیستم مرتبط با آن بود. بسیاری از ابزارها و چارچوب‌های دیگر نیز بر روی کوردوا ساخته شده‌اند، از جمله موناکا (Monaca)، آیونیک (Ionic)، تاکو (TACO)، ولت بیلدر(VoltBuilder)، اونسن یو آی (Onsen UI)، ویژوال استودیو (Visual Studio)، گپ دیباگ (GapDebug) ،اپ بیلدر (App Builder)، کُکون (Cocoon)، فریم ورک 7 (Framework7)، کوازار فریم ورک (Quasar Framework) ،ایووتینگز استودیو (Evothings Studio)، ان اس بی / اپ استودیو (NSB / AppStudio)، موبی اسکرول (Mobiscroll)، اینتل ایکس دی کی (Intel XDK) و تلریک پلتفرم (Telerik Platform).

این ابزارها برای ابزارهای پایه ای خود از کوردوا استفاده می‌کنند و نه از فون گپ.

مزیت‌های استفاده از پلتفرم آپاچی کوردوا برای توسعه اپلیکیشن‌های کراس پلتفرم به شرح زیر است:

 یک پلتفرم متن-باز است.
 یادگیری آن آسان است برای توسعه اپلیکیشن‌های کراس پلتفرم استفاده می‌شود.
 انعطاف‌پذیری لازم برای ساخت اپلیکیشن‌ها برای پلتفرم‌های مختلف را بدون نیاز به یادگیری زبان‌های جدید برنامه‌نویسی فراهم می‌سازد.
 توسعه اپلیکیشن‌ها در کوردوا سریع است، زیرا این پلتفرم اپلیکیشن را به پلتفرم‌های دیگر مورد پشتیبانی منتقل می‌کند.
 ساخت پروتوتایپ در این پلتفرم بسیار سریع است.
 شامل مجموعه‌ای از پلاگین‌های پیش-ساخته است که به دوربین، GPS و فایل سیستم گوشی دسترسی می‌دهد.
 افزونه‌های رایگان زیادی وجود دارند که چند کتابخانه و فریمورک را عرضه می‌کنند.

 معایب آپاچی کوردوا 
با وجود مزیت‌هایی که برای آپاچی کوردوا برشمردیم، این پلتفرم برخی معایب نیز به شرح زیر دارد:

 برای اپلیکیشن‌های بزرگ بهینه نیست، زیرا اپلیکیشن‌های هیبرید کندتر از اپلیکیشن‌های نیتیو هستند.
 به دلیل اجرای کد در Web View، عملکرد اپلیکیشن کُند می‌شود.
 برای توسعه بازی مناسب نیست، زیرا به پلاگین‌های پیشرفته‌ای نیاز دارد که هم‌اینک در دسترس نیستند.

مشارکت کنندگان در پروژه آپاچی کوردوا شامل ادوبی ،بلک بری، گوگل، آی بی ام ،اینتل، مایکروسافت، موزیلا و سایرین هستند.

 تاریخچه 
فون گپ برای اولین بار در یک رویداد کمپ توسعه آیفون (iPhoneDevCamp) در سان فرانسیسکو توسعه یافت، در ادامه برنده جایزه انتخاب مردم در کنفرانس وب ۲٫۰ سال ۲۰۰۹ رسانه اورایلی OReilly شد و از آن به بعد این چارچوب برای توسعه برنامه‌های بسیاری استفاده شده‌است. کمپانی اپل تأیید کرده‌است که این چارچوب حتی با تغییر در بند ۳٫۳٫۱ توافقنامه مجوز توسعه دهنده Apple iPhone SDK 4.0 در سال ۲۰۱۰ نیز مجوز فعالیت خود را حفظ نموده‌است.

چارچوب فون گپ توسط چندین سکوی توسعه اپلیکیشن تلفن همراه مانند موناکا(Monaca)، اپ موبی (appMobi)، کانورتیگو(Convertigo)، ویزی اپس (ViziApps) و ورک لایت (Worklight) به عنوان ستون فقرات موتور توسعه اپهای سمت مشتری تلفن همراه آنها استفاده می‌شود.

ادوبی رسماً از تاریخ ۴ اکتبر ۲۰۱۱ از خرید نرم‌افزار نیتوبی (توسعه دهنده اصلی) خبر داد. همزمان با آن، کد فون گپ به بنیاد نرم‌افزار Apache کمک نمود تا پروژه جدیدی را با نام آپاچی کوردوا آغاز کند. نام اصلی پروژه، یعنی آپاچی کال بک، بیش از حد معمولی تشخیص داده شد. بنابراین، در ادوبی سیستمز به عنوان ادوبی فون گپ و همچنین به عنوان ادوبی فون گپ بیلد ظاهر می‌شود. وبلاگ فون گپ جزئیات بیشتری را ارائه می‌دهد که چرا سرانجام نام کوردوا   انتخاب شد. این مقاله می‌گوید: «در حالی که داستان‌های پیدایش فون گپاغلب از گوینده یه گوینده دیگر متفاوت است، بیشتر شاهدان می‌توانند توافق کنند که این پروژه در نیتوبی، زمانی که دفتر در خیابان کورذوا در ونکوور بود، متولد شد.»

نسخه‌های اولیه فون گپ برای ایجاد برنامه‌های آی او اس به یک کامپیوتر اپل و برای ایجاد برنامه‌های ویندوز موبایل به یک کامپیوتر ویندوز احتیاج داشتند.

پس از سپتامبر ۲۰۱۲، سرویس ادوبی فون گپ بیلد به برنامه نویسان اجازه می‌دهد تا CSS، HTML و JavaScript کد منبع را در " کامپایلر ابری " بارگذاری کنند که برای هر سیستم عامل پشتیبانی شده برنامه ایجاد می‌کند.Klint Finley.

 طراحی و منطق 
هسته اصلی برنامه آپاچی کوردوا از CSS3 و HTML5 برای ارائه و JavaScript برای منطق استفاده می‌کند. HTML5 دسترسی به سخت‌افزارهای اساسی مانند شتاب سنج، دوربین و GPS را فراهم می‌کند. با این حال، پشتیبانی مرورگرها از دسترسی مبتنی بر HTML5 به منابع دستگاه در همه مرورگرهای تلفن همراه، به ویژه نسخه‌های قدیمی تر اندروید () Android، به یک شکل نیست. برای غلبه بر این محدودیت‌ها، آپاچی کوردوا کد HTML5 را درون یک WebView نیتیو روی دستگاه تعبیه می‌کند که از یک رابط عملکرد خارجی برای دسترسی به منابع نیتیو دستگاه استفاده می‌نماید.

آپاچی کوردوا را می‌توان با افزونه‌های نیتیو گسترش داد که به توسعه دهندگان این امکان را می‌دهد که قابلیت‌های عملیاتی بیشتری را که می‌توان از JavaScript فراخوانی کرد، به برنامه اضافه کنند و این امر باعث می‌شود مستقیماً بتوان بین لایه نیتیو و صفحه HTML5 ارتباط برقرار نمود. این پلاگین‌ها امکان دسترسی به شتاب سنج دستگاه، دوربین، قطب‌نما، سیستم فایل، میکروفون و موارد دیگر را فراهم می‌کنند.

با این حال، استفاده از فن آوری‌های مبتنی بر وب باعث می‌شود برخی از برنامه‌های آپاچی کوردوا کندتر از برنامه‌های نیتیو با عملکرد مشابه عمل کنند. ادوبی سیستمز هشدار می‌دهد که اپلیکیشن‌های ساخته شده با آپاچی کوردوا ممکن است توسط اپل به دلیل کندی بیش از حد یا عدم القای احساس «نیتیو بودن» رد شوند (داشتن ظاهر و عملکرد مطابق با انتظارات کاربران در سیستم عامل).

 سیستم عامل‌های پشتیبانی شده 
آپاچی کوردوا () Apache Cordova از نسخه ۹ به بعد از توسعه سیستم عامل‌های اپل آی او اس، گوگل اندروید، ویندوز فون ۸٫۱، ویندوز ۸٫۱، ویندوز ۱۰ و الکترون (چارچوب نرم‌افزار) (که به نوبه خود در ویندوز، لینوکس و مک او اس اجرا می‌شود) پشتیبانی می‌کند. نسخه قبلی آپاچی کوردوا از بادا، بلک بری، فایرفاکس او اس، ال جی وب او اس، مایکروسافت ویندوز فون(۷ و ۸) ،نوکیا سیمبین او اس، تایزن (SDK 2.x) و اوبونتو تاچ پشتیبانی می‌کرد. جدول زیر لیستی از ویژگی‌های پشتیبانی شده برای هر سیستم عامل برای Adobe PhoneGap / Apache Cordova 3 را نمایش می‌دهد.

 Feature اندروید آی‌اواس آی‌اواس بادا BlackBerry 10 and PlayBook OS سیستم‌عامل بلک‌بری سیستم‌عامل بلک‌بری فایرفاکس اواس سیمبیان تایزن وب‌اواس اوبونتو تاچ ویندوز فون شتاب‌سنج              دوربین              قطب‌نما              فهرست تماس              File              Geolocation              Media              Network              Notification (alert, sound, vibration)              Storage             

 جستارهای وابسته 
 لیست چارچوب‌های برنامه وب غنی
 چارچوب اپلیکیشن چند تلفنی مبتنی بر وب
 چارچوب کوازار
 مجموعه رهوموبایل(RhoMobile)
 کوکوس۲دی Cocos2d
 وین ج اس WinJS
 نیتیو اسکریپت NativeScript
 زامارین
 فلاتر
 اپسلریتور تیتانیوم
 ولت بیلدر VoltBuilder

 منابع 

 پیوند به بیرون 

 به وب سایت مراجعه کنید رسمی
رده:چارچوب‌های نرم‌افزاری اینترنت
رده:شرکت‌های فناوری تلفن همراه
رده:محیط‌های توسعه مجتمع
رده:نرم‌افزار ارتباطی
رده:نرم‌افزارهای ۲۰۰۹ (میلادی)