0
0
اشتراک گذاری:

آموزش کار با View Binding

794 بازدید
view binding

آموزش کار با View Binding :

در این مقاله به آموزش چگونگی استفاده از کتابخانه View Binding در اندروید استودیو خواهیم پرداخت. اما پیش از شروع کار با این کتابخانه و پیاده سازی کردن آن در یک پروژه اندروید، بیایید کمی راجب ویژگی های آن بحث کنیم. ببینیم View Binding چیست و چه ویژگی هایی دارد؟ یا اینکه چرا استفاده ازین کتابخانه بسیار بهینه تر از findViewById میباشد؟ 

روش findViewById :

این روش یک روش قدیمی و مرسوم در برنامه نویسی اندروید برای شناسایی view ها میباشد که البته مشکلات زیادی برای برنامه نویسان ایجاد میکند. مشکلاتی نظیر کند کردن زمان ساخت و ایمن نبودن در برابر مقدار null و غیره. پیش ازین ها برنامه نویسان اندروید از کتابخانه Butter Knife برای شناسایی view های خود استفاده میکردند که در حال حاضر این کتابخانه نیز منسوخ شده محسوب میشود.

پلاگین Kotlin Android Extensions :

از زمان معرفی زبان برنامه نویسی کاتلین، برنامه نویسان دیگر دغدغه ای برای شناسایی view ها نداشتند. چرا که پلاگین Kotlin Android Extensions دارای قابلیتی برای شناسایی خودکار view ها در اکتیویتی بود. از آنجایی که اکثر برنامه نویسان اندروید به زبان کاتلین روی آورده بودند، دیگر کسی نگران findViewById و شیوه های دیگر شناسایی view نبود. چراکه پلاگین نامبرده شده این کار را هندل میکرد. 

محبوب شدن View Binding :

از وقتی که شرکت جت برینز اعلام کرد که دیگر پلاگین Kotlin Android Extensions منسوخ شده و پشتیبانی نمیشود، برنامه نویسان به سرعت شروع به جستوجو برای روش های جایگزین افزونه نامبرده کردند. چراکه دیگر برنامه نویسان کاتلین قادر به شناسایی view ها نبودند. اما گوگل و جت برینز، خود جایگزین پلاگین منسوخ شده را از پیش تعیین کرده بودند. این جایگزین View Binding میباشد. اگر منسوخ شدن پلاگین Kotlin Android Extensions برای شما هم غیر قابل تصور است و دلیل این کار را درک نمیکنید، می توانید مقاله ( دلایل منسوخ شدن Kotlin Android Extensions ) را مطالعه کنید. 

view binding
view binding

بهتر بودن View Binding از Data Binding :

کتابخانه Data Binding تنها برای آن دسته از XML هایی کلاس میسازد، که درون تگ قرار گرفته باشند. در نقطه مقابل View Binding میباشد که برای تمامی XML ها شروع به ساختن کلاس های Binding میکند. در ضمن Data Binding به علت ایجاد یک اتصال دو طرفه میان XML و کلاس های کاتلین، سبب افت سرعت در ساخت خواهد شد و در برخی موارد ممکن است بسیار کند ظاهر شود.

شیوه فعال سازی View Binding :

برای فعال سازی ویژگی View Binding کافیست تا قطعه کد viewBinding true را در فایل build.gradle مربوط به ماژول app برنامه خود اضافه کنید. اگر پلاگین Kotlin Android Extensions فعال است آن را حذف کنید. پس از این کار بایستی یک بار gradle پروژه شما sync شود. دقت کنید که در هنگام سینک کردن گردل حتما از نرم افزار های تغییر ip استفاده کنید تا گوگل ایرانی بودن شما را تشخیص نداده و api های خود را غیر قابل دسترس نکند. قطعه کد نمونه :

android {

    buildFeatures {
        viewBinding true
    }

}

شیوه استفاده از View Binding در اکتیویتی :

