آموزش کوردوا

آنچه در این صفحه می خوانید:

کوردوا (Cordova) چیست؟

Apache Cordova یک فریمورک توسعه برنامه کاربردی موبایل است که می تواند برای ایجاد برنامه های تلفن همراه چند سکویی با CSS و HTML5 و JavaScript استفاده شود. منظور از Cross-platform، این است که می توان یک بار کد برنامه را بنویسید و در چندین سیستم عامل تلفن همراه مانند اندروید، iOS یا ویندوز فون اجرا کرد. Apache Cordova یک فریمورک توسعه برنامه کاربردی تلفن همراه است که در ابتدا توسط نیتوبی ایجاد شده است. Adobe Systems نیتوبی را در سال 2011 خریداری کرد، آنرا دوباره به عنوان PhoneGap معرفی کرد و بعداً نسخه اوپن سورس نرم افزاری به نام Apache Cordova را منتشر کرد. Apache Cordova به برنامه نویسان نرم افزار این امکان را می دهد تا به جای اتکا به API های خاص برای سیستم عامل، برنامه هایی را برای دستگاه های تلفن همراه با استفاده از CSS، اچ تی ام ال و جاوااسکریپت ایجاد کنند. ویژگی های HTML و JavaScript را برای کار با دستگاه گسترش می دهد. برنامه های کاربردی به دست آمده هیبرید هستند، زیرا برنامه ها از طریق وب به جای فریمورک UI نیتیو سیستم عامل انجام می شود و نه بدین معنی که آن ها کاملاً تحت وب باشند زیرا آنها فقط برنامه های وب نیستند بلکه به عنوان برنامه هایی برای توزیع و دسترسی به API های دستگاه نیتیو بسته بندی شده اند. مخلوط کردن قطعات کد نیتیو و هیبرید از نسخه 1.9 امکان پذیر است. مشارکت کنندگان در پروژه آپاچی کوردووا شاملAdobe ، BlackBerry ،Google ،IBM ،Intel ،Microsoft ،Mozilla و غیره هستند.

تاریخچه کوردوا (Cordova)

برای اولین بار در یک رویداد iPhoneDevCamp در سانفرانسیسکو، فون گپ به پیروزی در بخش کنفرانس وب 2.0 O'Reilly Media دست یافت و از این فریمورک برای توسعه بسیاری از برنامه ها استفاده شده است. ادوبی رسما از دستیابی نرم افزار Nitobi (توسعه دهنده اصلی) در تاریخ 4 اکتبر 2011 خبر داد. همزمان با آن، کد PhoneGap به بنیاد نرم افزار آپاچی کمک کرد تا پروژه جدیدی به نام Apache Cordova را آغاز کند.سپس، در Adobe Systems نیز به عنوان Adobe PhoneGap و همچنین Adobe PhoneGap Build شناخته می شود. نسخه های اولیه PhoneGap برای ایجاد برنامه های iOS و رایانه ویندوز برای ایجاد برنامه های Windows Mobile به رایانه اپل نیاز داشت. پس از سپتامبر 2012، سرویس PhoneGap Build Adobe به برنامه نویسان اجازه می دهد تا کد منبع CSS ،HTML و JavaScript را در یک "کامپایلر ابری" بارگذاری کنند که برای هر سیستم عامل پشتیبانی شده برنامه ایجاد می کند.

کاربرد کوردوا (Cordova)

جامعه توسعه وب به طور مداوم در حال نوآوری بوده و با توسعه اخیر فریمورک هایی نظیر Angular ،jQuery و React، برنامه های وب سنتی تقریباً از نظر عملکردی از همتای خاص خود برای پلتفرم قابل تشخیص نیستند. از دیدگاه سنتی، به طور کلی تصور می شود که توسعه برنامه های تلفن همراه یک مجموعه مهارت خاص با دانش یک سیستم عامل خاص تلفن همراه است. هر پلتفرم مجموعه ای از قوانین و فریمورک های خاص خود را دارد. این ها مهارت های بسیار خاصی هستند که فقط در مورد یک سیستم عامل کاربرد دارند. این بدان معناست که برای بسیاری از موارد استفاده که دارای کلاینت گسترده ای در دسکتاپ، تبلت، اندروید و iOS هستند، احتمال مدیریت و توسعه اضافی برای مدیریت هر یک از برنامه های کاربردی برای یک پلتفرم هدف، بسیار زیاد است.

