مقدمه
شرکت Adobe در سال ۲۰۱۱ یک ایده شگفت انگیز ارائه کرد و آن هم این بود که فون گپی را با هدف کدزنی اپلیکیشنهای موبایلی و با استفاده از زبانهای برنامه نویسی تحت وب در اختیار تحلیلگران و برنامهنویسان عصر تکنولوژی و ارتباطات گذاشت و باعث شد برنامه نویسان با استفاده از آن، اطلاعات خود را به صورت Open Source در اختیار جهان قرار دهند تا نه تنها مورد استفاده قرار بگیرد؛ بلکه با همفکری و تبادل نظر، موجبات پیشرفت روزافزون این صنعت را فراهم آورده و از آن بهرهبرداری اقتصادی شود. بنابراین ادوبی پیادهسازی ایده خود را توسط سرشناسترین شرکت حامی پروژههای متن باز به نام آپاچی و تحت عنوان پلتفرم Cordova عملی کرد.
Apache Cordova به عنوان اولین پلتفرم متن باز با مجموعه ای از پلاگینهای از پیش ساخته، برای ساختن و توسعه آپها یا نرم افزارهای تلفن همراه در اختیار برنامه نویسان قرار گرفت. پلاگینهای آماده Cordova برای ارائه دسترسی کاربر به فایلهای سیستم، دوربین، لوکیشن و… طراحی شدهاند و آن را به یک محیط برنامه نویسی قدرتمند تبدیل کردهاند که برنامه نویسی با انواع زبانهای وب و مخصوصا جاوا اسکریپت را بسیار آسان کرده است. با مطالعه آموزش Cordova، یاد خواهید گرفت که چگونه با استفاده از این پلتفرم، زمان و هزینه طراحی و ساخت آپها را به حداقل رسانده و به راحتی خروجی خود را بر روی سیستم عاملهای مختلف اجرا کنید.
تاریخچه
در سال ۲۰۰۹ یک استارت آپ متعلق به شرکت Nitobi اقدام به ارائه یک API متن باز با نام تجاری فون گپ کرده و در قالب چهارچوب آن فعالیت خود را ادامه داد. این API برای دسترسی به منابع Native تلفنهای همراه مورد استفاده قرار میگرفت و وظیفه داشت اپلیکیشنهای تلفن همراه را با استفاده از فناوریهای استاندارد و موردتایید وب، تولید کند که خوشبختانه این استارت آپ در گذر زمان پیشرفت کرده و مورد توجه جمع قابل توجهی از برنامه نویسان و طراحان وب قرار گرفت.
در سال ۲۰۱۱ شرکت Adobe شرکت Nitobi را خریداری کرد و هسته اصلی کدهای فون گپ را در اختیار شرکت Apache قرار داد. Apache در آن زمان، فعال و مشهور در زمینه پروژههای متن باز بود و از حامیان این گونه پروژهها به حساب میآمد. Cordova در سال ۲۰۱۱ رسما توسط شرکت آپاچی کلید خورد.
جالب است بدانید پروژه کوردوا به نام خیابانی در کانادا که برنامه نویسان این پروژه در آن ساکن بودهاند؛ نامگذاری شده است. ایده Apache Cordova روز به روز توسعه یافت و امروزه به عنوان یک محیط کراس پلتفرمی مناسب برای استفاده از وب سرویسها توصیه میشود. از این رو، آموزش Cordova برای برنامه نویسان وب، امری ضروری است.
Cordova چیست؟
Cordova یک پلتفرم متن باز با پلاگینهای از پیش ساخته است. در استفاده از وب سرویسها، Apache Cordova به عنوان یک پل ارتباطی بین وب اپلیکیشنها و دستگاههای موبایل عمل میکند که وظیفه متصل کردن آنها به یکدیگر را بر عهده دارد.
Cordova برای ساخت اپلیکیشنهای موبایل از کدهای جاوا اسکریپت، HTML ،CSS استفاده کرده؛ با تولید مجموعهای از APIها امکان دسترسی به قابلیتهای Native یا محلی هر تلفن همراه از قبیل سیمکارت، لیست مخاطبین، دوربین، میکروفون، لوکیشن، قطب نما و… را فراهم میسازد تا یک Web view کامل را ارائه دهد. به طور خلاصه فریم وورک Cordova مجموعهای از کتابخانههای جاوا اسکریپت یک پارچه و هماهنگ را ایجاد میکند که با استفاده از کدهای Native هر دستگاه موبایل، قابل دسترسی هستند.
کاربردهای Cordova
Cordova بر روی هر کدام از پلتفرمها و سیستم عاملهای Android، iOS، Windows، Firefox، OS، Blackberry، Tizen، Web OS، Symbian، Ubuntu کاربرد دارد و به راحتی قابل پیاده سازی و اجرا است. به همین علت است که برای ساخت بازیهای آنلاین و آفلاین با تکنولوژیهای تحت وب، برنامههای چت و وب سرویسها مناسب میباشد.
خبر خوش دیگر، این که با آموزش Cordova دیگر نیازی به آموزش زبان تمام پلتفرمها ندارید؛ چرا که هسته اصلی مربوط به اکثر آپهای تولید شده دارای چارچوب شبیه به هم هستند و این نکته که Cordova بر روی اکثر سیستم عاملها قابل اجرا میباشد؛ نقطه قوت Cordova به حساب میآید. چنانچه به برنامه نویسی اندروید علاقهمند میباشید میتوانید از فیلمهای آموزشی فرادرس استفاده کنید.
مزایای Cordova
اگر بخواهیم آنچه گفته شد را به عنوان لیستی از مزایا دستهبندی کنیم؛ در آموزش Cordova با بسیاری از نقاط قوت این پلتفرم روبرو خواهیم شد که به صورت خلاصه تعدادی از این نقاط قوت در زیر آورده شده است.
- یک پلتفرم Open Source رایگان بوده و از لحاظ انعطافپذیری، برای توسعه اپلیکیشنهای کراس پلتفرم مناسب است.
- Cordova اپلیکیشن را به پلتفرمهای دیگر زیرشاخه خود منتقل میکند پس به این ترتیب، سرعت توسعه اپلیکیشن را بالا برده و باعث آسان شدن مراحل کدنویسی میشود.
- Cordova افزونههای رایگان زیادی دارد که چند کتابخانه و فریمورک را در اختیار کاربر قرار میدهد. ابزارهای توسعه در این پلتفرم دارای تنوع و گوناگونی فراوان است؛ به طوری که به طرز قابل توجهی نیاز کاربران در این زمینه را برطرف میکند؛ علاوه بر آن، ساخت پروتوتایپ در پلتفرم Cordova بسیار سریعتر از نمونههای مشابه موجود است پس به کاهش هزینهها و صرفه جویی در زمان برنامه نویس کمک میکند.
- بر روی چندین پلتفرم و سیستم عامل قابل اجرا و پیاده سازی است؛ قابلیت طراحی پلاگین برای ارتباط با سیستم عامل را دارد و این قابلیت Cordova را به یک محیط برنامه نویسی قدرتمند تبدیل کرده است.
معایب Cordova
همه ما به این نکته واقف هستیم که هر برنامه، پلتفرم یا حتی نرم افزاری که به وسیله برنامه نویسان طراحی و پیاده سازی میگردد؛ درکنار مزایایی که دارد؛ همواره نقاط ضعف و ایراداتی هم ممکن است داشته باشد. Cordova هم همانند تمام ساختههای ذهن انسان، معایبی دارد که در ادامه به بیان آنها میپردازیم.
- به خاطر نداشتن ابزار اعلام خطای مناسب و نبود مستندات و گزارشات تحلیلی کافی، تشخیص خط و برطرف کردن آن در برنامههای گسترده و تیمی، مشکل است پس Cordova در این زمینه نمیتواند بهینه عمل کند.
- به دلیل کند عمل کردن اپلیکیشنهای هیبرید نسبت به اپلیکیشنهای Native و بخاطر اجرای مجموعه کدها در Web View، در آپهای بزرگ کند عمل کرده و کارایی آن آپ را پایین میآورد.
- فاقد پلاگینهای بزرگ گیمهای حرفهای میباشد؛ بنابراین برای توسعه این نوع گیمها مناسب نیست.
بنابراین در مقاله آموزش Cordova، میتوان نتیجه گرفت که در حوزههای پیشرفته و پروژههای عظیم برنامه نویسی مربوط به کلان داده، Cordova نواقص خاص خود را دارد که در حال حاضر برنامه نویسان و تحلیلگران وب به دنبال برطرف کردن این نواقص هستند.
معماری Cordova
Cordova با اشغال کردن فضای موجود در هر آپ به وسیله یک Web View، با هدف بارگذاری فایلهای جاوا اسکریپت و CSS صفحهای در اپلیکیشن Native ایجاد میکند که مبنای اجرای آن بر اساس فایل مشترک Config.xml است.
وظیفه Config.xml ارائه اطلاعاتی در زمینه آپ مورد بررسی و پارامترهای مربوط به آن آپ میباشد که مستقیما بر روی عملکرد اپلیکیشن توسعه یافته تاثیر میگذارد. آپ Cordova در حالت اولیه و پیشفرض خود مانند یک صفحه وب در نظر گرفته میشود که با نام Index.html به انواع سورسهای مورد نیاز برای اجرای اپلیکیشن ارجاع میدهد و میتواند یک Web View درقالب آپ Native را اجرا کند.
نمودار زیر یک طراحی از معماری Cordova را نمایش میدهد.
نصب Cordova
برای محقق شدن آموزش Cordova ابتدا باید اقدام به نصب نرم افزاری آن کنید. برای این منظور، سه مرحله وجود دارد:
مرحله اول: این که Node.js را نصب کنید؛ دلیل آن هم این است که Cordova روی پلتفرم Node.js پیاده سازی و اجرا میشود. برای نصب این پلتفرم به سایت https://nodejs.org/en/ مراجعه کنید. توصیه میشود که نسخه LTS نصب شود.
مرحله دوم: آخرین نرم افزار گیت را از سایت http://git-scm.com/ دانلود و نصب کنید تا کامپوننتهای پیشفرض مورد نیاز برای نصب Cordova به صورت خودکار نصب و ایجاد شوند.
مرحله سوم: در این مرحله، با استفاده از ابزار مدیریت پکیج Npm، امکان نصب خودکار ماژول Cordova ایجاد شدهاست. برای نصب Cordova روی ویندوز، ابتدا باید دستور زیر را از نوار اعلان ویندوز اجرا کرده و مراحل بعدی را دنبال کنید.
C: \>npm install -g cordova
هر زمان که در نوار اعلان ویندوز پیغام زیر را مشاهده کردید؛ برنامه Cordova در ویندوز شما به طور کامل نصب شده است. این پیغام حاوی ورژن نسخه نصب شده، میباشد.
cordova --version
چگونه یک اپلیکیشن Cordova ایجاد کنیم؟
برخلاف دیگر نرم افزارها که با طی شدن مراحل نصب یک محیط برنامه نویسی در اختیار کاربر قرار میدهند؛ اپلیکیشن Cordova از نوار اعلان ویندوز شروع به کار میکند و همین نکته Cordova را از دیگر اپلیکیشنها متمایز میسازد. بعد از نصب اپلیکیشن Cordova، باید از نوار فرمان دستور زیر را اجرا کنیم:
cordova create app com.xyz.app app
به این ترتیب اولین اپلیکیشن Cordova ایجاد شده و آماده کدنویسی میباشد. شما میتوانید با دانش قبلی که از CSS، جاوا اسکریپت و دیگر زبانهای برنامه نویسی وب دارید؛ شروع به نوشتن کدها و فراخوانی پلاگینها کنید. برای آموزش HTML و CSS میتوانید از مجموعه آموزشی فرادرس استفاده کنید.
مسیر کدنویسی در Cordova
در مسیر کدنویسی گامهای مختلفی وجود دارد که این مسیر را برای برنامه نویس هموار میسازند و به او این امکان را میدهد که بتواند از ابتدا تا انتهای مسیر کدنویسی لذت ببرد. در ادامه آموزش Cordova گامهای مسیر را برایتان تشریح میکنیم:
گام اول – آشنایی با CLI
کراس پلتفرم برای توزیع انواع آپ، بدون نیاز به توسعه مورد استفاده قرار میگیرد. رابط خط فرمان Cordova به عنوان ابزاری تعریف شده است که وظیفه هدایت شروع مسیر کدنویسی به عنوان یک ابزار برای ساخت نرم افزار تلفن همراه سازگار با انواع سیستم عامل و پلتفرم استفاده میشود.
CLI یا رابط خط فرمان، یک اپلیکیشن جدید برای Cordova ایجاد کرده و توزیع آن روی پلتفرمهای محلی موبایل را مدیریت میکند پس در ابتدای مسیر، ایفای نقش اصلی بر عهده CLI است که شامل گروهی از دستورات خاص برای افزایش سرعت توسعه آپ موبایل، از جمله تست کردن و توزیع اپلیکیشن روی انواع سیستم عاملها و پلتفرمها میباشد و به این ترتیب برای Cordova یک ابزار حیاتی محسوب میشود.
به نحوی که بدون وجود CLIها Cordova نمیتواند هیچ مرحلهای را پردازش کند. کاربرد دیگر CLIها این است که با استفاده از آن میتوان پلاگینها را به عملیات توسعه افزود و اپلیکیشنهای موبایل را علاوه بر روی آپهای محلی بر روی اپلیکیشنهای هیبرید هم شبیهسازی و اجرا کرد.
گام دوم – ایجاد رابط کاربری
در گام دوم به یک رابط کاربری نیاز داریم که میتواند برای پلتفرم بزرگتر و توسعه یافته به عنوان یک ترکیبگر کامپوننت قوی عمل کند پس WebView رابط کاربری اپلیکیشنها برای Cordova محسوب میشود و آن اپلیکیشن را با کامپوننت موردنظر ترکیب میکند. این عمل دقیقا همانند آوردن چند نوع میوه و ترکیب آنها با دیگر میوهها در سبد میوه است.
گام سوم – طراحی و توسعه
در این مرحله، وب اپلیکیشنها کانون و بخش اصلی کدنویسی توسعه نرم افزار محسوب میشوند که در واقع صرفاً یک صفحه وب است که به وسیله کدنویسی با HTML ،CSS و JavaScript ساخته شده است و درواقع، Cordova یک اپلیکیشن ایجاد میکند که در Config.xml مقداردهی میشود.
گام چهارم – ارتباط اینترفیسها
همان گونه که در اکوسیستم حیات وحش، نظم و پیوستگی خاصی وجود دارد؛ در اکوسیستمهای تحت وب هم مسئول برقراری نظم همان پلاگینها هستند که بین اینترفیس Cordova و کامپوننتهای Native مسئولیت برقراری ارتباط منظم را دارند که این اینترفیس امکان اجرای کد Native را از جاوا اسکریپت فراهم میسازد.
عملکرد Cordova چگونه است؟
در انتهای آموزش Cordova و در زمان اجرای آپ تلفن همراه، Cordova صفحه آغازین را که همان Index.html است؛ داخل WebView بارگذاری کرده و مسئولیت کنترل آن را به WebView میسپارد. در ادامه، امکان تعامل اپلیکیشن را با Input کردن دادهها از طریق فیلدهای ورودی، کلیک روی دکمهها و مشاهده نتایج در WebView اپلیکیشن فراهم ساخته و برای دسترسی به اطلاعات محلی تلفن همراه، یک مجموعه از APIهای جاوا اسکریپت را ارائه میکند تا توسعهدهندگان اپلیکیشن در کد جاوا اسکریپت خود از آنها استفاده کنند.
سخن آخر در مورد آموزش Cordova
در آخر توصیه میشود که اگر در زمینه توسعه نرم افزارها با اپلیکیشنهای کوچک فعالیت میکنید؛ برای یک بار هم که شده از Cordova استفاده کنید و متون مربوط به آموزش Cordova را با دقت مطالعه کنید. اگر به یادگیری برنامه نویسی اندروید علاقه دارید، توصیه میکنیم مطلب آموزشی آموزش اندروید از صفر – راهنمای شروع برنامه نویسی اندروید بصورت گام به گام را حتما مطالعه نمایید. از این که تا آخر این بحث با ما همراه بودید؛ از شما متشکریم و امیدواریم در ادامه مباحث مربوط به این آموزش که در آینده ارائه خواهدشد نیز با ما همراه باشید. منتظر نظرات و پیشنهادات شما هستیم.