مهدی عادلی فر
بنیانگذار توسینسو و برنامه نویس

معرفی Cordova

در حال حاضر پلتفرم های مختلفی برای دستگاه های موبایل وجود دارد و هرکدام از دستگاه های موبایل و تبلت به یک سیستم عامل مربوط به خود مجهز هستند که این سیستم عامل ها از نظر ساختاری با هم تفاوت هایی دارند. سه پلتفرم مطرح در دستگاه های موبایل و تبلت اندروید و IOS و ویندوز می باشد. حال اگر شما بخواهید که برای هرکدام از این پلتفرم ها برنامه هایی تولید کنید مشکلی پیش نمی آید. شما پلتفرم خود را انتخاب کرده و با توجه به پلتفرم انتخاب شده شروع به برنامه نویسی و تولید اپلیکیشن برای آن پلتفرم خواهید کرد. برای مثال اگر شما پلتفرم اندروید را استفاده کرده باشید با استفاده از زبان جاوا و xml و کتابخانه های ارائه شده توسط گوگل تولید برنامه خواهید کرد. و یا برای ویندزو فون هم با استفاده از فریمورک قوی .Net و زبان C# می توانید این کار را انجام بدهید و همچنین برای سیستم عامل IOS می توانید شروع به نوشتن برنامه به زبان objective-c کنید. حال مشکل زمانی پیش می آید که شما بخواهید برنامه ای بنویسید که قادر باشد در همه پلتفرم ها قابل اجرا باشد. در حال حاضر اپلیکیشن های بسیاری موجود می باشند که برای هرسه پلتفرم موجود می باشند. مانند بسیاری از اپلیکیشن های اجتماعی مانند تلگرام و وایبر و لاین و ... مرورگرهایی مانند کروم. حال برای این که بخواهیم یک اپلیکیشن برای هر سه پلتفرم داشته باشیم راه اولیه آن این است که برای هر پلتفرم یک نسخه داشته باشیم و طبیعتا هر نسخه به همان زبان مربوط به همان پلتفرم نوشته شده است. مشکل از این قسمت شروع می شود. به این شکل که اگر کسی بخواهد که یک برنامه برای سیستم های موبایلی داشته باشد باید به برنامه نویسی به هر سه پلتفرم مسلط باشد و یا در تیم خود اعضایی داشته باشد که هر سه پلتفرم را پوشش دهند. انجام اعمال گفته شده باعث بالا رفتن هزینه تولید و تغییر برنامه خواهد شد. اما مزیت هایی از قبیل بومی (native) بودن برنامه ها خواهد داشت. که این خصوصیت باعث بالا رفتن سازگاری برنامه با محیط اجرا خواهد شد و همچنین سرعت اجرا هم بالاتر خواهد بود. ولی در سیستم های کنونی که منابع سخت افزاری قوی دارند شاید سرعت مشکل جدی نباشد اما با توجه به سرعت بالای تغییرات باید بتوان هرچه زودتر آپدیت ها را انجام داد و مشکلات کاربران به سرعت حل شود. به دلایل گفته شده امکان دارد که این تغییرات در حالت بومی کند باشد. اگر شما یک برنامه نویس به زبان .Net باشید می توانید با استفاده از Xamarin شروع به برنامه نویسی برای هر سه پلتفرم با زبان C# کنید. ولی مشکلی که در کار با Xamarin وجود دارد این است که برای مثال اگر شما بخواهید با Xamarin برای اندروید برنامه بنویسید باید به همه ی مفاهیم گفته شده در اندروید مانند اکتیویتی و سایر قسمت ها تسلط داشته باشید و کل قوانین که در زبان اندروید رعایت می شود را رعایت کنید و فقط به جای استفاده از زبان جاوا از زبان C# استفاده کنید. مزیتی که این روش دارد این است که می توانید از قدرت زبان C# در تولید برنامه هایتان استفاده کنید. ولی مشکلاتی که وجود دارد این است که Xamarin برای آن که روی هر پلتفرمی نصب شود کتابخانه های mono را روی آن سیستم نصب خواهد کرد. همچنین همانطور که گفته شد باید به ساختار پلتفرم مقصد تسلط داشته باشید. راه حلی که می توان برای بسیاری از برنامه ها مورد استفاده قرار داد این است که از یک فریمورک استفاده کنیم که در همه پلتفرم ها قابل استفاده باشد و همچنین زبان برنامه نویسی آن نیز ساده باشد. یکی از فریمورک هایی که این راه حل را ارائه می دهد فریمورک Cordova می باشد. در این مطلب به معرفی این فریمورک خواهیم پرداخت.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
با سلام به همه دوستان و همراهان Itpro.ir. در حال حاضر پلتفرم های مختلفی برای دستگاه های موبایل وجود دارد و هرکدام از دستگاه های موبایل و تبلت به یک سیستم عامل مربوط به خود مجهز هستند که این سیستم عامل ها از نظر ساختاری با هم تفاوت هایی دارند. سه پلتفرم مطرح در دستگاه های موبایل و تبلت اندروید و IOS و ویندوز می باشد. حال اگر شما بخواهید که برای هرکدام از این پلتفرم ها برنامه هایی تولید کنید مشکلی پیش نمی آید. شما پلتفرم خود را انتخاب کرده و با توجه به پلتفرم انتخاب شده شروع به برنامه نویسی و تولید اپلیکیشن برای آن پلتفرم خواهید کرد. برای مثال اگر شما پلتفرم اندروید را استفاده کرده باشید با استفاده از زبان جاوا و xml و کتابخانه های ارائه شده توسط گوگل تولید برنامه خواهید کرد. و یا برای ویندزو فون هم با استفاده از فریمورک قوی .Net و زبان C# می توانید این کار را انجام بدهید و همچنین برای سیستم عامل IOS می توانید شروع به نوشتن برنامه به زبان objective-c  کنید. حال مشکل زمانی پیش می آید که شما بخواهید برنامه ای بنویسید که قادر باشد در همه پلتفرم ها قابل اجرا باشد. در حال حاضر اپلیکیشن های بسیاری موجود می باشند که برای هرسه پلتفرم موجود می باشند. مانند بسیاری از اپلیکیشن های اجتماعی مانند تلگرام و وایبر و لاین و ... مرورگرهایی مانند کروم. حال برای این که بخواهیم یک اپلیکیشن برای هر سه پلتفرم داشته باشیم راه اولیه آن این است که برای هر پلتفرم یک نسخه داشته باشیم و طبیعتا هر نسخه به همان زبان مربوط به همان پلتفرم نوشته شده است. مشکل از این قسمت شروع می شود. به این شکل که اگر کسی بخواهد که یک برنامه برای سیستم های موبایلی داشته باشد باید به برنامه نویسی به هر سه پلتفرم مسلط باشد و یا در تیم خود اعضایی داشته باشد که هر سه پلتفرم را پوشش دهند. انجام اعمال گفته شده باعث بالا رفتن هزینه تولید و تغییر برنامه خواهد شد. اما مزیت هایی از قبیل بومی (native) بودن برنامه ها خواهد داشت. که این خصوصیت باعث بالا رفتن سازگاری برنامه با محیط اجرا خواهد شد و همچنین سرعت اجرا هم بالاتر خواهد بود. ولی در سیستم های کنونی که منابع سخت افزاری قوی دارند شاید سرعت مشکل جدی نباشد اما با توجه به سرعت بالای تغییرات باید بتوان هرچه زودتر آپدیت ها را انجام داد و مشکلات کاربران به سرعت حل شود. به دلایل گفته شده امکان دارد که این تغییرات در حالت بومی کند باشد. اگر شما یک برنامه نویس به زبان .Net باشید می توانید با استفاده از |Xamarin::gsm.tosinso.com/articles/27534| شروع به برنامه نویسی برای هر سه پلتفرم با زبان C# کنید. ولی مشکلی که در کار با Xamarin وجود دارد این است که برای مثال اگر شما بخواهید با Xamarin برای اندروید برنامه بنویسید باید به همه ی مفاهیم گفته شده در اندروید مانند اکتیویتی و سایر قسمت ها تسلط داشته باشید و کل قوانین که در زبان اندروید رعایت می شود را رعایت کنید و فقط به جای استفاده از زبان جاوا از زبان C# استفاده کنید. مزیتی که این روش دارد این است که می توانید از قدرت زبان C# در تولید برنامه هایتان استفاده کنید. ولی مشکلاتی که وجود دارد این است که Xamarin برای آن که روی هر پلتفرمی نصب شود کتابخانه های mono را روی آن سیستم نصب خواهد کرد. همچنین همانطور که گفته شد باید به ساختار پلتفرم مقصد تسلط داشته باشید. راه حلی که می توان برای بسیاری از برنامه  ها مورد استفاده قرار داد این است که از یک فریمورک استفاده کنیم که در همه پلتفرم ها قابل استفاده باشد و همچنین زبان برنامه نویسی آن نیز ساده باشد. یکی از فریمورک هایی که این راه حل را ارائه می دهد فریمورک Cordova می باشد. در این مطلب به معرفی این فریمورک خواهیم پرداخت.
||http://tosinso.com/files/get/17784f56-2577-4582-81c1-4c5c5c6d1521||
کوردوا پلتفرمی است که برای ساخت برنامه های موبایل با استفاده از زبان های HTML و CSS, JavaScript استفاده می شود. می توان کوردوا را به این شکل در نظر گرفت که کوردوا یک اتصال بین اپلیکیشن تحت وب و دستگاه موبایل ما ایجاد می کند که بتوانیم از قابلیت های موبایل در آن استفاده کنیم. ممکن است که اپلیکیشن تحت وب شما نتواند از همه قابلیت های موبایل شما استفاده کند به همین دلیل از کوردوا استفاده می کنیم. کوردوا یک پل ارتباطی بین اپلیکیشن تحت وب و دستگاه موبایل شما فراهم می کند. با استفاده از کوردوا ما می توانی از قابلیت های موبایل مانند دوربین و GPS و سیستم فایل و سایر قابلیت های  آن استفاده کنیم. برای این که کسی بتواند از کوردوا استفاده کند باید به زبان ها HTML, CSS, JavaScript مسلط باشید.
--
!!ویژگی های Cordova
--
!!!!واسط دستوری خط فرمان (Cordova CLI)
--
این ابزار برای ساخت یک پروژه جدید مورد استفاده قرار می گیرد. از قابلیت های دیگر این ابزار این است که می توان برای پلتفرم های مختلف برنامه را ساخت. به این معنی که برنامه ساخته شده را به پلتفرم مقصد publish کرد. همچنین با استفاده از این ابزار می توان برای نصب پلاگین ها و سایر ابزارهای کوردوا استفاده کرد.
--
!!!!بخش های هسته ی Cordova
--
کوردوا اجزایی را برای کاربران فراهم می کند که در هر برنامه موبایلی لازم است. این اجزا می توانند برای ساخت اصول و پایه های یک برنامه مورد استفاده قرار بگیرند. در حالی که با استفاده از خود زبان بومی ممکن است کار زیادی برای پیاده سازی آن لازم باشد ولی این فریمورک این بخش ها را دارا می باشد.
--
!!!!پلاگین های  Cordova
--
کوردوا مجموعه APIهایی را ارائه می کند که بتوان از قابلیت های خود دستگاه موبایل برای تولید برنامه ها استفاده کرد.
--
!!مزایای Cordova
--
* کوردوا فریمورکی برای ساخت برنامه های موبایل ترکیبی ارائه می کند که این برنامه ها می توانند در پلتفرم های Android, IOS, Winows Phone, Amazon-fireos, blackberry, Firefox OS , Ubuntu , tizien اجرا شود.
* تولید برنامه با استفاده از کوردوا برای چند پلتفرم سریعتر از ساخت برنامه به زبان بومی آن پلتفرم است و در زمان بسیار صرفه جویی خواهد شد.
* به علت این که ما برای تولید برنامه های کوردوا از JavaScript و HTML استفاده می کنیم نیازی نیست که زبان محلی پلتفرم ها را یاد بگیریم.
* کتابخانه ها و افزونه های بسیاری برای استفاده در کوردوا وجود دارد که می توانید آنها را مورد استفاده قرار دهید.
--
!! محدودیت های Cordova
--
* برنامه های ترکیبی سرعت اجرای پایین تری نسبت به برنامه های بومی دارند بنابراین کوردوا برای ساخت برنامه های بسیار بزرگ که نیاز به داده ها و کارایی های زیادی دارند مناسب نیست.
* با توجه به تنوع بسیار زیاد دستگاه های موبایل ممکن است که برنامه ساخته شده با همه دستگاه ها به صورت کامل سازگار نباشد.
* برخی از پلاگین ها مشکل سازگاری با دستگاه ها و پلتفرم های مختلف دارند و همچنین برخی از API ها در دستگاه ها وجود دارد که هنوز از طرف کوردوا پشتیبانی نمی شوند. 
* اگر پلتفرمی تغییر کند باید صبر کنیم تا آن تغییر در کوردوا هم اعمال شود تا بتوانیم از امکانات جدید استفاده کنیم. 
پس از بیان مزایا و معایب کوردوا باید دقت کنیم که این برنامه در کجا و در چه زمانی قابل استفاده است. *Itpro باشید*


