āϕ⧋āϟāϞāĻŋāύ āϏāĻŋāĻ¨ā§āĻĨ⧇āϟāĻŋāĻ•ā§āϏ āĻĨ⧇āϕ⧇ āĻœā§‡āϟāĻĒā§āϝāĻžāĻ• āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚-āĻ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰ⧁āύ

āϕ⧋āϟāϞāĻŋāύ āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύāϗ⧁āϞāĻŋ āĻ…āĻŦāĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧ⧇āϛ⧇, āϝāĻžāϰ āĻŽāĻžāύ⧇ āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϕ⧋āϟāϞāĻŋāύ āϏāĻŋāĻ¨ā§āĻĨ⧇āϟāĻŋāĻ•ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āφāϰ āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āύāϝāĻŧ⧎ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒ āϝāĻĻāĻŋ āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϕ⧋āϟāϞāĻŋāύ āϏāĻŋāĻ¨ā§āĻĨ⧇āϟāĻŋāĻ•ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āĻœā§‡āϟāĻĒā§āϝāĻžāĻ• āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚-āĻ āĻŽāĻžāχāĻ—ā§āϰ⧇āϟ āĻ•āϰāϤ⧇ āĻāχ āĻ—āĻžāχāĻĄāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύāĨ¤

āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϕ⧋āϟāϞāĻŋāύ āϏāĻŋāĻ¨ā§āĻĨ⧇āϟāĻŋāĻ•ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āĻŽā§ŒāϞāĻŋāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϤāĻĨā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻĻ⧇āϖ⧁āύāĨ¤

Gradle āĻĢāĻžāχāϞāϟāĻŋ āφāĻĒāĻĄā§‡āϟ āĻ•āϰ⧁āύ

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāύ⧇āϰ āĻŽāϤ⧋, āĻœā§‡āϟāĻĒā§āϝāĻžāĻ• āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻāĻ•āϟāĻŋ āĻŽāĻĄāĻŋāωāϞ-āĻŦāĻžāχ-āĻŽāĻĄāĻŋāωāϞ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻŽāύ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŽāĻĄāĻŋāωāϞ⧇āϰ āϜāĻ¨ā§āϝ, āĻŽāĻĄāĻŋāωāϞ-āĻ¸ā§āϤāϰ⧇āϰ build.gradle āĻĢāĻžāχāϞ⧇ viewBinding āĻŦāĻŋāĻ˛ā§āĻĄ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāϟāĻŋāϕ⧇ true āĻšāĻŋāϏāĻžāĻŦ⧇ āϏ⧇āϟ āĻ•āϰ⧁āύ:

āĻ—ā§āϰ⧋āĻ­āĻŋ

android {
    ...
    buildFeatures {
        viewBinding true
    }
}

āϕ⧋āϟāϞāĻŋāύ

android {
    ...
    buildFeatures {
        viewBinding = true
    }
}

āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻ…ā§āϝāĻžāĻĒāϟāĻŋ Parcelable āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āϕ⧋āϟāϞāĻŋāύ āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻāĻ•ā§āϏāĻŸā§‡āύāĻļāĻžāύāϗ⧁āϞāĻŋāϕ⧇ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇ āĻāĻŽāύ āϞāĻžāχāύāϟāĻŋ āϏāϰāĻžāύ:

āĻ—ā§āϰ⧋āĻ­āĻŋ

plugins {
  id 'kotlin-android-extensions'
}

āϕ⧋āϟāϞāĻŋāύ

plugins {
    kotlin("android.extensions")
}

āĻāĻ•āϟāĻŋ āĻŽāĻĄāĻŋāωāϞ⧇ āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āϏāĻ•ā§āώāĻŽ āĻ•āϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āφāϰāĻ“ āϜāĻžāύāϤ⧇, āϏ⧇āϟāφāĻĒ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻžāĻŦāϞ⧀ āĻĻ⧇āϖ⧁āύāĨ¤

āφāĻĒāĻĄā§‡āϟ āĻ•āĻžāĻ°ā§āϝāĻ•āϞāĻžāĻĒ āĻāĻŦāĻ‚ āĻ–āĻŖā§āĻĄ āĻ•ā§āϞāĻžāϏ

āĻœā§‡āϟāĻĒā§āϝāĻžāĻ• āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚āϝāĻŧ⧇āϰ āϏāĻžāĻĨ⧇, āĻŽāĻĄāĻŋāωāϞāϟāĻŋāϤ⧇ āĻĨāĻžāĻ•āĻž āĻĒā§āϰāϤāĻŋāϟāĻŋ XML āϞ⧇āφāωāϟ āĻĢāĻžāχāϞ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻ•ā§āϞāĻžāϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāχ āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻ•ā§āϞāĻžāϏ⧇āϰ āύāĻžāĻŽ Pascal āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ XML āĻĢāĻžāχāϞ⧇āϰ āύāĻžāĻŽ āϝāĻžāϰ āĻļ⧇āώ⧇ Binding āĻļāĻŦā§āĻĻāϟāĻŋ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝāĻĻāĻŋ āϞ⧇āφāωāϟ āĻĢāĻžāχāϞ⧇āϰ āύāĻžāĻŽ result_profile.xml āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻž āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻ•ā§āϞāĻžāϏ⧇āϰ āύāĻžāĻŽ ResultProfileBinding āĨ¤

āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻ­āĻŋāωāϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŋāĻ¨ā§āĻĨ⧇āϟāĻŋāĻ• āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻž āĻŦāĻžāρāϧāĻžāχ āĻ•ā§āϞāĻžāϏāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇, āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤāϗ⧁āϞāĻŋ āĻ•āϰ⧇ āφāĻĒāύāĻžāϰ āĻ•āĻžāĻ°ā§āϝāĻ•āϞāĻžāĻĒ āĻāĻŦāĻ‚ āĻ–āĻŖā§āĻĄā§‡āϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧁āύ:

  1. kotlinx.android.synthetic āĻĨ⧇āϕ⧇ āϏāĻŽāĻ¸ā§āϤ āφāĻŽāĻĻāĻžāύāĻŋ āϏāϰāĻžāύāĨ¤

  2. āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāĻ­āĻŋāϟāĻŋ āĻŦāĻž āĻĢā§āĻ°ā§āϝāĻžāĻ—āĻŽā§‡āĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻž āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻ•ā§āϞāĻžāϏ⧇āϰ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻ¸ā§āĻĢā§€āϤ āĻ•āϰ⧁āύāĨ¤

  3. āϏāĻŋāĻ¨ā§āĻĨ⧇āϟāĻŋāĻ• āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻ•ā§āϞāĻžāϏ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āϏāĻŽāĻ¸ā§āϤ āĻ­āĻŋāω āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧁āύ:

// Reference to "name" TextView using synthetic properties.
name.text = viewModel.nameString

// Reference to "name" TextView using the binding class instance.
binding.name.text = viewModel.nameString

āφāϰāĻ“ āϜāĻžāύāϤ⧇, āĻ­āĻŋāω āĻŦāĻžāχāĻ¨ā§āĻĄāĻŋāĻ‚ āĻ—āĻžāχāĻĄā§‡āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āĻĻ⧇āϖ⧁āύāĨ¤

{% āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨ⧇ %} {% endverbatim %} {% āĻļāĻŦā§āĻĻāĻžāĻ°ā§āĻĨ⧇ %} {% endverbatim %}