گردل چیست؟ کاربرد گردل در یونیتی و اندروید استودیو

گردل چیست؟ کاربرد گردل در یونیتی و اندروید استودیو

گردل چیست؟ کاربرد گردل در یونیتی و اندروید استودیو را بدانیم .

❕ چند سوال که باید درمورد گردل بدانید ⁉️

❓گرِیدِل(Gradle گردل) چیست؟

یک نوع سیستم بیلد ( سیستم سازنده یا build system ) که به build automation system ( سیستم سازنده خودکار ) هم معروف است .
این سیستم نوعی سیستم جدید بوده که برای روشهای جدید ساخت اپلیکیشن اندروید که نسبت به روشهای قدیم پیچیده تر شده ، بوجود آمده است و اوپن سورس ( متن باز ) است .
گردل ، از اجرای دستی عملیات های اجرای یک برنامه بصورت Run ، جلوگیری میکند و نیازی نیست که به ازای هر تغییری ، دوباره برنامه را بصورت دستی خروجی بگیریم .
با استفاده از Gradle Build System ، میتوانیم لیستی از Event ها و وظایف تنظیم کنیم که برای بیلد گرفتن اجرا شود .
بیلد سیستم ، برای جاوا و کاتلین و php و سی شارپ و ++C و js و groovy مورد استفاده قرار میگیرد و شنیده میشه که قراره دارت هم برای توسعه اندروید به گردل بپیونده!
اگه درمورد Command Line Interface یا CLI شنیدید ، میدونید که npm و pip و git و composer و … سایر پکیج ها و مخازن ها چه هستند . گردل ، یکسری کتابخانه ها و پکیج ها را از مخازن ها برای پروژه و Build شدن آنها دانلود میکند و میتوان از آن بعنوان کامندلاین هم بهره برد . پس گردل هم یک خط فرمان است!
این سیستم مانند بسیاری از سیستمهای اتوماتیک به ما کمک میکند تا یک برنامه قابل اجرا بسازیم . و وظایفی همچون :
جمع آوری فایلهای کامپایل شده ، مدیریت dependency ها ، دانلود کتابخانه های موردنظر برای اجرا ، پوشه بندی دوباره Resource ، ساخت فایل apk قابل اجرا و … را عهده دار است .
گریدل با جاوا ساخته شده ولی سینتکس های فایل build.gradle بصورتی هست که برنامه نویسان و توسعه دهندگان زبانهای دیگر بتوانند با خط فرمان های آن کار کنند . یکی از روشهای حل مشکل گردل هم که بعنوان راه دوازدهم استفاده کنید ، دستکاری فایل build.gradle هست که اگر تونستم توضیح درستی پیدا کنم بعدا توضیح خواهم داد . گردل دو روش خاص داره . Multi-distribution و Multi-apk . در روش اول یک apk خاص برای چندین سرویس و شرکت اختصاصی . دومی ساخت چندین فایل apk برای سازگاری با دستگاه ها و استفاده از خطوط کد اونها .

❓معایب گردل

✔️ سرعت پایین اشکالزدایی و اجرا
✔️ حجم بیشتر فایل ها نسبت به بیلدهای دستی
✔️ مشکلات Country در اتصال به سرورهای سازنده

❓استفاده گردل در یونیتی چیست؟

کسانی که اندروید استودیو کار میکنند اصلا نگران نصب گردل نباشند چون خود اندروید استودیو بصورت پیشفرض گردل داره و هنگام ورود به نرم افزار با روشن کردن یک فیلترشکن ساده ، گردل بصورت خودکار دانلود میشه .
اما برای یونیتی کار ها ، چون گردل قابلیت بیلد خودکار زبان سیشارپ رو هم داره ، میتونند از این سیستم استفاده کنند . البته اخیرا 80 درصد روشهای خروجی یونیتی به gradle وابسته ست چون بهینه سازی خروجی حکم میکند که گردل برای build گیری بهینه تر است .
اگر دقت کرده باشید ، در خروجی internal یونیتی های زیر 2019 ، ما به ازای هر خروجی باید به یک میزان خاصی صبر میکردیم . اما در خروجی با گردل ، جز یکی دوبار اول، بارهای بعدی از یکسری dependency ها و بسته بندی ها و کدها اجتناب میکرد ، زیرا از قبل آنها را اضافه کرده بود و زودتر تموم میشد .
پس گردل در یونیتی کاربرد متفاوتی نداره فقط در خروجی بکار میره نه در پروژه
جمع آوری کدهای مربوطه ==> تغییرات و اجراهای خطوط ==> جمع آوری های لازمه ==> تامین امنیت ==> خروجی با apk یا نوع مربوطه

