1. I write custom Apps all the time. The oAuth flow is used every single time. It is all I use as there is no other way. What is to test? It just works. It is oAuth.
2. You typically get an URL from the Partner App where you setup your App. You click generate, and you get an URL to paste into your browser that will give you everything you need to test your App. A correct shop, all the parameters, etc. If your App has a boo-boo, you'll know and you can fix it. If you made your App code correctly, you'll get a token you can save for accessing the store that you chose to run your tests with.
3. No idea what you mean when you ask about API requests. What are you trying to do? Typically you make GraphQL requests to the shop admin graphql endpoint. So that is the myshopify.com domain. There is never a concern for custom domain DNS stuff when working with Apps, unless you are in a very very small niche App.
4. What are analytics of a product video?
3. So to confirm my app should make all the api requests to
shop.myshopify.com and not to custom domain say mycoolshop.com, is that
Yes. Never reference your custom domains.
4. By video analytics, I mean 8s there any metrics to see how many times a
product video was played, watched etc
Most people use Google Analytics. You have to ask the merchant for that I suppose. Kind of awkward... hehe