How to show a user's friends with only the Views and Flag module?
Step 1:

Use the Flag module to create a flag labeled "Friend" (or something like that). Here is such Flag definition (in export format) you could use for it (just import it in your own site):

$flags = array();
// Exported flag: "Friend".
$flags['friend'] = array (
  'entity_type' =&gt; 'user',
  'title' =&gt; 'Friend',
  'global' =&gt; '0',
  'types' =&gt; 
  array (
  ),
  'flag_short' =&gt; 'Friend',
  'flag_long' =&gt; 'Mark as friend',
  'flag_message' =&gt; 'User marked as friend',
  'unflag_short' =&gt; 'Unfriend',
  'unflag_long' =&gt; 'Remove as friend',
  'unflag_message' =&gt; 'User removed as friend',
  'unflag_denied_text' =&gt; '',
  'link_type' =&gt; 'toggle',
  'weight' =&gt; 0,
  'show_in_links' =&gt; 
  array (
    'full' =&gt; 'full',
  ),
  'show_as_field' =&gt; 0,
  'show_on_form' =&gt; 0,
  'access_author' =&gt; '',
  'show_contextual_link' =&gt; 0,
  'show_on_profile' =&gt; 1,
  'access_uid' =&gt; 'others',
  'api_version' =&gt; 3,
);
return $flags;


Step 2:

Use the Views module to create a view of users that flagged other users with that "Friend" flag.  Here is such view (in export format) you could use for it (just import it in your own site):

$view = new view();
$view-&gt;name = 'my_friends';
$view-&gt;description = '';
$view-&gt;tag = 'default';
$view-&gt;base_table = 'users';
$view-&gt;human_name = 'My friends';
$view-&gt;core = 7;
$view-&gt;api_version = '3.0';
$view-&gt;disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view-&gt;new_display('default', 'Master', 'default');
$handler-&gt;display-&gt;display_options['title'] = 'Friends';
$handler-&gt;display-&gt;display_options['use_more_always'] = FALSE;
$handler-&gt;display-&gt;display_options['access']['type'] = 'perm';
$handler-&gt;display-&gt;display_options['access']['perm'] = 'access user profiles';
$handler-&gt;display-&gt;display_options['cache']['type'] = 'none';
$handler-&gt;display-&gt;display_options['query']['type'] = 'views_query';
$handler-&gt;display-&gt;display_options['exposed_form']['type'] = 'basic';
$handler-&gt;display-&gt;display_options['pager']['type'] = 'full';
$handler-&gt;display-&gt;display_options['pager']['options']['items_per_page'] = '10';
$handler-&gt;display-&gt;display_options['style_plugin'] = 'table';
/* Relationship: Flags: friend */
$handler-&gt;display-&gt;display_options['relationships']['flag_content_rel']['id'] = 'flag_content_rel';
$handler-&gt;display-&gt;display_options['relationships']['flag_content_rel']['table'] = 'users';
$handler-&gt;display-&gt;display_options['relationships']['flag_content_rel']['field'] = 'flag_content_rel';
$handler-&gt;display-&gt;display_options['relationships']['flag_content_rel']['flag'] = 'friend';
/* Field: User: Name */
$handler-&gt;display-&gt;display_options['fields']['name']['id'] = 'name';
$handler-&gt;display-&gt;display_options['fields']['name']['table'] = 'users';
$handler-&gt;display-&gt;display_options['fields']['name']['field'] = 'name';
$handler-&gt;display-&gt;display_options['fields']['name']['alter']['word_boundary'] = FALSE;
$handler-&gt;display-&gt;display_options['fields']['name']['alter']['ellipsis'] = FALSE;
/* Field: User: Last login */
$handler-&gt;display-&gt;display_options['fields']['login']['id'] = 'login';
$handler-&gt;display-&gt;display_options['fields']['login']['table'] = 'users';
$handler-&gt;display-&gt;display_options['fields']['login']['field'] = 'login';
$handler-&gt;display-&gt;display_options['fields']['login']['date_format'] = 'long';
$handler-&gt;display-&gt;display_options['fields']['login']['second_date_format'] = 'long';
/* Field: User: Uid */
$handler-&gt;display-&gt;display_options['fields']['uid']['id'] = 'uid';
$handler-&gt;display-&gt;display_options['fields']['uid']['table'] = 'users';
$handler-&gt;display-&gt;display_options['fields']['uid']['field'] = 'uid';
/* Field: Flags: Flagged time */
$handler-&gt;display-&gt;display_options['fields']['timestamp']['id'] = 'timestamp';
$handler-&gt;display-&gt;display_options['fields']['timestamp']['table'] = 'flagging';
$handler-&gt;display-&gt;display_options['fields']['timestamp']['field'] = 'timestamp';
$handler-&gt;display-&gt;display_options['fields']['timestamp']['relationship'] = 'flag_content_rel';
$handler-&gt;display-&gt;display_options['fields']['timestamp']['date_format'] = 'long';
$handler-&gt;display-&gt;display_options['fields']['timestamp']['second_date_format'] = 'long';
/* Sort criterion: User: Created date */
$handler-&gt;display-&gt;display_options['sorts']['created']['id'] = 'created';
$handler-&gt;display-&gt;display_options['sorts']['created']['table'] = 'users';
$handler-&gt;display-&gt;display_options['sorts']['created']['field'] = 'created';
$handler-&gt;display-&gt;display_options['sorts']['created']['order'] = 'DESC';
/* Filter criterion: User: Active */
$handler-&gt;display-&gt;display_options['filters']['status']['id'] = 'status';
$handler-&gt;display-&gt;display_options['filters']['status']['table'] = 'users';
$handler-&gt;display-&gt;display_options['filters']['status']['field'] = 'status';
$handler-&gt;display-&gt;display_options['filters']['status']['value'] = '1';
$handler-&gt;display-&gt;display_options['filters']['status']['group'] = 1;
$handler-&gt;display-&gt;display_options['filters']['status']['expose']['operator'] = FALSE;

/* Display: Page */
$handler = $view-&gt;new_display('page', 'Page', 'page');
$handler-&gt;display-&gt;display_options['path'] = 'user/%/friends';
$handler-&gt;display-&gt;display_options['menu']['type'] = 'tab';
$handler-&gt;display-&gt;display_options['menu']['title'] = 'Friends';
$handler-&gt;display-&gt;display_options['menu']['description'] = 'Users marked as friends';
$handler-&gt;display-&gt;display_options['menu']['weight'] = '9';
$handler-&gt;display-&gt;display_options['menu']['name'] = 'user-menu';
$handler-&gt;display-&gt;display_options['menu']['context'] = 0;
$handler-&gt;display-&gt;display_options['menu']['context_only_inline'] = 0;


Result

After you enable the view, the result of it is that it'll show a tabular list of users, via path user/%/friends, and it will add a "Friends" tab on the user profile page (also).

Here is a sample of such table:

Name           ! Last login                  ! Uid
---------------+-----------------------------+----
Dries.Buytaert ! Monday, May 2, 2016 - 18:19 ! 19
Demo.User      ! Friday, May 6, 2016 - 12:16 ! 8