Just made a big push to Anvil repository - it can now inflate layout from XMLs! This means you may use your favourite IDE to design layouts, then use Anvil to bind data and event listeners to make your UI reactive:<p><pre><code>    public override fun view() {
      &#x2F;&#x2F; A designer gave us an XML with some fancy layout:
      &#x2F;&#x2F; a viewgroup with a button and a progress bar in it
      xml(R.layout.my_layout) {
        backgroudnColor(Settings.bgColor) &#x2F;&#x2F; will modify root layout view color
        
        withId(R.id.my_button) {
          &#x2F;&#x2F; button state may depend on some variable
          enabled(isMyButtonEnabled)
          &#x2F;&#x2F; button click listener can be attached
          onClick { v -&gt;
            ...
          }
        }

        withId(R.id.my_progress_bar) {
          visible(isMyProgressBarShown)
          progress(someProgressValue)
        }
      }
    }
</code></pre>
I know many people are opposed to defining layouts in code, so this can be a good compromise for them. Also, it&#x27;s very helpful if you have a large project made with XMLs and want to refactor it.