1) Shopify app is open source and made available such that developers can get an application built out quickly.
2) Avoid making API calls inline with requests, they will be slow and can result in Denial of Service as well as bad user experience. Cache any data you need locally, and find a way to keep it up to date.
3) Webhooks can be created using ShopifyAPI::Webhook, check out the documentation for the examples of how they are created. Use ngrok to test webhooks in development