Where and how you should load your assets is entirely up to you. You should decide that based on many factors, but generally it depends on what happens in your game and how do you handle your resources internally (when do you need resources, when do you release them from memory etc).
I remember that in Apple's Adventure example game (not available for download anymore) all of the shared resources was preloaded at the beginning of the game. Still, you don't have to do that. You can preload your resources when it is appropriate for your app, or maybe you want to release the resources while you are in the menu (or in some other scene than a gameplay scene).
There is nothing written (like in the docs or somewhere else) about when you should show loading screen, or even a rule that you must have a loading screen. The point of a loading screen is better user experience.
Personally, if you have to make a user to wait like 10 seconds before the game starts (which is rare actually), I would do two things there:
1) Show loading image (or something animated, like spinning animation)
2) Show hints or interesting facts about the game, like every 3 seconds (or whatever is an acceptable delay in this situation). This way, you introduce a player with the game while he waits, which is better than let them just wait and look at spinning animation.