Is it possible (and how) to call Dialogflow V2 API directly for intent detection from iOS app (Swift) or do I need to use Cloud Functions as suggested here Dialogflow integration of enterprise edition v2 into the ios and andriod app ?
I have some experience in Dialogflow but all my integrations were done by FB Messenger / Web demo so I am totally lost in iOS case and I cannot find clear explanation in GCP / DF documentation.
While it is possible, it is not a good idea.
In theory, you can call the Dialogflow Detect Intent API directly from your application using a REST interface.
The problem is that, as part of this, you need to include authentication. This authentication is based on a service account and the private key for that account.
So in order to send a request to your service, you need to include the private key in your app. As you might guess - this is somewhat insecure. Which is why the SO question you link to suggests using a web service (it doesn't have to be on Cloud Functions - it can be anywhere) as the intermediary. You can put the private key in the service, where it can be more protected, and use some less secure method to communicate between your app and the service if you feel its necessary.