I think you're giving magical status to "apps". All programs are applications. All applications are programs. "Apps" is just a short-form for applications. They're really just synonyms.
There are straight-forward programs that just do one thing and exit. Then there are interactive programs that loop until some condition is met to exit (or forever). GUI programs, games, and services/daemons (background programs that often have no user interface at all) generally loop indefinitely unless some exit condition is met (or until they're killed).
A loop in a program that runs indefinitely is generally the same as a game loop, except that typically the UI is abstracted through a framework, and the event processing is also often handled automatically through the framework. The application programmer generally doesn't see the loop in GUI programs (though they can choose to implement it themselves if they wish, but they're so standardized that there's generally no need to do this unless you need to do additional processing while handling events). Instead, they often register callbacks/event handlers to process events instead, and then just tell the framework to start the loop.