1. A method to communicate data in a mobile application, comprising: specifying in the mobile application a program intent and one or more course or fine-grained properties of data objects in terms of tolerance to delay and loss; and selecting a transfer policy for a set of data objects based on the application intent.