title: What are the pros and cons of android data-binding?
body: <p>Both of my colleague and I have experience in MVVM of Web App, while we are new to native android development. Now we have contrary opinions about android data-binding -- I'm a fan of it while he is not.</p>
  
  <p>My Arguments:</p>
  
  <ul>
  <li>Reduces boilerplate code which in turns brings
  
  <ul>
  <li>Less coupling</li>
  <li>Stronger readability</li>
  </ul></li>
  <li>Powerful, easy to implement custom attribute and custom view</li>
  <li>Even faster than findViewById (<a href="https://stackoverflow.com/questions/34712820/android-data-binding-vs-findviewbyid-for-performance">details</a>)</li>
  </ul>
  
  <p>His Arguments:</p>
  
  <ul>
  <li>The auto-generated .class increases app size.</li>
  <li>Harder to debug</li>
  </ul>
  
  <p>I've made some investigation but there are not many discussions about it. Now I want to collect the pros and cons of android data-binding.</p>
  
  <p>Aspects of discussion include but are not limited to:</p>
  
  <ul>
  <li>unit test</li>
  <li>app size</li>
  <li>performance</li>
  <li>learning curve</li>
  <li>readability</li>
  <li>coupling</li>
  </ul>