پس از انجام کارهای بالا، برای تمامی layout های شما یک کلاس با نام layout و ادامه نام Binding ساخته خواهد شد. یعنی اگر شما یک layout با نام main_layout داشته باشید، کلاسی تحت عنوان MainLayoutBinding برای شما ایجاد خواهد شد. حال کافیست از این کلاس ساخته شده برای دسترسی به view های خودتان استفاده کنید. مطابق قطعه کد زیر در اکتیویتی :

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)

        binding.test.setTextColor(Color.BLUE)

    }

}

احساس نیاز به آموزشی جدید :

زبان کاتلین در سال 2017 و در اثر معرفی گوگل به شهرت رسید. در سال 2017 و 2018 آموزش های زیادی برای این زبان برنامه نویسی منتشر شد که اکنون دیگر کمی این آموزش ها منسوخ شده محسوب میشوند. چراکه خیلی از روش های کدنویسی و بسیاری از کتابخانه ها منسوخ شده و جای خود را به روش های جدیدتر و حرفه ای تر داده اند. پس امروزه نیاز به یک پکیج آموزشی جدید و بروز رسانی شده که تمامی این تغییرات را پوشش دهد بیشتر احساس میشود. آموزشگام نیز در جهت بی نیازی کاربران شروع به تدوین بروز ترین و جدید ترین آموزش اندروید با استفاده از زبان کاتلین کرده است.

چکیده مطلب آموزش View Binding :

فهمیدیم که پلاگین Kotlin Android Extensions منسوخ شده و ما نیازمند استفاده از روشی جدید برای شناسایی view های خودمان خواهیم بود. این روش جدید View Binding میباشد که توسط گوگل معرفی شده است. با این روش به راحتی میتوانیم بدون افت سرعت، view های خودمان را شناسایی کرده و از آنها استفاده کنیم. برای فعال سازی این قابلیت نیز کافیست تا مقدار viewBinding را در فایل گردل خود برابر با true قرار دهیم.

خوب امیدوارم که حال دلتون خوب باشه.

به امید روزای بهتر…

آموزشگام را در شبکه های اجتماعی دنبال کنید :

آیا این مطلب را می پسندید؟
https://amozeshgam.ir/?p=4192
علیرضا احمدی
بنده علیرضا احمدی هستم توسعه دهنده اندروید، مدیر تولید محتوای وبسایت Amozeshgam و مسلط به زبان های برنامه نویسی جاوا، کاتلین، سی شارپ و PHP و نیز سابقه طراحی سایت با Css و Html. عاشق آموزش دیدن و آموزش دادن.
برچسب ها:

نظرات

6 نظر در مورد آموزش کار با View Binding

