[Disclaimer: this question is intended to be a wiki question to answer the frequent questions about sending data between the iOS and watch apps under the watchkit and watch-os tags.]
I am developing an Apple Watch app and would like to send data between the iOS app and its WatchKit extension. I have looked at the WatchConnectivity framework, but don't really understand the difference between all of its methods.
Which function should I use if I want to be able to send data even when my apps are in the background?
Which function should I use to send UI updates to the Watch?
Which function should I use to send large data?