How do I properly develop a friends list in Unity with GUI.

Assume I want to develop following friends functionality. My battle plan is following:

  1. Put a plane that will contain all the friend items.
  2. Put scrollrect on it.
  3. Create the prototype of a friend object that will serve as a original to copy for every friend.
  4. Take the list of all friends this player has.
  5. foreach() for every friend and Instantiate() a new object adding more and more margin from top the top, and thus rendering say 10 friends and corresponding GUI buttons with consistent spacing.

Upon update/adding/removing:

  • Force redrawal of each individual item and redraw all items based on list of friends.

Is this the way to go, or am I reinventing a wheel?
How do you manage a list of items that need to be visually displayed en-masse, can change, by user or by any other event?

Almost the same, but I have a base list class of data items for this and virtual lists for displaying a lots of data items like hundreds or thousands and an items pool so they’re reused in case the list is changed often or is virtual.