با توجه به سرعت فعلی راه‌اندازی محصول و زمان عرضه در بازار، نزدیک شدن به بستر توسعه نرم افزار نیتیو تبدیل به یک چالش دشوار می شود. این سناریو، جامعه توسعه دهنده موبایل را مجبور کرده است که خود راهکاری را دوباره اختراع کند. این بار برای مطابقت با خواسته های فعلی سرعت، مقیاس پذیری و در دسترس بودن در دنیای مدرن امروز تلفن همراه راهکار را شکل می دهند. با شروع برنامه توسعه تلفن همراه، به نظر می رسد یک جامعه بزرگ، فعال و پایگاه کاربر برای فریمورک کوردووا وجود دارد. می توانید برنامه های کراس پلت فرم iOS / Android / Windows را با فناوری هایی که در بین جامعه توسعه برنامه وب متداول است، بسازید.

اگر شما یک برنامه نویس وب هستید، در سطوح پایین تر، شباهت های بیشتری نسبت به تفاوت در توسعه برنامه های همراه هیبرید Cordova پیدا خواهید کرد. طیف گسترده ای از ویژگی های نیتیو مخصوص پلتفرم به عنوان افزونه در دسترس است. این افزونه ها را می توان با استفاده از JavaScript خالص فراخوانی کرد و این باعث می شود که توسعه برنامه وب تلفن همراه یک تجربه بی نظیر باشد. البته با وجود یک پایه تک کد، هم اکنون می توانید برنامه خود را هم به صورت اجرایی سازگار با Android و هم در iOS منتشر کنید.

ویژگی های کوردوا (Cordova)

Apache Cordova یک فریمورک توسعه تلفن همراه اوپن سورس است. برنامه های کاربردی در بسته های هدفمند برای هر سیستم عامل ها اجرا می شوند و برای دسترسی به قابلیت های هر دستگاه مانند سنسورها، داده ها، وضعیت شبکه و غیره به قابلیت های سازگار با استانداردها تکیه می کنند. برنامه های وب به طور پیش فرض نمی توانند از ویژگی های نیتیو تلفن همراه استفاده کنند. اینجا جایی است که کوردووا وارد آن می شود. پلی برای ارتباط بین برنامه وب و دستگاه تلفن همراه فراهم می کند. با استفاده از کوردووا می توانیم برنامه های موبایل هیبرید ایجاد کنیم که می توانند از دوربین، لوکیشن، سیستم فایل و سایر عملکردهای محلی نیتیو استفاده کنند.

در زیر ویژگی های کوردووا آورده شده است:

  • رابط خط فرمان: این ابزار به شما امکان می دهد پروژه های جدیدی بر روی سیستم عامل های مختلف بسازید و بر روی دستگاه های واقعی یا درون شبیه سازها اجرا کنید.
  • کامپوننت اصلی کوردووا: کوردووا کامپوننت اصلی را فراهم می کند که برای ایجاد پایه برنامه استفاده می شود، بنابراین ما می توانیم زمان بیشتری را صرف اجرای منطق خود کنیم. Cordova مجموعه ای از مؤلفه های اصلی را که به هر برنامه موبایل نیاز دارد ارائه می دهد.
  • پلاگین های کوردووا: تمام ویژگی های اصلی API کوردووا به عنوان افزونه ها پیاده سازی می شوند و بسیاری موارد دیگر در دسترس هستند که امکاناتی مانند بارکد اسکنر، ارتباطات NFC یا رابط های تقویم را فراهم می کنند.

ابزار های کوردوا (Cordova)

اکوسیستم متنوعی از ابزارهای خط فرمان، فریمورک های JavaScript و سرویس های ابری وجود دارد که کوردووا را تقویت می کند.

Adobe PhoneGap

PhoneGap اصلی ترین و محبوب ترین توزیع Apache Cordova است. HTML ،CSS و JavaScript خود را با استفاده از برنامه های ساده دسکتاپ و برنامه نویسی، در چند دقیقه به یک برنامه روی دستگاه خود تبدیل کنید.

فریمورک آیونیک

Ionic یک SDK فرانت اند برای ساخت برنامه های تلفن همراه cross-platform است. Ionic در بالای Angular ساخته شده، بستری را برای ادغام سرویس هایی مانند اعلان ها و آنالیز را فراهم می کند.

موناکا (Monaca)

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

Onsen UI

