I've had a YouView box for a while and was excited when YouView finally announced that their app would be available for Android phones1 but I imediately noticed that the app was very slow to load the TV guide. The app shows about 10 channels at the same time for about a 1 hour period - surely it shouldn't take so long to download the small amount of text that is required to display what's on TV for the next few hours?
So I used Fiddler to inspect the HTTP traffic going to and from the app and surprisingly found a huge number of HTTP requests, comprising of requests to an Atom feed.
When the app first starts up a full channel list is downloaded containing 112 channels comprising of 6,698 bytes of XML data. Then there are 29 requests for channel data, for the waste-of-space channels near the end of the TV guide (Adult channels mainly) - why all these extra requests for channels which are not even shown in the app? These are approximately 700 bytes each that's about 20KB altogether.
Then there are requests for the schedule for next 3 hours for the channels within view. Each channel in view requires a separate request these are about 1.5KB - 2KB each.
So when the app firsts starts up there are about 40 HTTP requests downloading about 50KB of data.
Then when you scroll around there is a separate HTTP request for each channel that requires new schedule data loaded - as the channel with no data comes into view it is loaded from the server.
That's a lot of HTTP requests!
- 1. It had been available for iOS for a while.