دیدگاهتان را بنویسید

  1. سلام آقای احمدی من پکیجای شما رو از سایت دانشجویار خریدم.تو دوره شما صحبتی از view binding نبود حالا میخاستم بدونم مثلا ما چندتا فانکشن داشته باشیم توی اکتیویتیمون چطوری باید از این view binding داخب همشون استفاده کنیم؟آیا باید برای همه فانکشن ها این کد رو قرار بدیم
    val binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)
    اگه میشه یه توضیح بدین یا مثل کلیپهای آموزشیتون یه کلیپ بسازین چون هیچ کلیپ یا آموزش درست حسابی نیست که بگه باید چطوری از این view binding در قسمتا مختلف استفاده کنیم..با سپاس

    6

    1. سلام و عرض ادب خدمت شما دوست عزیز

      در رابطه با پکیج بنده در وبسایت دانشجویار بایستی بگم که اون پکیج منسوخ شده و به علت پایان همکاری من با دانشجویار، بروزرسانی نشده. شما هم میتونید در صورت نارضایتی، مبلغ پرداختی خودتون رو از وبسایت نامبرده پس بگیرید.
      اما در خصوص سوالی که فرمودید؛ هندل کردن این سوال شما زیاد سخت نیست چرا که طبق آموزش همین مقاله، ما متغیر binding رو در بالای اکتیویتی تعریف میکنیم که داخل همه متد ها قابل دسترس هست. یعنی در onCreate مقدار دهی شده و در سایر توابع نیازی به مقدار دهی مجدد نخواهد بود.
      اما نکته حائز اهمیت اینه که شما هرچقدر برید جلوتر سردرگم تر خواهید شد. مثلا پیاده سازی ریسایکلر ویو با view binding و یا استفاده از فرگمنت ها در view binding که همه اینها چالش های سختی خواهد بود. بنده به دلیل اینکه حجم این بهم ریختگی ها زیاد بود، یک پکیج جدید آموزش برنامه نویسی اندروید تهیه و تدوین کرده که در این پکیج تمامی کد ها بروز و بدون مشکل هستند. از لینک زیر میتونید این پکیج رو دریافت کنید :

      دوره جدید آموزش برنامه نویسی اندروید با کاتلین

      با تشکر از همراهی شما

      4

      1. درود اقای احمدی.بنده تازه کارم از اموزشای اون پکیجاتون هم استفاده دارم میکنم اما یک نکته این که من اون آموزش جامعتون رو تا همین قسمت که به طراحی یه نرم افزار که سه تا عکس رو نشون میده رسیدم میخاستم بدونم با این آموزش جدید دوباره از کجا باید شروع کنم و اینکه اگه اموزش هاتون در دانشجویار منقضی شدن و کارایی ندارن آیا دیدنشون فایده ایی نداره و اگه نداره درخواست بازگشت وجه بدیم بازگشتی داده میشه یا خیر؟با سپاس فراوان

        3

        1. سلام مجدد

          آموزش جدید اندروید با آخرین تغییرات اندروید استودیو و تجربه های کسب شده بنده در حیطه آموزش مجازی تدوین شده. پکیجی که خریداری کردید، منسوخ شده و در بخش های مختلفی دارای مشکلات و نواقص بسیار هست. البته دیدن پکیج خالی از لطف نیست اما در پکیج جدید، نه تنها تمامی مباحث پکیج قبلی پوشش داده شده، بلکه کاملا جامع تر، بروز تر و کامل تر خواهد بود.
          بحث صرفا تبلیغ پکیج جدید نیست؛ چراکه بازخورد های فراوانی که برای من در تلگرام ارسال شده، حاکی از منسوخ شدن اون پکیج بوده. تا هر کجا که پکیج رو دیدین میتونید رها کرده و این پکیج رو از ابتدا شروع کنید. در پکیج جدید آموزش اندروید، مباحث طبقه بندی شده تر و بهینه تر شده و گذافه گویی ها تا حد ممکن حذف شدند. هر قسمتی که حس کردید یاد دارید یا مباحث براتون تکراری هست رو میتونید پشت سر گذاشته و برید سراغ قسمت بعدی.
          راجب سوال بازگشت وجه باید بگم چیزی که پشتیبانی وبسایت نامبرده به من گفته، حاکی از بازگشت مبلغ به خریداران ناراضی هستش. حتی گفته شده به زودی اون پکیج قراره حذف بشه و پکیج دیگه ای از مدرسی دیگه جایگزین اون بشه. اما اینکه آیا در عمل هم وجه پرداختی شما عودت داده میشه یا نه رو نمیدونم. اما انتظار میرفت قبل از خرید به شما اطلاع داده میشد که پکیج منسوخ شده هست.

          موفق باشید…

          4

          1. نه اقای احمدی شما مدرس بسیار خوبی هستین و واقعا توضیحاتتون عالیه من سه تا پکیج شما رو خریده بودم میخاستم یک پکیج دیگه هم دارید اونو هم خریداری کنم و قصدم واقعا یادگیریه اینکه شما هم این پکیج جدید رو معرفی میکنید خیلی هم عالیه که زحمتشو کشیدید حتما تهیه میکنم از اینکه سایت دانشجویار هم اطلاعی بابت این موضوع ندادن خیلی خالی از لطفه.به هر حال سپاس از راهنماییتون

            3