جلسه اول: معرفی و ایجاد پروژه "سلام دنیا!"
در این وبسایت تصمیم داریم به آموزش کامپایلر رایگان اندروید استودیو (Android Studio) که برای برنامه نویسی اپلیکیشن های اندروید مورد استفاده قرار میگیرد بپردازیم. اندروید استدیو بدون شک بهترین کامپایلر برای برنامه نویسی اندروید می باشد و هر چه زودتر باید از محیط های دیگر که پشتیبانی از آنها متوقف شده است به Android Studio مهاجرت کنید. اندروید استودیو به دلایل زیر برای آموزش انتخاب شده است:
- کاملا رایگان و قانونی است.
- کمی سنگین است اما قدرت آن به سرعت پایین آن می ارزد.
- توسط سایت رسمی اندروید پیشنهاد شده و گوگل از آن حمایت می کند.
- متناسب با تکنولوژی روز بوده، پیوسته آپدیت می شود و توابع منسوخ شده را در کد شما گوشزد می کند. [مهم]
- به شما اجازه می دهد کدهایی بنویسید که در نسخه های مختلف اندروید کدهای متناسب با نسخه ی جاری را اجرا کند. [مهم]
- به اندازه ای باهوش است که اگر در برنامه ای از دستوری استفاده کنید که نیاز به مجوز خاصی داشته باشد آنرا گوشزد می کند. [مهم]
- به راحتی دانلود و نصب می شود و برای مبتدی ها مشکلات پیکره بندیِ eclipse و دانلود ده ها فایل جدا و رعایت تناسب فایلها را ندارد.
- از شبیه سازهای قدرتمند بهره میگیرد، هر چند ما به دلیل داشتن پردازنده AMD از دستگاه واقعی اندروید برای تست استفاده می کنیم.
- از Gradle برای تنظیم پروژه استفاده می کند که با ویرایش فایلهای متنی آن می توانید بخش های مختلف پروژه ی خود را پیکره بندی کنید.
- رابط کاربری در حال طراحی (UI) را "بدرستی" نمایش می دهد و با یک کلیک می توانید آن را در تبلت و موبایل و .. با رزولیشن های مختلف ببینید.
- متناسب با شیوه نوین طراحی UI یعنی متریال دیزاین ایجاده شده است. (رابط کاربری طبیعی شبیه جوهر روی کاغذ و القا حس ورق زدن مجله واقعی)
برای دانلود اندروید استودیو کافیست عبارت "دانلود android studio" را در گوگل جستجو کنید تا آخرین نسخه ی آن را در سایت های دانلود فارسی زبان بیابید. در ضمن قبل از نصب اندروید استودیو باید JDK نیز بر روی سیستم شما نصب شود (معمولا لینک دانلود آنرا در کنار دانلود اندروید استودیو پیدا خواهید کرد) JDK نیز رایگان است و محصولی از شرکت Sun می باشد که بعدا توسط Oracle خریداری شد و کار JDK کامپایل کدهای Java است. اگر موقع معرفی JDK به استدیو یا معرفی متغیرهای محیطی و JAVA_HOME و ... به مشکل برخورد کردید (با توجه به تنوع مشکلات) همیشه عبارت خطا را عیناً در گوگل جستجو نمایید تا راه حل را بیابید. در این زمینه سایت های بسیاری را خواهید یافت که به صورت تصویری و گویا روش نصب اندروید استدیو و حل مشکلات را آموزش داده اند.
پس از نصب و راه اندازی اندروید استودیو (Android Studio) و کلیک روی Icon آن با پنجره ی زیر مواجه می شوید:
در این پنجره لیستی از پروژه های اخیر قرار گرفته است و امکان ایجاد پروژه جدید، باز کردن پروژه ی اندروید استدیو از مکانی دیگر، وارد کردن ( Import) پروژه های قدیمی از اکلیپس (Eclipse) و غیره میسر می باشد.
ما برای شروع روی Start a new Android Studio project کلیک می کنیم تا یک پروژه ی جدید ایجاد نماییم. پنجره ای مطابق شکل زیر باز می شود:
در این پنجره در قسمت Application name باید نام پروژه ی خود را بنویسیم. ما عبارت SalamDonya را می نویسیم. (منظور همان عبارت معروف Hello World است که بعنوان اولین پروژه ی هر برنامه نویس به منظور آشنایی با محیط جدید ایجاد می شود) در قسمت Company Domain باید نام دامنه ی خود را بنویسید. اگر وب سایت ندارید نام و فامیل خود را با بدون فاصله و با یک نقطه در وسط بنویسید. مثلا: Behnam.zakizadeh قسمت بعدی Package name نام دارد و بطور خودکار از روی نام دامنه و نام پروژه ایجاد می شود و معمولا شامل سه بخش می باشد که باید در دنیا منحصر بفرد باشد. چون معرف برنامه ی شماست و به همین دلیل بهتر است که بخشی از آن، نام دامنه باشد (بدلیل منحصر به فرد بود در دنیا). در بخش Project Location نیز محل ذخیره ی پروژه مشخص شده است. بعنوان یک قانون بهتر است همیشه نام پوشه ها در کامپیوتر بدون فاصله و با کاراکترهای انگلیسی باشد. پس از تکمیل بخش ها روی Next کلیک میکنیم، پنجره ی زیر باز می شود:
در این پنجره گزینه ی Phone and Tablet را تیک می زنیم و از بخش Minimum SDK پایین ترین نسخه ی اندروید را که قرار است از برنامه ی ما پشتیبانی کند انتخاب می نماییم. بهتر است همیشه نسخه ی 2.1 یا 2.2 را انتخاب کنید. بلافاصله عدد 100.0% در توضیحات زیر آن نمایش داده می شود. بدین معنی که برنامه ی ما تقریباً در تمام موبایل های دنیا نصب خواهد شد. پس از تکمیل، کلید Next را کلیک نمایید. پنجره ی زیر را مشاهده خواهید کرد:
در این پنجره قالبهایی به شما پیشنهاد می شود تا برنامه ی خود را با ویرایش کردن آنها ایجاد کنید. ما فعلا این کار را پیشنهاد نمی کنیم چون بلافاصله با کدهایی شلوغ که بصورت خودکار ایجاد شده اند مواجه می شوید که شما را سر در گم خواهد کرد. فعلا Empty Activity را انتخاب کرده و Next را کلیک کنید. پنجره ی زیر نمایش داده می شود:
در این پنجره می توانید نام دو فایل Activity Name و Layout Name را تغییر دهید. فعلا این نام ها را ویرایش نکنید. (توجه داشته باشید که یک پروژه ی اندروید در ساده ترین حالت شامل یک پنجره یا صفحه است که پس از لمس آیکن اپلیکیشن در گوشی نمایش داده می شود. این صفحه از دوفایل مجزا تشکیل شده است. یکی فایل کد اجرایی که به آن اکتیویتی گفته می شود و دیگری فایل نمای گرافیکی یا ظاهر که به آن لایه یا لِیاوت می گویند - مبحث UI). روی Finish کلیک کنید تا پروژه ی شما ایجاد شود. ایجاد شدن پروژه بسته به سیستم شما ممکن است دقایقی به طول بیانجامد. ما مجبور شدیم برای کار با اندروید استودیو RAM خود را به 6GB ارتقا دهیم و همیشه 3.5GB در اختیار ویندوز 10 و اندروید استدیو است. پس از دقایقی پنجره ی اصلی محیط اندروید استدیو (Android Studio) را مشاهده خواهید کرد که مطابق شکل زیر است:
در این پنجره دو فایل MainActivity.java و Activity_main.xml بصورت باز شده قرار دارند. فایل java شامل کد پنجره و فایل xml حاوی رابط گرافیکی (UI) برنامه است. معمولا هر فایل xml مربوط به یک فایل java می باشد. اگر در داخل فایل جاوا دقت کنید مشاهده می کنید که عبارت (R.layout.activity_main) به نام فایل xml اشاره می کند و این بدین معناست که تابع setContentView در فایل اکتیویتی یا java وظیفه دارد که فایل xml یا UI را به فایل کد پیوند بزند. روی فایل Activity_main.xml کلیک کنید. محتوای این فایل xml ظاهر گرافیکی برنامه را تشکیل می دهد:
حال از سمت راست بر روی زبانه ی Preview کلیک کنید تا پیش نمایش ظاهر برنامه بصورت گرافیکی نشان داده شود:
از سربرگ پایین روی Design کلیک نمایید تا تصویر زیر ظاهر شود:
تفاوت حالت xml و preview با حالت Design در اینست که در حالت Text بایستی کد XML را ویرایش کنید و نتیجه را بصورت همزمان ببینید ولی در حالت Design می توانید از منوی سمت چپ آیتم ها و ابزارها را کشیده و بر روی صفحه قرار دهید و فایل XML بصورت خودکار ایجاد می شود. در حین انجام پروژه و طراحی از هر دو این حالت ها استفاده خواهیم کرد. در پنجره ی Design با انتخاب هر شی داخل صفحه می توانید از پنجره ی Properties سمت راست، خصوصیات آن شی را تغییر دهید. این کار در فایل XML با قرار دادن عباراتی نظیر android:text="Hello World!" صورت می پذیرد.
پنجره ی سمت چپ به نام Project فایل های پروژه ی شما را نمایش می دهد. اکیداً پیشنهاد می شود مطابق شکل زیر روی Android کلیک کرده و Project را انتخاب کنید تا تمام فایل ها و فولدرهای پروژه ی شما نمایش داده شود:
در این حالت دو شاخه ی اصلی نمایش داده می شود. شاخه ی اول حاوی فایل های پروژه ی شماست (SalamDonya) و شاخه ی دوم حاوی کتابخانه های خارجی (External Libraries).
در شاخه ی فایل های پروژه پوشه ای به نام app قرار دارد. فایل های پروژه ی شما در این پوشه قرار می گیرد. داخل app پوشه های libs و src از بقیه مهم ترند. libs محلی برای قرار دادن کتابخانه های jar مختلف مثل کتابخانه ی تبلیغات بازار و غیره است. src نیز خود شامل پوشه هایی می باشد. در داخل src دو پوشه ی java و res قرار دارد. java حاوی فایلهای کد، اکتیویتی ها و کلاسهای جاواست (تمام فایلهایی که پسوند java دارند) و پوشه ی res هم منابع برنامه (مثل عکس ها، فایل های صوتی، دیتا بیس ها، فایلهای xml رابط کاربری یا همان UI). داخل res پوشه هایی قرار دارد؛ drawable معمولا برای عکسها و فایلهای xml انیمیشن مورد استفاده قرار میگیرد. layout برای فایلهای xml رابط کاربری، values شامل فایلهایی برای قرار دادن رشته های داخل برنامه به زبان های مختلف و mipmap ها برای قرار دادن عکسهایی که قرار است در گوشی هایی با رزولیشن مختلف نمایش داده شود. در حالت عادی هر گوشی بسته به رزولیشن نمایشگر خود عکس ها را در اندازه های مختلفی نمایش می دهد. مثلا یک گوشی قدیمی سامسونگ مثل Galaxy Pocket با تراکم پیکسلی 143 احتمالا در رده ی ldpi قرار می گیرد و Nexus 7 در محدوده xhdpi. مسلما اگر شما یک عکس 100x100 پیکسل را در پوشه ی drawable قرار دهید در گوشی pocket مثلا به اندازه یک حبه قند نشان داده می شود و در گوشی nexus به اندازه ی یک عدس.
mdpi - 48 x 48 --> 160dpi
hdpi - 72 x 72 --> 240dpi
xhdpi - 96 x 96 --> 320dpi
xxhdpi - 144 x 144 --> 480dpi
xxxhdpi - 192 x 192 --> 640dpi
برای حل این مشکل استانداردهایی قرار داده شده و پوشه هایی با نام mipmap در زیرشاخه res قرار گرفته است. برای حل مشکل روزلیشن بایستی عکس های مهم مثل آیکن برنامه را در اندازه های لیست شده در جدول بالا ایجاد کنید و هر عکس را در پوشه مربوطه کپی نمایید. بدین ترتیب اگر کاربر برنامه شما را روی pocket یا Galaxy Gio نصب کند آیکن برنامه از پوشه های ldpi یا mdpi انتخاب می شود (36 پیکسل یا 48 پیکسل) و اگر روی Nexus 7 نصب کند آیکن باکیفیت 96 پیکسلی از پوشه mipmap-xhdpi انتخاب می شود. این کار بصورت هوشمند و توسط سیستم عامل گوشی صورت می پذیرد. معمولا برنامه نویس های مبتدی در اکثر برنامه ها فقط یک فایل آیکن ایجاد می کنند و مثلا فقط در پوشه ی mdpi یک آیکن 48x48 پیکسل قرار می دهند. در این صورت اگر برنامه در گوشی ldpi نصب شود اندروید ابتدا پوشه ی ldpi را برای آیکن و سایر عکسها بررسی می کند، اگر فایلی را پیدا کند که آن را نشان می دهد ولی اگر پیدا نکند به سراغ پوشه ی بعدی یعنی mdpi می رود و سعی می کند خودش عکس 48 پیکسلی را کوچک کند و بجای آیکن نمایش دهد و اینکار باعث نمایش عکس بصورت بلور می شود. همچنین اگر صاحل یک Nexus 7 برنامه را نصب کند ابتدا اندروید پوشه ی xhdpi را چک می کند اکر عکسی نبود پوشه بعدی یعنی hdpi و اگر با هم پیدا نکرد به سراغ mdpi می رود و سعی می کند آیکن 48 پیکسلی را تا اندازه 96 پیکسل بزرگ کند که فاجعه بار است و یک آیکن بی کیفیت و مات به کاربر نشان می دهد و در داخل برنامه هم عکسها بصورت کوچک یا مات مشاهده می شود.
با رعایت این موارد می توانید برنامه هایی با گرافیک بالا طراحی کنید تا کاربران از گرافیک برنامه های ایرانی گله مند نباشند و برنامه های های خارجی را به رخ نکشند. مطالب بسیار زیادی در خصوص سایر پوشه ها و منابع و نمایش زبان های مختلف و UI های مختلف در حالت چرخش گوشی و غیره وجود دارد که فعلا توضیح نمی دهیم تا حالت آموزش پروژه محور را حفظ کرده باشیم و فعلا فقط پیش نیازها را بیان می کنیم تا کمی با محیط آشنا شوید و بدانید که چه چیزی را کجا قرار دهید و کدام فایل در کجا قرار دارد.
به فایل activity_main.xml باز می گردیم. اگر آن را بسته اید می توانید از پوشه res/layout آن را بیابید. این فایل ظاهر گرافیکی اولین برنامه ی ما را تشکیل می دهد. یک UI فوق العاده ساده که فقط شامل یک لایه نسبی (RelativeLayout) و یک TextView در داخل آن است. TextView همان Label است که در سایر زبانهای ویژوال وجود دارد و برای نمایش یک متن بکار می رود. RelativeLayout نیز یک لایه والد می باشد که سایر اجرا درون آن قرار می گیرند. فایل XML لایه را بصورت زیر ویرایش کنید:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="16dp" android:paddingBottom="16dp" android:layoutDirection="ltr" tools:context=".MainActivity"> <TextView android:text="سلام دنیا!" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:gravity="right" android:id="@+id/textView2" android:textColor="#000000" /> </RelativeLayout>
حال نوبت به ساخت، آزمایش و انتقال برنامه به گوشی می رسد. برای تست برنامه سه راه پیش رو دارید: اول اینکه از شبیه سازهای داخلی استفاده کنید. این شبیه سازها به CPUی Intel احتیاج داشته و از آنجاییکه ما از پردازنده ی AMD استفاده می کنیم این گزینه را کنار گزاشته ایم.
راه حل دوم اتصال یک دستگاه واقعی اندروید به کامپیوتر و اجرای برنامه در دستگاه می باشد. این روش بهترین روش ممکن است چرا که براحتی می توانید تمام امکانات برنامه مثل ارسال و دریافت SMS و غیره را در محیط واقعی تست کنید. ما از این روش بهره گرفته ایم. برای این کار ابتدا باید تمامی درایورهای گوشی خود را روی سیستم نصب کنید. پیشنهاد ما اینست که نرم افزار اصلی تلفن را از سایت سازنده دریافت و نصب کنید. مثلا نرم افزار گوشی های سامسونگ kies نام دارد. با نصب این نرم افزار تمام درایورهای USB گوشی نصب می شود (البته در یکی از مراحل نصب سوال می شود و باید به برنامه اجازه داد). مرحله بعد روشن کردن گزینه ی Developer Mode در گوشی می باشد و با فعال کردن این گزینه در گوشی و اتصال آن با کابل USB به کامپیوتر دیگر درایوی در My Computer نمایش داده نمی شود و گوشی بعنوان یک دستگاه (شبیه به مودم) شناسایی می شود. پس از اتصال گوشی براحتی می توانید دکمه ی فلش سبز رنگ (Play) را در بالای Android Studio کلیک کنید تا برنامه کامپایل شده و در گوشی بارگزاری و اجرا شود.
گزینه سوم ایجاد فایل APK و انتقال آن به تلفن بصورت دستی (بلوتوث، زاپیا، ایمیل، کابل و غیره) می باشد. البته این روش برای ایجاد نسخه ی نهایی و امضا شده ی برنامه و انتقال به فروشگاه اندروید هم بکار می رود. برای ایجاد فایل APKی امضا شده از منوی Build روی Generate Signed APK کلیک کنید. اگر اولین بار است که این کار را انجام می دهید در پنجره جدید روی Create new کلیک کنید. پنجره ای بار می شود و در اینجا می توانید یک کلید برای خودتان ایجاد کنید تا از این به بعد تمام برنامه هایتان با این کلید امضا شود. فایده ی این کار اینست که اگر سورس برنامه شما به سرقت برود یا فردی بخواهد برنامه ای همنام با برنامه ی شما ایجاد و پخش کند چون به کلید شما دسترسی ندارد و برنامه اش را با کلید خودش امضا کرده است برنامه ی وی هرگز روی گوشی های کاربرانی که قبلا برنامه ی شما را نصب کرده اند نصب نخواهد شد. مثلا با این روش شما هرگز نمیتوانید یک برنامه به نام بازار بسازید و آن را به عنوان نسخه ی بالاتر جا بزنید، چرا که سیستم عامل گوشی به محض بررسی آپدیت برنامه ها امضای آنها را نیز چک می کند و فقط به برنامه ای اجازه ی Replace شدن با برنامه نصب شده می دهد که اولا نسخه آن بالاتر باشد (لزوما نه) و ثانیا امضای آن با امضای برنامه ی نصب شده یکی باشد.
پس دقت داشته باشید که با دقت و با اطلاعات صحیح کلید خود را بسازید و آنرا در جای امنی نگه داری کنید و حتما فایل آن را روی CD نیز داشته باشید چراکه در صورت از دست دادن امضای خود هرگز قادر به آپدیت کردن برنامه ها در مارکت های معتبر نخواهید شد. توجه داشته باشید که با همین یک کلید می توانید تمام برنامه های اندروید خود را امضا کنید و محدودیتی وجود ندارد. در واقع دقیقاً مانند امضاء واقعی شماست که معرف شماست و برنامه های شما از این طریق اعتبار پیدا می کنند.
برای ایجاد یک کلید در پنجره ی New Key Store ابتدا یک آدرس انتخاب کنید مثلا درایو D و یک نام دلخواه انگلیسی. (درایو C و دسکتاپ و داکیومنت را انتخاب نکنید چرا که معمولا به دلایل امنیتی به مجوز ادمین نیاز است و keytool قادر به ایجاد فایل نخواهد بود). در بخش پسورد هم یک پسورد دلخواه وارد کنید و در فیلد روبرو آنرا تکرار نمایید. در فیلد Alias یک نام دلخواه دیگر برای کلید خود (متفاوت با نام اصلی کلید) انتخاب کنید و برای آن رمزی انتخاب کنید، پیشنهاد می شود تمام رمزها یکسان باشد. (رمزها را هرگز فراموش نکنید چون کلید شما بلااستفاده می شود). در فیلد Validity هم یک عدد بزرگ مثلا 100 را انتخاب کنید که در این صورت کلید شما پس از 100 سال باطل خواهد شد. می توانید عدد بزرگتری را انتخاب کنید. در فیلدهای Certificate نیز حداقل باید یکی را پر کنید. مثلا ما فیلد Organization را پر کردیم. شما می توانید فیلد نام را پر کنید. دکمه OK را کلیک کنید تا کلید شما ساخته شود.
پس از کلیک OK بلافاصله پنجره زیر نمایش داده می شود. در ضمن هر بار که از منوی Build روی Generate Signed APK کلیک کنید این پنجره نمایش داده خواهد شد که در صورت خالی بودن باید ابتدا کلید Choose existing را کلیک کنید و فایل کلید خود را انتخاب نمایید و سپس رمز Key store password را وارد کنید و پس از وارد کردن رمز، روی سه نقطه جلوی فیلد Key alias کلیک کنید و از پنجره باز شده نام Alias که برای کلید خود انتخاب کرده بودید را برگزینید (بصورت پیشفرض برگزیده شده است) و سپس Key password را نیز وارد کرده و روی Next کلیک کنید. (رمزها را موقع ساخت کلید یکسان در نظر بگیرید تا در وارد کردن رمز نیز دچار مشکل نشوید).
پس از کلیک Next پنجره ای مطابق با شکل زیر نمایش داده می شود. در این پنجره روی Finish کلیک کنید و منتظر بمانید تا فایل apk امضا شده ایجاد شود.
پس از مدتی (بسته به قدرت سیستم شما تا 5 دقیقه) کار کامپایل برنامه تمام می شود و پنجره ای کوچک مطابق شکل زیر نمایش داده می شود. روی د:مه ی Show in Explorer کلیک کنید تا فایل APK نمایش داده شود. نام فایل نهایی همیشه app-release.apk می باشد. می توانید این فایل را در مموری کارت گوشی خود کپی و نصب کنید و نتیجه را مشاهده نمایید.
بدین ترتیب اولین برنامه خود را در اندروید استدیو ایجاد و نصب نمودید. این مراحل برای ایجاد هر پروژه ی اندروید تکرار می شود. ممکن است تنها مورد آزار دهنده سرعت محیط اندروید استودیو و نیز سرعت کامپایل آن باشد. این برنامه هنوز در نسخه های ابتداییست و ممکن است در نسخه های بعدی این موارد بهبود پیدا کنید. ولی به هر حال مشکلاتی که موقع استفاده از اکلیپس برای ما ایجاد شد سبب شد تا به این محیط پر قدرت مهاجرت کنیم. همچنین توجه داشته باشید که Eclipse خود یک محیط پر قدرت و اوپن سورس می باشد که قابل پیکره بندی برای انواع کامپایلرها و زبانهاست، اما گوگل پس از ایجاد اندروید استدیو دیگر پلاگینهای مربوطه را برای این محیط رایگان عرضه نمی کند و هیچ گونه پشتیبانی در خصوص eclipse ارائه نمی دهد. بطور مثال ممکن است برنامه ای با اکلیپس بنویسید که بدون خطا کامپایل شود ولی چون آپدیت نشده و نخواهد شد هرگز توابع منسوخ شده را به شما گوشزد نمی کند و ممکن است برنامه ی شما در یک گوشی جدید اصلا اجرا نشود. مشکل Force Close که در برنامه های نمایشگر سی شارپ، نمایشگر وی بی و نمایشگر بسکام، درست پس از آمدن نسخه ی 4.0 اندروید برای ما ایجاد شد به خاطر استفاده از اکلیپس بود که هر گز نیاز به مجوز "نوشتن در مموری کارت" را گوشزد نکرده بود و نیز مشکل اجرا نشدن برنامه ی یادآور در نسخه ی 4.2 اندروید باز هم بخاطر ایکلیپس بود که هرگز منسوخ شدن تابع set در AlarmManager و جایگزینی آن را تابع setExact را گوشزد نکرده بود و به محض مهاجرت به Android Studio مشاهده کردیم که تمام کد های مشکل دار به صورت هایلایت به نمایش درآمده و تمام ایرادها و راه حل های جایگزین توسط اندروید استدیو نشان داده شد. به همین خاطر سعی کنید از محیط های دیگر دل بکنید و به اندروید استدیو بپیوندید.
در جلسات بعدی آموزش پروژه محور به معنای واقعی آغاز می شود. بدین صورت که ما پروژه هایی را بصورت آماده از قبل نوشته ایم و در ابتدای هر آموزش برای دانلود قرار داده ایم. در طی آموزش بخش های مختلف پروژه را توضیح می دهیم تا با امکانات مختلف و شیوه کد نویسی و نمونه کدهای واقعی در حال اجرا آشنا شوید و براحتی با ویرایش پروژه ها و یا استفاده از توابع آنها پروژه های خود را بسازید.
صفحه اصلی