The term kitchen sink, sometimes also referred to as Swiss army knife, is often used for apps that try to cram too much functionality and data into one interface. The result is a UI that appears busy, cluttered, less appealing, and not as user-friendly.
The kitchen sink pattern Mapping platforms offer a variety of useful features and ready-to-use widgets. Many of them are free and easy to include. It’s therefore tempting to add yet another great feature to the app to be developed. The fallacy of that thinking is that each element added to the UI comes with a cost to its usability. As described in Hick’s law, the time required to reach a decision will increase logarithmically with the number of choices available. The newly added feature that was meant to benefit the user may end up increasing information overload instead. Users will find it more difficult to find the right tool or follow a clear workflow. As a result, they will feel overwhelmed, frustrated, and, in the worst case, give up and abandon the app.
Kitchen sink apps are best used to introduce users to a new platform, framework, library, or application programming interface (API). They are great for showcasing or demonstrating the entirety of its capabilities. For instance, developers who want to learn more about a product or platform can access and experiment with all the functionality available. Another way to use a kitchen sink app is for users who are familiar with the environment to walk their audience through a series of functions during a demo. Avoid kitchen sink for any other app because it is difficult to learn and can be confusing and overwhelming.
Provide a UI that allows users to access all the functionality through a series of buttons, tabs, or menus. Structure the functions by API reference, by category, or in another logical order.
Avoid kitchen sink unless your app falls into the category of demonstration or showcase. Rather than exposing a slew of functionality that is hard to understand and navigate, validate requirements against true end-user needs and focus the app on workflows accordingly. Limit functionality whenever possible and consider progressive disclosure of features and content.
The app below uses kitchen sink to expose all the widgets available in ArcGIS Web AppBuilder. The purpose of this app is to showcase the breadth of functionality available in the builder tool, and that’s why kitchen sink works well. Another assumption is that the user is either inherently familiar with the stack of tools or wants to explore its functionality randomly. It’s not recommended to use kitchen sink for any other production-ready, user-facing app.