فریمورک HTML5 مبتنی بر عناصر سفارشی گزینه های بزرگی از مؤلفه ها و پشتیبانی از طرح پاسخگو را ارائه می دهد. Onsen UI به شما امکان می دهد تا بدون کسب مهارت های اضافی، برنامه های چندرسانه ای طراحی شده و حرفه ای ایجاد کنید.

ویژوال استودیو

IDE محبوب برای ساخت برنامه های cross-platform برای Android ،iOS و Windows با پشتیبانی پیشرفته ساخت و اشکال زدایی کامل را فراهم می کند.

App Builder

App Builder یک IDE کامل برای Microsoft Windows است که امکان ایجاد برنامه های HTML5 و نیتیو و بدون دانش برنامه نویسی را فراهم می کند. این ده ها کنترل و اقدامات آماده برای استفاده در برنامه های شما و نمونه های زیادی از برنامه را برای یادگیری آن ارائه می دهد.

Framework7

Framework7 یک فریمورک HTML رایگان و اوپن سورس برای توسعه برنامه های تلفن همراه هیبرید یا برنامه های وب با ظاهر و احساس نیتیو iOS و Android است.

Evothings Studio

یک گردش کار سریع توسعه، آموزش ها و برنامه های مثال برای اینترنت اشیا را در اختیار توسعه دهندگان کوردووا قرار می دهد. پشتیبانی از بلوتوث کم مصرف (BLE) و سایر فناوری های مرتبط با IoT.

NSB / AppStudio

NSB / AppStudio یک IDE برای برنامه های وب و برنامه های نیتیو است. نصب یک مرحله ای شامل یکپارچه سازی کامل PhoneGap، به علاوه راه انداز، جی کوئری موبایل و jqWidgets و برنامه نویسی آسان در JavaScript یا BASIC برای ویندوز و macOS را شامل می شود.

Mobiscroll

Mobiscroll مجموعه ای از کنترل های UI کراس پلتفرم برای ارائه برنامه های جلا شده iOS ،Android و Windows Phone است. فریمورک آگونیستیک، از آن با Javascript، جی کوئری ،انگولار ،ری اکت استفاده کنید.

Instabug

Instabug یک گزارش اشکال و سلوشن بازخورد در برنامه را برای توسعه دهندگان کوردووا فراهم می کند. با یک راهنمای نصب یک دقیقه ای، کاربران را قادر می سازد تا ضمن گزارش خودکار جزئیات، از قبیل لاگ شبکه، مراحل مختلف و غیره به طور یکپارچه، اشکالات را گزارش دهند.

پلاگین های کوردوا (Cordova)

افزونه، کد افزودنی است که رابط جاوا اسکریپت را برای مولفه های نیتیو فراهم می کند. آنها به برنامه شما اجازه می دهند از قابلیت های نیتیو دستگاه فراتر از آنچه در دسترس برنامه های وب است، استفاده کنید. افزونه بسته ای از کد تزریقی است که به وب سایت کوردووا اجازه می دهد تا از طریق آن، برنامه با پلتفرم نیتیو که در آن اجرا شده ارتباط برقرار کند. افزونه ها دسترسی به عملکرد دستگاه و پلتفرم را دارند که معمولاً برای برنامه های مبتنی بر وب در دسترس نیست. تمام ویژگی های اصلی Cordova API به عنوان افزونه ها پیاده سازی می شوند و بسیاری موارد دیگر در دسترس هستند که امکاناتی مانند اسکنر بارکد، ارتباطات NFC یا رابط های تقویم را فراهم می کنند.

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

پلاگین وضعیت باتری در کوردوا (cordova-plugin-battery-status)

این افزونه اجرای نسخه قدیمی API Events Events باتری را ارائه می دهد. سه رویداد زیر را به شیء پنجره اضافه می کند:

  • batterystatus
  • batterycritical
  • batterylow

برنامه های کاربردی ممکن است از windows.addEventListener برای پیوستن به event listener برای هر یک از رویدادهای فوق بعد از  deviceready رویداد قبلی استفاده کنند.

battery status

پلاگین دوربین در کوردوا (cordova-plugin-camera)

این افزونه یک شی navigator.camera گلوبال را تعریف می کند، که API را برای گرفتن عکس و انتخاب تصاویر از کتابخانه تصویر سیستم فراهم می کند. اگرچه این شی به ناوبر گلوبال متصل شده است، اما تا زمان deviceready موجود در دسترس نیست.

