در حال حاضر پلتفرم های مختلفی برای دستگاه های موبایل وجود دارد و هرکدام از دستگاه های موبایل و تبلت به یک سیستم عامل مربوط به خود مجهز هستند که این سیستم عامل ها از نظر ساختاری با هم تفاوت هایی دارند. سه پلتفرم مطرح در دستگاه های موبایل و تبلت ، اندروید و IOS و ویندوز می باشد. حال اگر شما بخواهید که برای هرکدام از این پلتفرم ها برنامه هایی تولید کنید مشکلی پیش نمی آید. شما پلتفرم خود را انتخاب کرده و با توجه به پلتفرم انتخاب شده شروع به برنامه نویسی و تولید اپلیکیشن برای آن پلتفرم خواهید کرد. در این مقاله می خواهیم در مورد یکی ار فریم ورکها در حوزه برنامه نویسی برنامه های گوشی های هوشمند به نام کردوا صحبت کنیم.
آپاچی کوردوا یا apache cordova پلتفرمی برای ساخت موبایل اپلیکیشن های Native با استفاده از HTML ،CSS و جاوا اسکریپت می باشد. آپاچی کوردوا مجموعه ای از API های دستگاه می باشد که به برنامه نویس موبایل این امکان را می دهد تا بتواند با استفاده از جاوا اسکریپت به کارکرد های native دستگاه مثل دوربین یا شتاب سنج دسترسی یابد. این پلتفرم شامل مجموعه ای از پلاگین های از پیش ساخته شده برای ارائه دسترسی به دوربین، GPS، فایل سیستم و اجزای دیگر دستگاه است. کوردوا را میتوان به عنوان یک کانتینر اپلیکیشن با ارائه یک web view تصور کرد که کل صفحه دستگاه را می پوشاند. اولین جرقه ها از این فریم ورک در یک رویداد به نام iPhoneDevCamp در سانفرانسیسکو زده شد دراین رویداد فون گپ جایزه بخش کنفرانس وب 2.0 O’Reilly Media را از آن خودش کرد، از این فریم ورک برای توسعه نرم افزارهای زیادی استفاده شده است.
شرکت ادوبی رسماً در تاریخ 4 اکتبر 2011 از خرید نرم افزار nitobi که توسعه دهنده اصلی بود خبر داد. PhoneGap ایده منحصر به فرد و جالب شرکت ادوبی بود و اینگونه بود که پروژه apache cordova شروع به کار کرد و استارت خورد. phone gap که با جرقه ای از استارت آپ به نام nitobi ایجاد شده بود که قصد داشت یك پلتفرم برای ساخت اپلیکیشن های گوشی های هوشمند با تکنولوژیهای تحت وب ابجاد کند. هدف اصلی این استارت آپ این بود که از کدهایی مانند html ،css ،javascript بتوانیم برنامه هایی برای گوشی های هوشمند تولید کنیم. با پیشرفته شدن روز به روز این سیستم یک محیط کراس پلتفرمی ایجاد شد که با بهره گیری از آن می توانستیم خروجی های مختلف برای سیستم عامل های گوناگون تهیه کنیم .با پیشرفت این سیستم ، ادوب تصمیم گرفت پروژه را به صورت متن باز یا open source گسترش دهد، به همین خاطر ادامه روند کار را به شرکت apache اعطا کرد. این شرکت یکی از بزرگترین شرکت ها در زمینه حمایت از محصولات متن باز است .بعد از سپردن پروژه به شرکت apache ،این شرکت در هسته برنامه تغیيراتی را ايجاد و به صورت متن باز روانه بازار کرد. اینجا بود که این شرکت تغییراتی را نیز در نام این محصول ایجاد کرد و این نام Apache cordova بود.
آپاچی کوردوا شامل مجموعه ای از پلاگین های از پیش ساخته است که امکان دسترسی به دوربین، GPS، سیستم فایل و دیگر اجزای نیتیو سیستم را فراهم می سازد.
با استفاده از کوردوا می توان برای پلتفرم های زیر اپلیکیشن توسعه داد:
Android ،IOS ،Blackberry
Tizen ،Ubuntu ،WebOS
Windows (desktop) ،Windows Phone 7 ،Windows Phone 8
Symbian ،FirefoxOS ،Bada ،Mac OS X ،Qt
قابلیتهای اساسی آپاچی کوردوا :
1. کامپوننت های اساسی کوردوا: کوردوا کامپوننت های اساسی مختلفی ارائه کرده است که هر یک برای رفع نیازهای خاص اپلیکیشن های موبایل طراحی شده اند. این کامپوننت ها مبنایی برای یک اپلیکیشن ارائه می دهند تا روی پیاده سازی منطق خاص خود تمرکز کنند.
2. رابط خط فرمان: این ابزار مسئول ساخت پردازش ها و نصب پلاگین ها برای پلتفرم های مختلف است. این ابزار برای آغاز پروژه ها و آسان تر ساختن فرآیند توسعه ارائه شده است.
3. پلاگین های کوردوا: این بخش یک API برای پیاده سازی کارکردهای نیتیو موبایل در اپلیکیشن جاوا اسکریپت ما ارائه می دهد. این پلاگین ها دسترسی به ظرفیت های دستگاه را در یک اپلیکیشن مانند دوربین، باتری، مخاطبین و غیره ارائه می کنند.
مزایای استفاده از Cordova :
• دارای محیط برنامه نویسی قدرتمند می باشد.
• معمولاً در برنامه هایی که ايجاد مي شوند دارای هسته مشابه خواهند بود.
• برای کار با این فریم ورک نیاز به یادگیری زبان های مختلف نیست.
• در تولید اپلیکیشن با این نرم افزارها هزینه ها پايين تر است.
• طراحی رابط کاربری در این نرم افزارها بسیار سریع تر خواهد بود.
• به دلیل برنامه نویسی با javascript سرعت کد نویسی بالاتر است.
• قابلیت مولتی پلتفرم بودن (Android ،iOS ،Widnows Phone).
• قابلیت استفاده از فریم ورکهای تحت وب Bootstrap ،Angular JS
• قابلیت طراحی پلاگین برای ارتباط با سیستم عامل.
• برای استفاده در برنامه چت و وب سرویس ها مناسب می باشد.
• مناسب برای ساخت بازیهای آنلاین و آفلاین با تکنولوژیهای تحت وب.
• برای برنامه نویسان وب بسیار قابل درک است و می توانند به راحتی با آن کار کنند.
معایب استفاده از Cordova :
• برای توسعه بازی مناسب نیست، زیرا به پلاگین های پیشرفته ای نیاز دارد که در دسترس نیستند.
• برای اپلیکیشن های بزرگ بهینه نیست، زیرا اپلیکیشن های هیبرید کندتر از اپلیکیشن های نیتیو هستند.
• برطرف کردن خطا در این سیستم بسیار دشوار است دلیل این موضوع هم نبودن سیستم رفع خطای مناسب است.
• از نظر رابط کاربری باید طوري طراحی شود که کاربر حس کند از نرم افزارهای بوم استفاده می کنند.
• سرعت پایین نسبت به برنامه های native به دلیل استفاده از WebView.
• به صورت مستقیم نمی توان با نرم افزار گوشی ارتباط برقرار کرد.
• مستندات نسبتاً ضعیف نسبت به سایر پلتفرم ها.