Imperative is dead, long live Declarative!
Abstract:
Nowadays, the mobile world has started to see larger adoption of the declarative style to build UI as opposed to the (not so) old imperative style. This pattern is borrowed from the web world, from frameworks like React and Vue.js and it started to appear in the mobile world first with React Native, then with Flutter and finally, it captured the attention of the "native world" with Jetpack Compose and Swift UI.In this talk, we will explore the declarative style of building UI compared with the imperative one. We will try to enter in this mindset by finding the differences and by looking at some examples of these patterns.
Slides:
Video
Sample Code:
Resources:
- Talk im Park #4 mit Pascal Welsch: Understanding Declarative UI
https://www.youtube.com/watch?v=zaSn_qA7Nb4 - Chain React 2019 - Leland Richardson - React, Meet Compose
https://www.youtube.com/watch?v=4EFjDSijAZU - Pete Hunt: React: Rethinking best practices – JSConf EU
https://www.youtube.com/watch?v=x7cQ3mrcKaY - Jessica Kerr - Functional Principles In React
https://www.youtube.com/watch?v=1uRC3hmKQnM - Cross-Language React - Leland Richardson
https://www.youtube.com/watch?v=eR4LjL1h6cE - React as a UI Runtime
https://overreacted.io/react-as-a-ui-runtime/ - Pure UI
https://rauchg.com/2015/pure-ui - Compose From First Principles
http://intelligiblebabble.com/compose-from-first-principles/ - KotlinConf 2019: The Compose Runtime, Demystified by Leland Richardson
https://www.youtube.com/watch?v=6BRlI5zfCCk - KotlinConf 2019: Compose Yourself: Designing a Kotlin First UI Toolkit by Anna-Chiara & Clara
https://www.youtube.com/watch?v=WqnR_XhEiVI - Reconciliation
https://reactjs.org/docs/reconciliation.html - Inside Flutter
https://flutter.dev/docs/resources/inside-flutter - try! Swift NYC 2019 - SwiftUI for Production
https://www.youtube.com/watch?v=rshXbwrrUxY - Understanding Jetpack Compose — part 1 of 2
https://medium.com/androiddevelopers/understanding-jetpack-compose-part-1-of-2-ca316fe39050 - Under the hood of Jetpack Compose — part 2 of 2
https://medium.com/androiddevelopers/under-the-hood-of-jetpack-compose-part-2-of-2-37b2c20c6cdd - State and Jetpack Compose
https://developer.android.com/jetpack/compose/state