Amin Rahkan | امین راه کان
Amin Rahkan | امین راه کان
خواندن ۴ دقیقه·۲ سال پیش

مقایسه View Binding و Data Binding


دو مفهوم نسبتا جدیدی که این روزها به مباحث برنامه نویسی علی الخصوص برنامه نویسی موبایل اندروید اضافه شده است دو مفهوم Data Binding و View Binding هست که قصد دارم در این پست به مقایسه و معرفی این دو بپردازم.

هر دو اینها یعنی Data Binding و View Binding دو رویکرد متفاوت هندل کردن ارتباط بین رابط کاربری و داده هایی هستند که نمایش داده می شوند.

خب Data Binding یک تکنیک هست برای اینکه به شما اجازه داده بشه که بتونید یک المان از رابط کاربری رو بایند کنید به یک Data در Data Source. وقتی Data در Data Source تغییر کند المان متناظر ان در رابط کاربری به صورت اتومات ابدیت خواهد شد. اما View Binding یک تکنیک هست برای اینکه به شما اجازه داده بشه که بتونید یک المان از رابط کاربری رو بایند کنید به یک View Model.

دو راه در اندروید وجود دارد که شما داده ها رو به View ها بایند کنید. Data Binding و View Binding. که در واقع Data Binding پروسه کانکت شدن داده ها به ویو هاست و View Binding پروسه کانکت شدن ویو ها به همدیگر است.

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

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

خب، حالا به نظرتون کدام روش رو باید استفاده کنیم ؟ واقعیتش اینه که این بستگی به نیاز شما دارد. اگه شما فقط نیاز دارید چند تا View رو با هم دیگه بایند کنید، View Binding احتمالا همه ان چیزی هست که بهش نیاز دارید. ولی اگه نیاز دارید داده های زیادی رو به ویوهای مختلفی بایند کنید و یا اگه نیاز دارید کنترل های بیشتری روی چگونگی نمایش داده ها روی ویو ها داشته باشید احتمالا Data Binding روش بهتری خواهد بود.

دیتا بایندینگ دقیقا چیست ؟

همانطور که گفتیم دیتا بایندینگ پروسه کانکت کردن Data به View هست. این باعث میشه شما بتونید دیتا و ویو رو باهم سینک نگهدارید. دیتا بایندینگ می تونه یک پروسه دو طرفه باشه، یعنی تغییرات دیتایی می تونه روی View ها اثر بذاره و یا یک طرفه باشه به شکلی که تغییرات روی داده ها اثر گذار نباشد.

ویو بایندینگ یه روش جدید برای بایند کردن داده ها به ویو هاست که در اندروید استودیو 3.1 معرفی شد، ویو بایندینگ اجازه میده به شما که از طریق کدتون دسترسی مستقیم داشته باشید به ویوها بدون FindViewById کردن آن ها. که این باعث میشه کدتون تمیزتر و ساده تر بشه. View Binding همچنین Data Binding دو طرفه رو ساپورت می کنه، به این معنی که تغییرات روی داده ها روی ویو ها هم تاثیر خواهد گذاشت.

ویو بایندینگ دقیقا چیست ؟

همانطور که گفتیم ویو بایندینگ پروسه ای هست که به شما اجازه میده ویو های خاص لایوت هاتون رو به سادگی کانکت کنید به کدتون. این می تونه مفید باشه اگه شما نیاز داشته باشید رفرنس های متعددی از ویو در کدتون استفاده کنید و یا اینکه نیاز داشته باشید از استفاده از findViewById های متعدد ممانعت کنید. با استفاده از View Binding شما می تونید یک Object بایند شده به یک Layout بسازید و با استفاده از متغییر های بایند شده در اون آبجکت به ویو ها دسترسی مستقیم داشته باشید.

ویو بایندینگ در اندروید استودیو ی ورژن ۳.۶ و بالاتر در دسترس هست. برای استفاد از ویو بایندینگ شما باید موارد زیر رو در فایل build.gradle اضافه کنید.

android { … //To view binding compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } // If you are using Kotlin, you also need to add the following: kotlinOptions { jvmTarget = “1.8” } //for binding view buildFeatures { viewBinding = true } }

بعد از اضافه کردن این موارد به فایل build.gradle ، پروژه اتون رو با فایل گریدل سینک کنید. زمانی که تمام شد، ویو بایندینگ اکتیو خواهد بود برای پروژه شما و دیگه می تونید ازش استفاده کنید.

چطوری باهم فرق می کنند ؟

هر دوی Data Binding و View Binding دو اصطلاحی هستند که اغلب اوقات که در مورد توسعه اندرود صحبت می شود شنیده می شوند. اما واقعا چه معنی دارند؟ و هر کدام چه فرقی باهم دارند؟

ویو بایندینگ یک راهی هست برای متصل کردن کد شما به ویویو های خاص در لایوت ها. این به شما اجازه میدهد تا بتونید دسترسی داشته باشید و ویژگی های ویویویی کدتون رو مستقیما تغییر بدید. دیتا بایندینگ از سوی دیگر یک راهی هست برای بایند کردن یا اتصال دیتا به ویو های شما، که این به شما اجازه می دهد که بدون نوشتن کد های اضافی داده ها رو بایند کنید مستقیما به ویویو ها .


view bindingdata binding
یک برنامه نویس و فعال حوزه کسب و کار
شاید از این پست‌ها خوشتان بیاید