نویسنده: مهدی عادلی فر 
منبع: انجمن تخصصی فناوری اطلاعات ایران 
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

کوردوا پلتفرمی است که برای ساخت برنامه های موبایل با استفاده از زبان های HTML و CSS, JavaScript استفاده می شود. می توان کوردوا را به این شکل در نظر گرفت که کوردوا یک اتصال بین اپلیکیشن تحت وب و دستگاه موبایل ما ایجاد می کند که بتوانیم از قابلیت های موبایل در آن استفاده کنیم. ممکن است که اپلیکیشن تحت وب شما نتواند از همه قابلیت های موبایل شما استفاده کند به همین دلیل از کوردوا استفاده می کنیم. کوردوا یک پل ارتباطی بین اپلیکیشن تحت وب و دستگاه موبایل شما فراهم می کند. با استفاده از کوردوا ما می توانی از قابلیت های موبایل مانند دوربین و GPS و سیستم فایل و سایر قابلیت های آن استفاده کنیم. برای این که کسی بتواند از کوردوا استفاده کند باید به زبان ها HTML, CSS, JavaScript مسلط باشید.


ویژگی های Cordova


واسط دستوری خط فرمان (Cordova CLI)


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


بخش های هسته ی Cordova


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


پلاگین های Cordova


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