camera

پلاگین مخاطبین در کوردوا (cordova-plugin-contacts)

این افزونه یک شی navigator.contacts جهانی را تعریف می کند، که دسترسی به پایگاه داده مخاطبین دستگاه را فراهم می کند. اگرچه این شی به ناوبر گلوبال متصل شده است، اما تا زمان deviceready موجود در دسترس نیست.

contacts

پلاگین دستگاه در کوردوا (cordova-plugin-device)

این افزونه یک شی دستگاه گلوبال را تعریف می کند، که سخت افزار و نرم افزار دستگاه را توصیف می کند. اگرچه این شی در محدوده گلوبال قرار دارد، اما تا زمان deviceready موجود در دسترس نیست.

device

پلاگین دیالوگ در کوردوا (cordova-plugin-dialogs)

این افزونه دسترسی به برخی عناصر UI دیالوگ نیتیو را از طریق یک شیء navigator.notification جهانی فراهم می کند. اگرچه این شی به ناوبر گلوبال متصل شده است، اما تا زمان deviceready موجود در دسترس نیست.

dialogs

پلاگین کار با فایل ها در کوردوا (cordova-plugin-file)

این افزونه یک API File را پیاده سازی می کند که به خواندن و نوشتن دسترسی به فایل های مستقر در دستگاه اجازه می دهد. این افزونه هدف جهانی cordova.file را تعریف می کند. اگرچه در محدوده گلوبال تعریف می شود، تا بعد از deviceready موجود، در دسترس نیست.

file

پلاگین انتقال فایل در کوردوا (cordova-plugin-file-transfer)

این افزونه به شما امکان بارگذاری و بارگیری فایل ها را می دهد. این افزونه انتقال فایل گلوبال FileTransfer ،FileUploadOptions را تعریف می کند. اگرچه در محدوده گلوبال تعریف می شوند، آنها تا زمان deviceready موجود در دسترس نیستند.

file transfer

پلاگین موقعیت جغرافیایی در کوردوا (cordova-plugin-geolocation)

این افزونه اطلاعاتی در مورد مکان دستگاه، از جمله طول و عرض جغرافیایی، در اختیار شما قرار می دهد.منابع معمول اطلاعات مکان شامل سیستم موقعیت یابی جهانی (GPS) و موقعیت مکانی استنباط شده از سیگنال های شبکه مانند آدرس IP ،RFID ،WiFi، و آدرس های MAC بلوتوث، و شناسه های سلول GSM / CDMA است. هیچ تضمینی مبنی بر بازگرداندن API محل واقعی دستگاه وجود ندارد. این افزونه یک شی گلوبال navigator.geolocation را تعریف می کند (برای سیستم عامل هایی که در غیر این صورت گم شده اند). اگرچه این شی در محدوده گلوبال است، اما ویژگی های ارائه شده توسط این افزونه تا زمان deviceready موجود در دسترس نیست.

geolocation

پلاگین منطقه زمانی در کوردوا (cordova-plugin-globalization)

این افزونه اطلاعات را بدست می آورد و عملیات خاصی را برای محلی، زبان و منطقه زمانی کاربر انجام می دهد. توجه داشته باشید به تفاوت بین محل و زبان: محلی نحوه کنترل اعداد، تاریخ ها و زمان ها برای یک منطقه را کنترل می کند ، در حالی که زبان تعیین می کند متن زبان به صورت مستقل از تنظیمات محلی به چه صورت ظاهر می شود. غالباً توسعه دهندگان از محلی برای تنظیم هر دو تنظیم استفاده می کنند، اما هیچ دلیلی وجود ندارد که کاربر نتواند زبان خود را روی "انگلیسی" تنظیم کند اما محلی را به "فرانسوی" تنظیم کند، به طوری که متن به زبان انگلیسی نمایش داده شود اما تاریخ، زمان و غیره نمایش داده می شود. همانطور که در فرانسه هستند. متأسفانه، اکثر سیستم عامل های موبایل در حال حاضر هیچ تمایزی بین این تنظیمات قائل نمی شوند. این افزونه شیء navigator.globalization جهانی را تعریف می کند. اگرچه در محدوده گلوبال تعریف می شود، تا بعد از رویداد deviceready، در دسترس نیست.

globalization

پلاگین مرورگر داخلی برنامه در کوردوا (cordova-plugin-inappbrowser)

