Prevent GameObjects from instantiating on top of each other

How can i make my objects spawn next to each other instead of on top of each other?

GameObject showIcon = Instantiate (showAppIconPrefab, transform.position, transform.rotation) as GameObject;
					showIcon.transform.parent = GameObject.Find("Canvas").transform;
					showIcon.GetComponentInChildren<Text>().text = appName;
					showIcon.GetComponentInChildren<RawImage>().material.mainTexture = loadAppIcon;

You need to keep track of some offset in the class instantiating these:
float x_offset =0;
float y_offset =0;

then in your code:
Vector3 position = transform.position;
position.x += x_offset;
position.y+=y_offset;
GameObject showIcon = Instantiate (showAppIconPrefab, position, transform.rotation) as GameObject;
x_offset+= SomeVariableYouSet;
if (x_offset > SomeValue) // so we don’t scroll off edge of screen
{
x_offset = 0;
y_offset+= SomeValueYouSet; //this starts a new line
}

yea roughly have a counter or whatever and do for example

    for (int x = 0;x <= number_to_instantiate; x++)
{
    instantiate(gameobject thing, (transform.position + vector3.right *x), transform.rotation);
}

that’ll work to create a line to the right.