در این مقاله می خوایم در مورد cordova صحبت کنیم و ببینیم که چجوری میشه ازش استفاده کرد، همچنین بعد ازمعرفی اون در مورد مزایا و معایبش صحبت کنیم . اما قبل از این که به موضوع مقاله یعنی ” cordova چیست ” بپردازیم ، باید شما با چند اصطلاح آشنا باشید . اولین اصطلاحی که ما باهاش مواجه ایم عبارت cross platform یا چند سکویی هست که ما درقسمت ابتدایی مقاله توضیحات زامارین ، بهش اشاره کردیم . ( به طور خلاصه برنامه های چند سکویی یا cross platform برنامه هایی هستن که برای اجرا، محدود به یک پلتفرم خاص نیستن و قابلیت اجرا در چند پلتفرم یا همون سیستم عامل مختلف رو دارن)
حتما با عبارت open source ( متن باز ) هم آشنا هستید، پروژه های متن باز پروژه هایی هستند که دسترسی عموم به منبع پروژه آزاد هست. ( عموما منظور از منبع پروژه همون کد های سازنده ی محصول هست)
عبارت بعدی که باید با اون آشنا باشید فون گپ (phone gap) هستش ، در واقع همه چیز از فون گپ شروع شد !!
در سال 2009 ، phone gap بهواسطهی استارت آپی به نام Nitobi با هدف ایجاد یک راه حل برای ساخت اپلیکیشنهای موبایل با تکنولوژیهای تحت وب شروع به کار کرد و چند سال بعد یعنی در حوالی سال 2011 ، پیشرفت های این استارتاپ باعث شد که شرکت Adobe ، برای خرید این استارتاپ به همراه حق مالکیت phone gap اقدام کنه .هدف phone gap این بود که با استفاده از کد های HTML , CSS , JavaScript یا همون برنامه نویسی تحت وب بتونیم اپلیکیشن های موبایل تولید کنیم. البته این ایده کامل تر شد و محیط کراس پلتفرمی شکل گرفت که با کد نویسی وب می تونستیم خروجی رو روی سیستم عامل های مختلفی اجرا کنیم.
بعد از اجرای phone gap شرکت adobe تصمیم گرفت این پروژه رو به صورت open source ادامه بده و مراحل کار رو به یکی از غول های حامی محصولات متن باز یعنی شرکت Apache بسپره.
شرکت آپاچی هم بعد از تغییراتی که در هسته برنامه ایجاد کرد محصول open source خودش رو با اسم جدیدی به بازار عرضه کرد این اسم چیزی نبود جز Apache Cordova .
هدف خالقان Cordova یافتن یک راه ساده برای تولید اپلیکیشنهای چند سکویی موبایل بود که برای رسیدن به این هدف تصمیم گرفتند از تکنولوژیهای بومی (native) و تکنولوژیهای وب استفاده کنند.( به این نوع از اپلیکیشنهای موبایل، Hybrid Application میگن)
به عبارت خلاصه ترشما با کد نویسی وب در cordova می تونید برای سیستم عامل های مختلفی خروجی تولید کنید.