When it comes to building an app for Shopify, there are two options: private and public. Private applications are designed to access one Shopify store, and can be changed as per the needs of the storeowner by the developer. Public applications are designed to access multiple Shopify stores, and provide functionality that will be used by different types of businesses. They can act as a revenue stream for the developer by charging storeowners a monthly fee.
Both private and public apps perform operations by using the Shopify API and/or by processing Shopify Webhooks. At a high level, a public application can be thought of as a private application that was expanded to work with multiple stores.
To determine which one you need to build, take a look at the following scenarios:
Scenario 1
You have a client Shopify store that needs additional functionality
You have already determined that what they need is not included in the Shopify out of the box
You've looked through the App Store and determined that there isn't an app that meets their needs
They aren't interested in reselling the idea to other storeowners, or they don't want competitors to have this functionality
Note
What you are looking to build is a private app. This is an app that is not listed in the official App Store and typically only connects to a single Shopify account.
Scenario 2
You or your client have a great idea for an app
Other storeowners would benefit from the app and may even pay money to use it
You've already checked the App Store and determined that the app doesn't already exist, or that it exists but you think you can improve the idea