
Most people I talk to seem to understand that building modular, reusable user interface components is different from building custom application UI and requires different development approaches.
Reusability however, although easy in concept, is not easy in practice. Many firms talk about developing modular UI, but typically they are focused on the function of a module - a list of tasks or subroutines. Data, workflow and behavior are addressed separately. The widgets may be modular, but you can't easily assemble them on a new screen of a new application or workflow.
Component-based approach
In contrast Catalyst uses a component-based approach where an individual component encapsulates a set of related functions for understanding and manipulating its own data, interpreting user interactions, and adapting to the workflow or unique performance requirements. Each UI component can be viewed as an independent (but cooperative) 'machine' with a distinct role or responsibility.
With a component-based approach, instead of customizing the code or running subroutines in your application, you add, modify, or delete components to achieve the design layout you want and reorganize them based on workflow and high value scenarios to support changing business needs.
What makes reusable UI components unique?
It takes significant effort and a lot of experience to write a UI component that is effectively reusable. The component needs to be:
- well-documented
- user-validated and thoroughly tested
- robust with comprehensive exception handling, including input validity checking and internal error handling
- able to pass back appropriate error messages
- scalable to handle changing data or interaction needs
- reusable at the enterprise level across many different applications, not just the specific application level
- designed with an understanding that no matter how clear the documentation, it will be put to unanticipated uses
Building an application interface with modular, reusable UI, helps you achieve flexibility, simplicity, and return on investment.
Side note: Developers currently building applications with object-oriented analysis and design (OOAD) principles will be familiar with this kind of approach. Catalyst applies these concepts but works at a more practical level of granularity for reuse than objects.
Categories: Resuable UI