The function checks that all required packages for the app are installed
before launching. If any are missing, the user is notified. In interactive
sessions, the function will prompt whether the missing packages should be
installed automatically. In non-interactive sessions (e.g. scripts or CI),
the function instead raises an error and lists the missing packages so they
can be installed manually.