می توانید مقالات، فیلم ها و منابع وب مفید را در داخل برنامه خود نشان دهید. کاربران می توانند صفحات وب را بدون ترک برنامه شما مشاهده کنند. پنجره InAppBrowser مانند یک مرورگر وب استاندارد رفتار می کند و نمی تواند به API های Cordova دسترسی داشته باشد. به همین دلیل، در صورت نیاز به بارگذاری محتوای شخص ثالث (غیرقابل اعتماد)، به جای بارگذاری آن در صفحه اصلی کوردووا، InAppBrowser توصیه می شود.

inappbrowser

پلاگین مدیا در کوردوا (cordova-plugin-media)

این افزونه امکان ضبط و پخش فایلهای صوتی را در یک دستگاه فراهم می کند. این افزونه یک سازنده رسانه گلوبال را تعریف می کند. اگرچه در محدوده گلوبال تعریف می شود، تا بعد از رویداد deviceready، در دسترس نیست.

media

پلاگین دسترسی ضبط مدیا در کوردوا (cordova-plugin-media-capture)

این افزونه امکان دسترسی به قابلیت ضبط صدا، تصویر و فیلمبرداری دستگاه را فراهم می کند. جمع آوری و استفاده از تصاویر، ویدئو یا صدا از دوربین یا میکروفون دستگاه باعث می شود تا مشکلات مهم مربوط به حریم خصوصی را افزایش دهد. خط مشی رازداری برنامه شما باید در مورد چگونگی استفاده برنامه از چنین سنسورهایی و اینکه آیا داده های ضبط شده با طرف های دیگر به اشتراک گذاشته می شود، بحث کند. علاوه بر این، اگر استفاده برنامه از دوربین یا میکروفون در رابط کاربری آشکار نباشد، باید قبل از دسترسی برنامه به دوربین یا میکروفون، یک اعلامیه فقط ارائه دهید (اگر سیستم عامل دستگاه قبلاً این کار را انجام نداده است). در این اطلاعیه باید همان اطلاعات ذکر شده در بالا و همچنین دریافت مجوز کاربر (به عنوان مثال با ارائه گزینه های OK و No Thanks) ارائه شود. توجه داشته باشید که برخی از بازارهای برنامه ممکن است به برنامه شما نیاز داشته باشند تا قبل از دسترسی به دوربین یا میکروفون، اطلاعیه فقط به موقع و اجازه کاربر را دریافت کند. این افزونه شی navigator.device.capture گلوبال را تعریف می کند. اگرچه در دامنه گلوبال تعریف می شود، تا بعد از رویداد deviceready موجود نیست.

capture

پلاگین اطلاعات شبکه در کوردوا (cordova-plugin-network-information)

این افزونه اجرای نسخه قدیمی API اطلاعات شبکه را فراهم می کند. اطلاعاتی در مورد اتصال سلولی و وای فای دستگاه و اینکه آیا این دستگاه دارای اتصال اینترنتی است، ارائه می دهد.

network-information

پلاگین اسپلش اسکرین در کوردوا (cordova-plugin-splashscreen)

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

splashscreen

پلاگین ویبره در کوردوا (cordova-plugin-vibration)

این افزونه راهی برای لرزش دستگاه فراهم می کند. این افزونه اشیا گلوبال از جمله navigator.vibrate را تعریف می کند. اگرچه در محدوده گلوبال تعریف می شود، آنها تا زمان deviceready موجود در دسترس نیستند.

vibration

مزایای کوردوا (Cordova)

Cordova یک بستر برای ساختن برنامه های موبایل هیبرید ارائه می دهد تا بتوانیم یک برنامه را که در سیستم عامل های مختلف موبایل استفاده می شود IOS ،Android ،Windows Phone ،Amazon-fireos ،blackberry ،Firefox OS Ubuntu و Tizen توسعه دهیم.

  • توسعه یک برنامه هیبرید سریعتر از یک برنامه نیتیو است تا کوردووا بتواند در زمان توسعه صرفه جویی کند.
  • از آنجا که هنگام کار با کوردووا از JavaScript استفاده می کنیم، نیازی به یادگیری زبان های برنامه نویسی مخصوص پلتفرم نداریم.
  • بسیاری از افزودنی ها در انجمن وجود دارد که می تواند با کوردووا مورد استفاده قرار گیرد، این ها شامل چندین کتابخانه و فریمورک هستند که برای کار با آن بهینه شده اند.
نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود