On the other hand, consider the text that appears beneath the
rounded rectangle images. You won’t know how many lines of
text exist until the text loads. 
Therefore, there is no point in trying to draw a rectangle
for every line of text. Instead, while the data is loading,
you draw a couple of very thin rounded rectangles that
represent the text that will appear. The shape and size 
doesn’t quite match, but that is OK.

Start with the circular list items at the top of the screen.
Ensure that each CircleListItem widget displays a circle
with a color while the image is loading.

As long as your widgets display some kind of shape,
you can apply the shimmer effect in this recipe.

Similar to the CircleListItem widgets,
ensure that the CardListItem widgets 
display a color where the image will appear.
Also, in the CardListItem widget, 
switch between the display of the text and
the rectangles based on the current loading status.