If a stopgap session startup experience is needed, I recommend pre-calculating the eventual static state of the Launcher given the number of tiles it contains, then serially fading those tiles into position from the top. Tiles should fade in at a constant rate (e.g. 20 tiles per second) and not feel jerky, so hide IO wait from the user by sleeping if necessary.
If a stopgap session startup experience is needed, I recommend pre-calculating the eventual static state of the Launcher given the number of tiles it contains, then serially fading those tiles into position from the top. Tiles should fade in at a constant rate (e.g. 20 tiles per second) and not feel jerky, so hide IO wait from the user by sleeping if necessary.