Background:
The iOS (and Android!) apps display various icons in the feed.
For example, see the "Chandra Bose" cell below:
( From: https://en.wikipedia.org/api/rest_v1/feed/featured/2016/12/01 )
The problem is the feed only gives us the following url for the Bose icon:
"thumbnail": { "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Jagadish_Chandra_Bose_1926.jpg/240px-Jagadish_Chandra_Bose_1926.jpg", "width": 240, "height": 320 },
^ Note the "240px" width.
However, the iOS app is only *displaying* the Bose icon at 40x40 pixels!
This means we are fetching the following 17K 240px icon:
But we really only need to be fetching the following 1K 40px icon:
Fetching 17K when 1K would suffice may not seem like much, but most of the smaller icons in the iOS feed have the same issue, so the effect is compounded.
Solution:
The feed has an image section which returns not only a "thumbnail" but also the canonical "image" details:
"image": { "title": "File:Düsseldorf, Rheinturm -- 2015 -- 8127.jpg", "thumbnail": { "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/D%C3%BCsseldorf%2C_Rheinturm_--_2015_--_8127.jpg/640px-D%C3%BCsseldorf%2C_Rheinturm_--_2015_--_8127.jpg", "width": 640, "height": 640 }, "image": { "source": "https://upload.wikimedia.org/wikipedia/commons/5/5c/D%C3%BCsseldorf%2C_Rheinturm_--_2015_--_8127.jpg", "width": 3648, "height": 3648 }, ... },
Having both thumbnail and the canonical image details means we can easily request any width variant we need because we know, in the case above, that the max width is 3648.
So the proposed fix is to update the feed so "tfa", "mostread", and "news" sections also include canonical "image" data everywhere they return "thumbnail" data - exactly as the current "image" section above does. Then any data client can safely request exactly needed resolutions for their presentation requirements.
( In this particular case I realize we could safely choose a lower resolution and, but I'd still prefer we consistently always return canonical info so we can safely choose lower and higher resolutions, as needed. )