Generate button (specific component) vs Generate App

Can you define when the Generate App is required?
I get that clicking the Generate icon on a page/business object/component/etc specific Generate button is needed when changes are made, but it’s not clear when the Generate App is needed.
And related, if you’re running the app in another tab in the same browser, it will often refresh the browser automatically if the app gets rebuilt, but is this guaranteed? It seems that sometimes changes don’t refresh, and you need to do this manually.
Some rules of thumb would be great, like maybe generate app is only when you change structure (add/delete properties, add methods…)…

Generate App (sometimes referred to as global generate) is useful when you make changes to many different items without doing an incremental generate on each item.

There are also some situations where a global generate fixes problems. One example I hit now and then is making changes to a mixin in a library which sometimes (depending on the kind of change) requires a global generate in the app so that the business objects that use the mixin pick up the change.

So when in doubt, just do a global generate :).

On the page reload topic, if you opened the application tab from Apex Designer or App Manager, the page will reload any time there is a server or client build. That is because they retain a link to the tab and trigger the reload for you.

Sometimes you don’t want that (while hacking at CSS in the developer tools for example). To skip the reload, just copy the app url from the browser address bar and paste it into a new browser tab. That tab will not be known to Apex Designer or App Manager so it won’t reload automatically.