..

اپاچی کوردوا

من برنامه نویس خوبی نیستم ( راستش بخوام بگم اصلاً برنامه نویس نیستم ) بخاطر همین معمولاً سعی میکنم با اسکریپت و کد ور برم تا با استرینگ و و متغیر و کانکارنسی و این حرفا . همون طور که میدونید زبان پیشفرض برنامه نویسی اندروید جاوا هستش البته به لطف NDK هم میشه از زبان‌های c و ++c تو پروژه استفاده کرد ولی کیه که همچین زحمتی به خودش بده . به هر حال گوگل داره روی جایگزین کردن این زبان با golang فکر میکنه که البته فکر خوبی هم هستش البته من ترجیح میدادم ruby باشه ولی خب همیشه همه چیز اونجوری پیش نمیره که ما میخوایم . داشتم میگفتم که با توجه به علاقه بی حد و حصر به توسعه وب من بیشتر با پلتفرم های مختلف این قضیه کار میکنم یعنی وقتی پایتان کار میکنم معمولاً دور ور flask میچرخم چون ساده است . و اصلاً سمت django نمیرم . بخاطر همین تو توسعه اندروید هم ترجیح میدم بیشتر با خط فرمان و اسکریپت ور برم تا اینکه پشت Android Studio وقت طلف کنم .

یه مشکلی که اکثر زبان‌های برنامه نویسی دارن این هستش که نمیشه بدون دستکاری کد منبع برنامه رو بین پلتفرم های مختلف جا به جا کرد . خب ابزار هایی به وجود اومدن که این کارو انجام بدن ولی تا حال حاضر به جز ++c استاندارد و golang من همچین قابلیت تو زبان‌های دیگه ندیدم . خب راه حل چیه . یه برنامه ننویس مثل من ترجیح میده از cordova استفاده کنه که یه برنامه توسعه یافته توسط آپاچی هستش تا وب اپلیکیشن های مارو که با html و جاوا اسکریپت نوشتیم بویلد کنه . البته پروژه های جانبی مثل phonegap و ionic هم در کنارش توسعه پیدا میکنه که اون ها هم جالب هستن ولی باز از هسته cordova استفاده میکنن .

خب برای نصب cordova ما به چند چیز احتیاج داریم من فرض میزارم اینکه سیستم عامل شما لینوکس دبیان بیس هستش البته که میتونید همه این مراحل در توزیع‌های دیگه هم اجرا کنید

در ابتدا کافیه nodejs و npm رو دریافت کنید

sudo apt-get install nodejs npm

سپس بر اساس مستندات کوردوا کافیه در ترمینال این دستور رو وارد کنیم تا اخرین نسخه دانلود بشه

npm install -g cordova

خب تا اینجای کار همه چیز به خوبی و خوشی انجام شده . قسمت بد ماجرا تحریم های ظالمانه گوگل علیه دولوپر های عزیزمون هستش . پس با یه تغییر ip که انجام میدین google sdk manager رو دریافت میکنید فقط به دلیل جلوگیری از ارور های بعدی لطفا اخرین نسخه android sdk platform tools و android sdk build tools بعلاوه android 22 و 23 رو دریافت کنید . به دلیل اینکه راه های زیادی برای دریافت sdk manager هست در این مورد زیاد توضیح نمیدم . فقط یادتون باشه همه چیز باید آپدیت باشه . بخاطر همین به یه اینترنت خوب نیاز دارید بعد از نصب sdk manager و مشتقاتش حالا نیاز که اون رو به PATH سیستم بشناسونیم . برای من که از zsh استفاده میکنم کافیه در قسمت /home//.zshrc</code> قرار بدین و برای bash که اکثر کاربرا استفاده میکنن کافیه در همین مسیر .bashrc این رو قرار بدین کافیه تایپ کنید

nano /home/username shoma/.bashrc

و سپس این هارو به اخرش اضافه میکنیم

export PATH=$PATH:/home/<user>/Android/Sdk/tools
export PATH=$PATH:/home/<user>Android/Sdk/platform-tools

سپس کد source /home//.bashrc</code> رو وارد کنید تا پروفایل شما ری استارت بشه البته توجه کنید که sdk manager من در دایرکتوری Android/sdk قرار داره که احتمالا با شما متفاوت هستش پس ادرس خودتون باهاش عوض کنید سپس اقدام به نصب jdk میکنیم

sudo apt-get install openjdk-8-jdk

لازم هستش که java رو هم به سیستم شناسونده بشه پس با دستور

sudo gedit /etc/environment

و قرار دادن این کد

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

که البته بازم بنا به معماری سیستم شما این ادرس میتونه متفاوت باشه . سپس کافیه کد source /etc/environment رو وارد کنید تا شناسونده بشه حالا اگه همه چیز خوب پیش رفته باشه باید با زدن همچین کد هایی برنامه سمپل hello کوردوا بویلد بشه

cordova create hello com.example.hello HelloWorld
cd hello
cordova platform add android
cordova build android

اگر که بویلد شد خوب و اگر نشد ارور ها شامل دوتا ارور عمده میشه ارور اول exit code 2 هست که به خاطر اپدیت و نصب نبودن sdk manager و android target 22 هستش . ارور exit code 8 زمانی به وجود میاد که در سیستم 64 بیتی مفسر سیستم 32 نباشه که با وارد کردن دستور زیر در ترمینال حل میشه

sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1

به دلیل کند بودن امولاتور اندروید من استفاده از genymotion رو به شدت توصیه میکنم من عادت به نوشتن همچین متن های بلند نصب و توسعه ندارم . اگه سوالی داشتید میتونید از تویتر یا گیتهابم یا ایمیلم که توی قایل کانفیگ بلاگ هست اقدام کنید