Expression Customizer is an extension of Expression Language and available since AEM 6.3, but i have seen very few developers making use of it. Nearly in every AEM sites project we came across a scenario where we need to update component dialog field values based on selection in design dialog.
For example hiding a title field in dialog if we select hide title checkbox in design dialog. In order to implement this requirement, usually developers write custom java script/jquery in client libraries and add cq.authoring.dialog client library category to it, to trigger js when content authors open dialog. But writing this java script code is a time consuming process and waist lot of productive time, because dialog's are getting complex day by day.
Expression Customizer provides implicit cqDesignobject which developers can directly use inside dialog field properties and update dialog visibility/behavior dynamically based on design dialog selection.
I have tried my best to explain below topics:-
Overview of Expression Customizer.
How to use Expression Customizer.
What all use cases can be solved using Expression Customizer.