آپاچی کوردوا
![]() | |
نویسنده(های) اصلی | جو بوزر، مایکل بروکس، راب الیس، دیو جانسون، انیس کدری، برایان لی روکس، جس مک فدین، فیلیپ مج، اریک اوسترل، بروک ویتن، هرمان وونگ، شزرون عبدالله |
---|---|
انتشار اولیه | ۲۰۰۹ |
انتشار پایدار | |
نوشتهشده با | سی شارپ، C++, شیوهنامه آبشاری (نگارش سند), اچتیامال، جاوا (زبان برنامهنویسی), جاوا اسکریپت and آبجکتیو-سی |
پلتفرم | اندروید آیاواس، مکاواس Windows (8.1, 10, Phone 8.1) الکترون (چارچوب نرمافزاری)[۴] |
در دسترس به | English |
نوع | Mobile development framework |
مجوز | مجوز آپاچی[۵][۶] |
وبگاه |
آپاچی کوردُوا (فون گَپ سابق) یک چارچوب توسعه اپلیکیشن موبایل است که توسط نیتوبی (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 کد منبع را در " کامپایلر ابری " بارگذاری کنند که برای هر سیستم عامل پشتیبانی شده برنامه ایجاد میکند.[۳۱]
طراحی و منطق
[ویرایش]هسته اصلی برنامه آپاچی کوردوا از 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
منابع
[ویرایش]- ↑ "apache/cordova-cli". GitHub.
- ↑ "cordova". npm.
- ↑ "Cordova-CLI 9.0.0 Released". cordova.apache.org. Archived from the original on 2019-04-17. Retrieved 2019-04-17.
- ↑ "Cordova support by platform - Apache Cordova". cordova.apache.org.
- ↑ "PhoneGap License". Phonegap.com. Archived from the original on 17 June 2011. Retrieved 2013-10-09.
- ↑ "FAQ | PhoneGap Build | Edge Tools & Services | Adobe & HTML". Html.adobe.com. Retrieved 2013-10-09.
- ↑ "Adobe Announces Agreement to Acquire Nitobi, Creator of PhoneGap". Adobe.com. 2011-10-03. Archived from the original on 2012-04-13. Retrieved 2012-04-07.
- ↑ Jose Fermoso (April 5, 2009). "PhoneGap Seeks to Bridge the Gap Between Mobile App Platforms". GigaOM. Archived from the original on 8 April 2009. Retrieved 2012-04-07.
- ↑ Community, Tiki. "Apache Callback - Tiki Wiki CMS Groupware :: Development". Tiki Wiki CMS Groupware :: Development. Archived from the original on 4 April 2018. Retrieved 3 April 2018.
- ↑ "Apache Callback Proposal". Wiki.phonegap.com. 2013-08-15. Archived from the original on 5 October 2011. Retrieved 2013-10-09.
- ↑ "The Last Word on Cordova and PhoneGap". The Official Ionic Blog.
- ↑ "Intel XDK". Intel Developer Zone.
- ↑ "Apache Cordova". Apache Cordova.
- ↑ "Cordova Contributor's Who's Who". apache.org. 2015-11-02. Archived from the original on 2015-07-16. Retrieved 2015-11-02.
- ↑ Darryl K. Taft (2009-03-13). "PhoneGap Simplifies iPhone, Android, BlackBerry Development". Eweek.com. Retrieved 2013-10-09.
- ↑ Davis, Lidija (2009-04-02). "PhoneGap: People's Choice Winner at Web 2.0 Expo Launch Pad". Readwriteweb.com. Retrieved 2012-04-07.
- ↑ "PhoneGap Apps". Phonegap.com. Retrieved 2012-12-06.
- ↑ "PhoneGap and the Apple developer license agreement. " PhoneGap". Phonegap.com. 2010-04-14. Archived from the original on 2012-04-15. Retrieved 2012-04-07.
- ↑ "Develop Awesome PhoneGap Apps with Awesome Tools". monaco.mobi. Archived from the original on 2014-06-20. Retrieved 2014-06-10.
- ↑ "Create Mobile and Web Apps with HTML5 and JavaScript |". appMobi.com. Retrieved 2012-04-07.
- ↑ "Open Source Mobile Enablement and Enterprise Mashups". Convertigo. Retrieved 2012-04-07.
- ↑ "Convertigo Mobilizer Uses PhoneGap Build APIs " PhoneGap". Phonegap.com. 2011-07-07. Archived from the original on 2012-05-13. Retrieved 2012-04-07.
- ↑ "Create Mobile and Web Apps with HTML5 and JavaScript". ViziApps.com. Archived from the original on 31 March 2012. Retrieved 2012-04-07.
- ↑ "Mobile Application Platform and Tools". Worklight. 2012-01-16. Archived from the original on 2012-04-19. Retrieved 2012-04-07.
- ↑ "How PhoneGap plays an important part in our Enterprise offering PhoneGap". Phonegap.com. 2011-06-27. Archived from the original on 2012-04-15. Retrieved 2012-04-07.
- ↑ Shankland, Stephen (2011-10-03). "Adobe buys PhoneGap, TypeKit for better Web tools | Deep Tech - CNET News". News.cnet.com. Retrieved 2012-04-07.
- ↑ "finding a new name that isn't PhoneGap - Brian LeRoux - org.apache.incubator.callback-dev". MarkMail. 2011-10-28. Archived from the original on 15 August 2012. Retrieved 2012-04-07.
- ↑ "Adobe PhoneGap Build". Adobe Systems Inc. Archived from the original on 9 February 2014. Retrieved 12 April 2021.
- ↑ Team, PhoneGap (2017-02-16). "PhoneGap, Cordova, and what's in a name?". Medium (به انگلیسی). Retrieved 2019-11-10.[پیوند مرده]
- ↑ "Nitobi in Vancouver, BC". www.fyple.ca. Retrieved 2019-11-10.
- ↑ Klint Finley.
- ↑ "The Development of Mobile Applications using HTML5 and PhoneGap on Intel Architecture-Based Platforms". 2012-06-22. Retrieved 2013-02-17.
However, HTML5 has some limitations. Most prominent is the lack of API to access device hardware and sensors such as accelerometer, compass, GPS, etc. While native applications can access device hardware, they lack the portability that Web apps provide. Thus, a solution is to code a hybrid application, which cumulatively uses the benefits of native and Web apps.
- ↑ Sapan Diwakar (2012-06-21). "Titanium vs Phonegap vs Native application development". Retrieved 2013-02-17.
- ↑ "PhoneGap advice on dealing with Apple application rejections". ادوبی. 2012-10-29. Retrieved 2013-02-17.
- ↑ "Creating apps with PhoneGap: Lessons learned". ادوبی. 2012-09-17. Archived from the original on 2013-05-18. Retrieved 2013-02-17.
When you add more complex CSS3 elements, heavy transitions, and supporting multiple devices (such as iOS and Android), however, it makes you realize that there are few steps you must iron out to prevent hair loss
- ↑ "Building Cordova apps for Firefox OS ✩ Mozilla Hacks – the Web developer blog". 20 February 2014. Retrieved 26 February 2014.
- ↑ "Using PhoneGap and the Sony Ericsson WebSDK to develop Android apps". Android and Me. Retrieved 2012-04-07.
- ↑ "Platform Support". Adobe PhoneGap. Archived from the original on 26 اكتبر 2013. Retrieved 2016-02-23.
{{cite web}}
: Check date values in:|archive-date=
(help) - ↑ "PhoneGap supported features". Phonegap.com. Archived from the original on 22 June 2011. Retrieved 2013-10-09.
- ↑ "Platform Support". Adobe PhoneGap. Archived from the original on 26 اكتبر 2013. Retrieved 2016-02-23.
{{cite web}}
: Check date values in:|archive-date=
(help) - ↑ "PhoneGap supported features". Phonegap.com. Archived from the original on 22 June 2011. Retrieved 2013-10-09.
- ↑ "Android Platform Guide - Apache Cordova". cordova.apache.org. Retrieved 3 April 2018.