Also, do dApps directly communicate with the platform?
You can look at individual sdks on at the developer site:
We also have some exercises here to help get you up to speed:
On communicating with the platform, i am not sure what you are looking for. You can create and submit transactions, read block etc using the sdks. Additionally you can also write up to 1k of arbitrary data into any transaction. As an example layer two app look at: