As you have seen, working with just a single shape might be tricky, but what if we select multiple objects?
Having to move these two objects separately would be rather resource consuming and we’re talking about a very basic UI design element.
So, does multiple object selection solve the problem?
Not really. Modern UI designs may have thousands of independent shapes and manually selecting them could be extremely time consuming.
So, why not just combine multiple objects in groups?
Sounds great, let’s do this! Moving objects has become much easier.
But now we have even more problems: we cannot resize groups.
Well, technically we can, but the end result is likely to be very different from what we have expected:
In most interfaces objects within groups are not just randomly positioned boxes, paragraphs and curves, they have certain meaning. And this meaning cannot be easily guessed by a machine.
Developers have been using constraint-based layouts for quite a while, yet most UI design tools inherited this logic just a few years ago.
You (or a machine) set constraints within a group, combine groups, set their relative constraints and voilà, your mockups now look fine in a wide range of screen resolutions.
But during this process groups have become much more than easily accessible object selections. They define their content behaviour and appearance.
In some cases you may even override a certain object’s content or appearance. These “groups on steroids” are often referred to as symbols or smart objects.