<story><title>App sizes are out of control</title><url>https://trevore.com/blog/posts/app-sizes-are-out-of-control/</url></story><parent_chain><item><author>mfabbri77</author><text>I was wondering why not use SVG (or any other vector file format) files and render all the graphic on the device, instead of including tons of PNG at various resolutions.</text></item><item><author>vladdanilov</author><text>The situation is messy. Take Facebook.app. The reported size on the App Store is 377MB, the distributed .ipa is 241MB. But it is a universal app which includes fat binaries arm_v7 and arm64 and all the graphics 1x, 2x and 3x. App Thinning halves that size for end users. Yet the App Store reports the full size.&lt;p&gt;There&amp;#x27;s more. App Store also provides some sort of delta updates [1], which save a lot bandwidth, but failing to report it properly again [2].&lt;p&gt;App Thinning does not work for standalone image assets. It means you are forced to use Asset Catalogs where all PNG files are stored as LZFSE (previously zip) compressed  BGRA bitmaps. It&amp;#x27;s good. But optimized PNG files can be 30-50% smaller on average. I&amp;#x27;m fighting this [3] but not sure if there&amp;#x27;s a simple solution.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;developer.apple.com&amp;#x2F;library&amp;#x2F;content&amp;#x2F;qa&amp;#x2F;qa1779&amp;#x2F;_index.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;developer.apple.com&amp;#x2F;library&amp;#x2F;content&amp;#x2F;qa&amp;#x2F;qa1779&amp;#x2F;_index...&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;rjonesy&amp;#x2F;status&amp;#x2F;878051126704254976&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;rjonesy&amp;#x2F;status&amp;#x2F;878051126704254976&lt;/a&gt;&lt;p&gt;[3] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;vmdanilov&amp;#x2F;status&amp;#x2F;892015508203216896&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;vmdanilov&amp;#x2F;status&amp;#x2F;892015508203216896&lt;/a&gt;</text></item></parent_chain><comment><author>Groxx</author><text>Fuzzy reasons abound, but you do occasionally see this.  One major often-complete-blocker that I&amp;#x27;ve seen though has been ungood rendering, so results aren&amp;#x27;t always identical on all devices.  You can&amp;#x27;t really rely on the device&amp;#x27;s possibly-weird implementation (who knows what the OEM did to it)(except on iThings probably), so you&amp;#x27;re forced to bundle an svg renderer that works reliably on all devices and has consistent behavior, and good luck finding a high quality lib that does that[1].  And, to be friendly to the designers, it has to be reasonably full-featured.&lt;p&gt;[1]: but if you know of one, I&amp;#x27;d love to use it!</text></comment>
<story><title>App sizes are out of control</title><url>https://trevore.com/blog/posts/app-sizes-are-out-of-control/</url></story><parent_chain><item><author>mfabbri77</author><text>I was wondering why not use SVG (or any other vector file format) files and render all the graphic on the device, instead of including tons of PNG at various resolutions.</text></item><item><author>vladdanilov</author><text>The situation is messy. Take Facebook.app. The reported size on the App Store is 377MB, the distributed .ipa is 241MB. But it is a universal app which includes fat binaries arm_v7 and arm64 and all the graphics 1x, 2x and 3x. App Thinning halves that size for end users. Yet the App Store reports the full size.&lt;p&gt;There&amp;#x27;s more. App Store also provides some sort of delta updates [1], which save a lot bandwidth, but failing to report it properly again [2].&lt;p&gt;App Thinning does not work for standalone image assets. It means you are forced to use Asset Catalogs where all PNG files are stored as LZFSE (previously zip) compressed  BGRA bitmaps. It&amp;#x27;s good. But optimized PNG files can be 30-50% smaller on average. I&amp;#x27;m fighting this [3] but not sure if there&amp;#x27;s a simple solution.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;developer.apple.com&amp;#x2F;library&amp;#x2F;content&amp;#x2F;qa&amp;#x2F;qa1779&amp;#x2F;_index.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;developer.apple.com&amp;#x2F;library&amp;#x2F;content&amp;#x2F;qa&amp;#x2F;qa1779&amp;#x2F;_index...&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;rjonesy&amp;#x2F;status&amp;#x2F;878051126704254976&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;rjonesy&amp;#x2F;status&amp;#x2F;878051126704254976&lt;/a&gt;&lt;p&gt;[3] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;vmdanilov&amp;#x2F;status&amp;#x2F;892015508203216896&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;twitter.com&amp;#x2F;vmdanilov&amp;#x2F;status&amp;#x2F;892015508203216896&lt;/a&gt;</text></item></parent_chain><comment><author>mahyarm</author><text>Raster images are still faster and often you can make your png images very small and do stretching.&lt;p&gt;OTOH, people do vector stuff for many things, it&amp;#x27;s just they typically don&amp;#x27;t use SVG but something more efficient.  XML parsing is not lightweight compared to a binary format or some sort of vector -&amp;gt; code translator speed wise.</text></comment>