مزایای Cordova


    • کوردوا فریمورکی برای ساخت برنامه های موبایل ترکیبی ارائه می کند که این برنامه ها می توانند در پلتفرم های Android, IOS, Winows Phone, Amazon-fireos, blackberry, Firefox OS , Ubuntu , tizien اجرا شود.
    • تولید برنامه با استفاده از کوردوا برای چند پلتفرم سریعتر از ساخت برنامه به زبان بومی آن پلتفرم است و در زمان بسیار صرفه جویی خواهد شد.
    • به علت این که ما برای تولید برنامه های کوردوا از JavaScript و HTML استفاده می کنیم نیازی نیست که زبان محلی پلتفرم ها را یاد بگیریم.
    • کتابخانه ها و افزونه های بسیاری برای استفاده در کوردوا وجود دارد که می توانید آنها را مورد استفاده قرار دهید.

محدودیت های Cordova


  • برنامه های ترکیبی سرعت اجرای پایین تری نسبت به برنامه های بومی دارند بنابراین کوردوا برای ساخت برنامه های بسیار بزرگ که نیاز به داده ها و کارایی های زیادی دارند مناسب نیست.
  • با توجه به تنوع بسیار زیاد دستگاه های موبایل ممکن است که برنامه ساخته شده با همه دستگاه ها به صورت کامل سازگار نباشد.
  • برخی از پلاگین ها مشکل سازگاری با دستگاه ها و پلتفرم های مختلف دارند و همچنین برخی از API ها در دستگاه ها وجود دارد که هنوز از طرف کوردوا پشتیبانی نمی شوند.
  • اگر پلتفرمی تغییر کند باید صبر کنیم تا آن تغییر در کوردوا هم اعمال شود تا بتوانیم از امکانات جدید استفاده کنیم.

پس از بیان مزایا و معایب کوردوا باید دقت کنیم که این برنامه در کجا و در چه زمانی قابل استفاده است. Itpro باشید

نویسنده: مهدی عادلی فر

منبع: انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.


مهدی عادلی فر
مهدی عادلی فر

بنیانگذار توسینسو و برنامه نویس

مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.

نظرات