The first step when developing an app is deciding which type of app to develop. The two types of apps, single-click and connector, are defined by the method of authentication. Single-click apps use an OAuth Authorization Code Grant flow. Connector apps require store owners or authorized users to manually generate and configure store API credentials. In addition to the authentication method, apps can differ by visibility.
Single-click apps are the recommended app type. They use OAuth 2.0 Authorization Code Grant (oauth2.net) flow. Users initiate installation by clicking Install.

The app requests the user to grant permissions associated to scopes configured for the app in the Developer Portal:

Once granted, the app can request a permanent access_token for making REST API requests on the user’s behalf.
Single-click apps can use App Extensions.
Connector apps use manual OAuth token creation instead of the single-click app flow. Store owners and authorized users manually generate store-level API credentials and enter them into the app’s configuration. While we recommend single-click apps, the following use cases might not be compatible:
There are three visibility options for apps: Draft, Unlisted, and Public.