We developed several big products from scratch till the release, and we continue adding features and supporting these products. Not always a customer needs to develop a complete product and needs to go through the full cycle of the development. Very often, he needs us to implement more critical part(s) of his software. But sometimes, customers require to develop their software completely, including approving the software for sale in Apple/Google/Microsft store.
Also, we can release a new version of the software. The latest version can be more complicated and has a lot of new features and a completely new, better interface. It may be needed if the customers want to release an initial version and create a pool of product users. If he sees that users are interested in the product and want more features, the customer gets a profit and decides to develop a new version.
It regards to Operations System. For example, we develop a version under macOS, and after the release, we start to port the version to Windows. We always try to make a cross-platform code to avoid the different code for the same tasks in different OSs. But somethings it's impossible, and a part of work is different.
We can advise what OS/device is better for the customer on the software's initial release. For this, we too, analyze the business marketer and target audience of the product. If we can do this for this particular product, we will provide you with our opinion on the best solution.