آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

۱ مطلب در آبان ۱۴۰۴ ثبت شده است

Plugin:  به خود Gradle / build system قابلیت اضافه می‌کنه
Dependency: یه کتابخونه‌ی کد یه که خود اپلیکیشن ازش استفاده می‌کنه

اول بفهمیم Gradle خودش چیه
تو پروژه Android، Gradle همون «سیستم ساختن پروژه»ـست (build system):

  • کدهای .kt و .java رو کامپایل می‌کنه
  • resourceها رو جمع می‌کنه (layout, drawable, string, …)
  • ازشون APK / AAB می‌سازه
  • تست‌ها رو اجرا می‌کنه، lint، shrink، obfuscate و…

یعنی: وقتی روی Run یا Build می‌زنی:  پشت‌صحنه Gradle داره کار می‌کنه.
حالا ما می‌خوایم به این Gradle بگیم:
پروژه من Android appـه زبانش Kotlinه از Compose استفاده می‌کنه و در خود app هم از یک سری کتابخونه مثل Retrofit, Room, … استفاده می‌کنم.
این‌جاست که Plugin و Dependency وارد می‌شن؛ ولی نقش‌شون فرق داره.



Plugin دقیقا چیه؟
افزونه برای Gradle یعنی یه تیکه کد که روی خود Gradle اجرا می‌شه، نه روی گوشی کاربر.
کارش اینه که:

  • به Gradle یاد بده این پروژه از چه نوعیه

         مثلا: Android Application؟ Android Library؟ Java Library؟

  • به Gradle قابلیت‌های جدید اضافه کنه

    taskهای جدید: assembleDebug, bundleRelease, lint, test …

         بلوک‌های DSL جدید: android {}, kotlinOptions {}, composeOptions {}

 

 

1. com.android.application

 

 

  • به Gradle می‌گه:
    این پروژه یک Android Application هست، نه یک Java ساده.

  • بعد از این پلاگین، تازه می‌تونی بنویسی:

    android { compileSdk = 35 ... }                                                                                 
     

 

         به Gradle می‌گه:

  • برای این پروژه، باید Kotlin رو هم کامپایل کنی.

  • compiler Kotlin رو به chain build اضافه می‌کنه.

نکته مهم:
کد Plugin هیچ‌وقت داخل APK کاربر نمی‌ره.
فقط موقع build، روی سیستم توسعه‌دهنده/CI اجرا می‌شه.




Dependency .3

 

  • موقع compile کد تو دیده می‌شن

  • کلاس‌هاشون وارد APK / AAB می‌شن

  • وقتی اپ روی گوشی کاربر اجرا می‌شه، این کتابخونه‌ها هم اونجا هستن




     

 

خلاصه‌ی کوتاه

  • Plugin

    • روی Gradle اجرا می‌شه

    • فرایند build رو تعریف و مدیریت می‌کنه

    • توی APK نمی‌ره

  • Dependency

    • توی کد اپ استفاده می‌شه

    • توی APK بسته‌بندی می‌شه

    • روی گوشی کاربر اجرا می‌شه

هر وقت شک کردی، از خودت بپرس:
«این چیزیه که موقع build لازمه، یا چیزی که داخل اپ و روی گوشی اجرا می‌شه؟»

  • اگه جواب: «موقع build» → احتمالاً Plugin

  • اگه جواب: «داخل اپ» → قطعاً Dependency

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ آبان ۰۴ ، ۱۷:۳۱
میم دال