The following animation shows the app’s behavior:

This recipe begins with the content widgets defined and positioned.
There is also a Floating Action Button (FAB) in the bottom-right
corner that toggles between a loading mode and a loaded mode
so that you can easily validate your implementation.

Draw the shimmer shapes

The shapes that shimmer in this effect are independent
from the actual content that eventually loads.

Therefore, the goal is to display shapes that represent 
the eventual content as accurately as possible.

Displaying accurate shapes is easy in situations where the
content has a clear boundary. For example, in this recipe,
there are some circular images and some rounded rectangle images.
You can draw shapes that precisely match the outlines 
of those images.