https://threadreaderapp.com/thread/1772350918534582525.html Thread Reader * * * Share this page! x Post Share Email Enter URL or ID to Unroll x [ ] Unroll Thread You can paste full URL like: https://x.com/threadreaderapp/status/1644127596119195649 or just the ID like: 1644127596119195649 How to get URL link on X (Twitter) App 1. On the Twitter thread, click on or icon on the bottom 2. Click again on or Share Via icon 3. Click on Copy Link to Tweet 4. Paste it above and click "Unroll Thread"! 5. More info at Twitter Help [INS::INS] Emerge Tools Profile picture Emerge Tools Subscribe @emergetools Mar 25 * 10 tweets * 4 min read * Read on X Scrolly Bookmark Save as PDF These are the best ... breaking down why @LinkedIn iOS is half a GB https://twitter.com/t3dotgg/status/1772328210900074786 ^ Here's a top level view of the latest version of LinkedIn 300 MB for just dynamically linked frameworks & Plugins is...a lot. In fact, just the Dylibs & Plugins today are bigger than the entire app was back in November 2022 Emerge X-Ray of LinkedIn App showing 187.5 MB of Dylibs, 109.9 MB of Plugins, and a 110.6 MB main app binary Size tracker of LinkedIn iOS app showing the app was 292.9 MB in November 2022 and is now ~450 MB ^ And the Plugins and Frameworks seems to be where the greatest inefficiencies lie. Here is a more detailed look at the LinkedIn Plugins + the dynamically linked VoyagerLibs.framework Notice anything fishy? Treemap of VoyagerLibs.framework. Many of the nodes are in a dark red, indicating duplicate resources Treemap of two LinkedIn app extensions. Many of the nodes are in a dark red, indicating duplicate resources ^ First off, the 2 plugins + VoyagerLibs are all shipping ArtDecoIconsResources.bundle (~8 MB). This bundle is already in the Voyager Framework, so it should be possible to share with the Plugins...but LinkedIn is still duplicating it A highlight of ArtDecoIconsResources.bundle (7.9 MB), which is included 3 separate times in the LinkedIn app. ^ If you look into TodayExtension, NotificationExtension, & VoyagerLibs, they share many class names (one example in screenshot) While we don't know for sure if they are duplicates from public build analysis, it appears like the extensions are a subset of the VoyagerLibs library Screenshot showing duplicate named treemap nodes across plugins and framework ^ Here's something else that jumps out - in March 2023, the TodayExtension was < 400 KB. Today its ~60 MB... Seeing as Today Extensions have been deprecated, its doubtful that they added THAT much functionality to them Screenshot showing Today Extension was 372.7 kB in March 2023 Screenshot showing Today Extension was 60.8 MB in March 2024 ^ It seems there's a chance that LinkedIn is statically statically linking dependencies in their Plugins rather than using the resources from VoyagerLibs If that's the case, then the Plugins (109 MB total) have a significant amount of unnecessary size bloat ^ Separately, here's ~75 MB of insights that we're picking up Emerge Insights for the LinkedIn App. In all, there are close to 75 MB of potential savings from: Stripping binary symbols (36 MB), removing duplicate files (21 MB), minifying localized strings (7.9 MB), removing binary symbol metadata (5.5 MB), removing unnecessary files (3.0 MB), and optimizing images (2.2 MB) ^ If you want to explore our analysis on the latest version of LinkedIn, you can check out this page emergetools.com/app/example/io... ^ And coincidentally, @jacobs_handle wrote a blog post for us just last week about how to avoid duplication in Plugins Please RT this thread if you enjoyed it emergetools.com/blog/posts/mak... ^ * * * Missing some Tweet in this thread? You can try to force a refresh Post Share Email Keep Current with Emerge Tools Emerge Tools Profile picture Stay in touch and get notified when new unrolls are available from this author! Add to "My Authors" Read all threads This Thread may be Removed Anytime! PDF Twitter may remove this content at anytime! Save it as PDF for later use! Save this thread as PDF Try unrolling a thread yourself! how to unroll video 1. Follow @ThreadReaderApp to mention us! 2. From a Twitter thread mention us with a keyword "unroll" @threadreaderapp unroll Practice here first or read more on our help page! More from @emergetools Emerge Tools Profile picture Emerge Tools @emergetools May 23, 2023 Last week we wrote how @peacock reduced app size & app launch after moving from RN to native By beautiful chance, another streaming app did the same this week. Did the same effects occur? Well, yes, no & it depends Breaking down HBO's new Max app https://twitter.com/Baconbrix/status/1661058851054010392 So, HBO Max is now Max. New app, new bundle id, new logo, & entirely new codebase. Let's start by comparing the iOS size and architecture iOS HBO Max (old app): v53.20.1 - 60.4 MB install size Max (new app): v1.0.1 - 108.8 MB The new iOS app is 48.4 MB (~80%) bigger Here's our X-Ray for the old HBO Max app. It consists of ~18 MB of images (top left) ~11 MB main.jsbundle (top right) ~15 MB main binary (bottom left) The rest are misc frameworks, plugins, bundles, fonts, etc. Treemap of the HBO Max iOS ... Read 22 tweets Emerge Tools Profile picture Emerge Tools @emergetools May 22, 2023 How did the @Twitter iOS app change over the last 6 months? Why did the latest release of Google Translate Android reduce app size by 1/ 3rd? We try to make these questions easier to answer, which is why we're very excited about our newest feature, AI summaries of build diffs Jumping right in - Twitter v9.59.1 vs. v9.34.6 (iOS) Overall size decreased by 34 MB, but how quickly can we identify what changed? Image The summary is pointing to removals of plugins and bundles, which is easy to see in the X-Ray diff T1Twitter.framework is also highlighted in the summary. Searching through the diff, we can see that many assets were modified or removed to reduce its size ImageImage Read 7 tweets Emerge Tools Profile picture Emerge Tools @emergetools May 18, 2023 So, what does the @OpenAI ChatGPT iOS app look like under the hood? Well we took a look at a decrypted build How the ChatGPT iOS app is made Overall install size is 41.9 MB and has a fairly simple structure. Here's our X-Ray treemap Treemap of ChatGPT iOS app.... The main thing that stands out is they're shipping 18 MB worth of debug symbols in the app. Nothing stood out when we sifted through It's best practice to strip these out and is particularly easy to do since they only need to strip from their main app binary A highlight of 18MB of bina... Read 8 tweets Emerge Tools Profile picture Emerge Tools @emergetools May 17, 2023 What happens to an app's performance when it goes from react native -> native? The @peacock app just made the switch on iOS & Android and had a significant change in size and startup time Performance impact of switching to native A quick primer RN let's you create mobile apps for Android and iOS using js & react. 1 codebase, 2 apps. It has an active community & there are certainly reasons you'd want to use RN That said, if performance is important, native is going to be better A few reasons - JS is an interpreted language vs. native (Swift & Kotlin) is compiled - RN is *mostly* singled threaded. Concurrency is complex and not as performant - Native has easier access to device & OS features. RN requires more libraries to achieve functionality Read 12 tweets Emerge Tools Profile picture Emerge Tools @emergetools Jan 17, 2023 Notable iOS app size changes (install size) over the last week Increases @BestBuy: +26.3 MB @indeedjobs: +26.2 MB @github: +10.6 MB Decreases @Shopify: -24.5 MB @Reddit: -24.0 MB @googlechrome: -19.9 MB How Best Buy could've avoided the increase altogether Best Buy v22.12.10 (previous) Install Size: 148.6 MB Best Buy v23.1.10 (latest) Install Size: 174.9 MB The difference in size between the two is due to the latest release being built with Xcode 14 We've written extensively about Xcode 14 deprecating bitcode causing significant size increases in iOS apps thread on Xcode 14 & @BeReal_App https://twitter.com/emergetools/status/1590835633953865728 Read 6 tweets Emerge Tools Profile picture Emerge Tools @emergetools Jan 12, 2023 The @CandyCrushSaga iOS app (v 1.243.0) is made up of over 22k files Over 90% of the files are under 4 KB Why having many small files = size bloat + how Candy Crush could cut it's install size by almost 20% The candy crush iOS app has an install size of 264.8 MB 55.5 MB of the app is "levels", which are made up of .txt files like `episode190Level3.txt` that define a level in JSON format Emerge X-ray graph of candy...Emerge X-ray showing many l... Here's an example from the smallest file `episode1level8.txt` In total, the contents of the file are less than 1 KB, but the file takes up 4 KB in the app bundle that's downloaded on user's phones JSON of a level.txt fileEmerge X-Ray showing episod... Read 9 tweets [emoji-robo] Did Thread Reader help you today? Support us! We are indie developers! --------------------------------------------------------------------- This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story. Become a Premium Member ($3/month or $30/year) and get exclusive features! Become Premium Don't want to be a Premium member but still want to support us? Make a small donation by buying us coffee ($5) or help with server cost ($10) Donate via Paypal Or Donate anonymously using crypto! Ethereum 0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy Bitcoin 3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy Thank you for your support! Follow Us! Post Share Send Email! x Email the whole thread instead of just a link! email this [ ] Separate emails with commas Message [Here's a great threa] [ ] [ ] Send Thread As Email! Email Successfully Sent! :( Help | About | TOS | Privacy | Twitter Files