❓ارورهای گردل یونیتی بابت چیه؟

قبلا هم گفتم که گردل یکی دوتا ارور فقط نیست!
یک ارور واحد + پنج الی شش هفت نوع ارور متفاوت!
بارزترینش ، با یک فیلترشکن یا تغییر ip یا dns حل میشه که در این مقاله به تمامی راه ها (https://t.me/SajadAhmadiNiat/342) ( بعدا هم اضافه میکنم ان شاالله ) اشاره کردم .
بارزترین ارور ، بخاطر دو چیز هست :
1 – نبود فایل گردل درست و مناسب
2 – ناهمگامی نسخه های پشتیبانی SDK و Jre و Gradle پیشفرض یونیتی
سایر نسخه ها هم عللی به دور از اینها نداره ولی ممکنه کمی راه هاش کم و بیش باشه .

❓چرا یونیتی و اندروید استودیو به گردل نیاز دارن؟

نیازی به گفتن من نیست وقتی این جمله دوست گلمون علیرضا عیسی زاده هست 👇🏻👌🏻
شاید یک مثال ساده برای درک اهمیت gradle در اندروید استودیو کافی باشد. یکی از وظایفی که بر عهده gradle می باشد code generation است. code generation یعنی کد های شما توسط یکی از task های gradle خوانده می شود و سپس کد هایی جدیدی تولید می شوند که در کنار کد های شما اجرا می شوند. برای مثال کلاس R در اندروید توسط gradle ساخته می شود. هر بار که یک id به عناصر یکی از layout هایمان اضافه می کنیم این id باید در کلاس R اضافه شود تا از کلاس اکتیویتی مان قادر به پیدا کردن عناصر درون layout مان باشیم. مطمئنا اضافه کردن id ها به کلاس R به صورتی دستی توسط برنامه نویس بسیار وقت گیر است و احتمال بروز اشتباهات زیادی توسط برنامه نویس وجود دارد.
حالا فهمیدید چرا اندرویداستودیو از گردل استفاده میکنه؟
پس همون تعبیر رو میتونیم برای خروجی کدها در یونیتی قرار بدیم + توضیحاتی که داده میشه یا داده شد .
گردل برای اجرا نیاز به JVM یعنی ماشین مجازی جاوا داره پس jre حتما مهمه که نصب باشه!

❓آیا گردل در ایران مسدود است یا تحریم؟

چرا دریافت گردل در ایران نیاز به تغییر IP و فیلترشکن دارد؟ آیا فیلترینگ مانع شده است یا تحریم؟
گرِیدِل(گردل) به دلیل اینکه از مخازن mavenCentral و Google برای دریافت کتابخانه ها و Library ها استفاده میکند ، برای ایرانی ها قابل دریافت نیست و تحریم است .

https://git.ir/lynda-gradle-for-java-developers
https://gradle.com/training/?_ga=2.11840445.842512527.1641505734-1075345520.1641148272 
این چند لینک میتونه به شما کمک کنه تا بتونید با گردل کار کنید .

پس چی شد؟ گردل یک سیستم خودکار بیلد هست که امکانات بهینه تر و بهتری رو برای build در اختیارمون میذاره و از پراکندگی و پیچیدگی مسیر جلوگیری میکنه .

امیدوارم بدردتون خورده باشه دوستای گلم
این چندهفته دارم رو گردل مانور میدم که ان شاالله دیگه کسی اصلا مشکل گردل نداشته باشه و هرکس تا خواست بگه گـــ براش بفرستید تا یاد بگیره!

توی کانال تلگرامیم هم درمورد گردل زیاد گفتم . حتما عضو شید ( SajadAhmadiNiat@ آموزش های سجاد احمدی نیت ) تا از آموزش های دیگه هم بهره ببرید و کاملتر باشه براتون !

امیدوارم که این مطلب بدرد شما خورده باشد . سعی کردم در تالیف و کامل بودن مطالب ، بکوشم . لطفا در انتشار آن ، دیگران را هم سهیم فرمایید .

نویسنده : سجاد احمدی نیت

کلمات کلیدی : گردل ، گردل در یونیتی ، گردل چیست ، گردل اندروید استودیو ، Gradle چیست