Emerge Tools Profile picture
Emerge helps teams like @DoorDash, @Spotify, @Duolingo, @Bumble, @ClassPass, @Tinder, @TuneIn, @Dropbox, @OpenAI & @CashApp build better mobile apps πŸš€
Dec 17 β€’ 7 tweets β€’ 3 min read
We got tagged to analyze this app on Thre*ds so we're posting it here too 🀭

🧡 Let's take a look at why the @intesasanpaolo iOS app is 699 MB 😳 Image A quick breakdown πŸ‘‡

448 MB (64%) dynamic frameworks 🫠
72 MB (10%) main app target
74 MB (11%) of assets Image
Nov 11 β€’ 8 tweets β€’ 3 min read
We've got to stop meeting like this πŸ˜…

🧡 taking a look under the hood of the @Yelp iOS app Image Install size weighs in at ~318 MB, but ~4 MB of that is the watch app ⌚️

High-level breakdown:

130 MB dynamic frameworks
47 MB assets
34 MB main app target binary
26 MB localizations

For reference, @GoogleMaps weighs in at ~296 MB (7% smaller) Image
Oct 3 β€’ 9 tweets β€’ 4 min read
Did someone say app size?!

Here's why @thetrainline iOS app is so big 🧡 Image Total install size is 342 MB

Basic breakdown:

115 MB of Plugins
109 MB main app target binary
34 MB sqlite file πŸ‘€ (more on this later)
23 MB Dynamic Frameworks

The rest is assets, localizations, misc. Let's start with the Plugins πŸ”Œ Image
Sep 24 β€’ 11 tweets β€’ 4 min read
Do you want a paid wallpaper app from @MKBHD?

Maybe not? Well do you want to know how its made πŸ€“

🧡 Looking inside the new @Panels_art app, starting with ads Image 🎀 Ads have been a big topic

Panels is using Google Ads in both iOS (GAD) & Android

On Android, is the largest dependency in the dex com.google.android.gms.internal.ads

Image
Image
Sep 5 β€’ 10 tweets β€’ 4 min read
Oohhoho this one looks fun!

Let's take a look at why the @SantanderUK iOS app is at a whopping 613.3 MB and how 35% of it does nothing for the user 🧐 Image Right off the bat, it looks like most of the app (587.6 MB) is dynamic frameworks

Dylibs let you share code between targets, but are larger than static frameworks b/c static let's the compiler strip dead code. It's likely that Santander doesn't need ALL of those to be dynamically linkedImage
Jul 9 β€’ 11 tweets β€’ 4 min read
Good question @VishalMalvi_ ! Here's what's going on behind the scenes of the @gmail iOS app πŸ‘‡ Image Here are the biggest chunks of the app

Main app target - 225 MB
Plugins - 99 MB
Dylibs - 46 MB
Localizations - 130 MB πŸ‘€
Image
Image
Jun 24 β€’ 8 tweets β€’ 3 min read
Another day, another "How is this app so big tweet" πŸ€“

This time its the @DJIGlobal iOS app, which comes in at 1 GB Screenshot of tweet of the DJI Mimo app store with the text "New app size recrod" A lot of the comments speculated that the app was large due to assets & while there are 155 MB of .mp4 video files, the bulk of the size is coming from ML models Pie chart of app size showing 155 MB (15%) are coming from videos
May 13 β€’ 8 tweets β€’ 3 min read
Yes, we can be that someone πŸ€“

Looking into the @smartthings iOS app
Most the app is made up of dynamic frameworks - 633 MB of dylibs

The 4 largest dylibs take up ~350 MB

TVController2: 95.3 MB
SmartThingsCore: 91.1 MB
SmartThingsOnboarding: 90.8 MB
UnityFramework: 73.5 MB

... no clue what this app that "does nothing but tell me if I left the fridge door open" is using Unity for, but it's probably super important and needs to be there...Emerge X-Ray of SmartThings
Mar 25 β€’ 10 tweets β€’ 4 min read
These are the best πŸ₯²... breaking down why @LinkedIn iOS is half a GB

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
Mar 8 β€’ 9 tweets β€’ 4 min read
Finding accessibility issues in an app is an incredibly manual task that can take hours depending on the size. Which seems like a perfect place for ✨AI ✨

🧡Surfacing accessibility issues in the @Drizly app w/ AI 🧠 A quick background - our Snapshots product turns Previews into snapshots. A recent feature gives the ability to use AccessibilitySnapshot w/ one line

You don't need to write test code to get snapshot tests or to snapshot VoiceOver elements
Code snippet showing `emergeAccessibility(true)` on a PreviewProvider
Drizly Preview with annotations of VO elements
Aug 9, 2023 β€’ 19 tweets β€’ 6 min read
Localization files translate text in your iOS app, you'll have at least one for every language you support

They're are also a common source of size bloat. The @FedEx iOS app has 130+ MB of localizations - over 50% of total size

🧡 Avoiding common pitfalls + a size saving script Pie chart of the FedEx app. Chart is showing size by categories. 55% of the app (132.7 MB) is localization files Localization bloat is usually from one of two causes

1. File duplication
2. Inefficient file formatting
May 23, 2023 β€’ 22 tweets β€’ 8 min read
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
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
May 22, 2023 β€’ 7 tweets β€’ 3 min read
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
May 18, 2023 β€’ 8 tweets β€’ 4 min read
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....
May 17, 2023 β€’ 12 tweets β€’ 4 min read
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
Jan 17, 2023 β€’ 6 tweets β€’ 5 min read
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
Jan 12, 2023 β€’ 9 tweets β€’ 4 min read
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...
Jan 10, 2023 β€’ 9 tweets β€’ 3 min read
Inspired by this @Kelset tweet, let's take a look at how the @discord iOS app increased by 54.2 MB (36%) install size in version 158.0

Discord Version 157.0 measured at 148.7 MB install size.

More than a third of the app was from main.jsbundle (RN) Image
Jan 4, 2023 β€’ 21 tweets β€’ 8 min read
The largest iOS apps all have a common problem

Localization files account for
23% (74 MB) of @Uber
23% (30 MB) of @WhatsApp
17% (53 MB) of @MicrosoftTeams
17% (50 MB) of Nike Run Club

🧡 Here's how Airbnb reduced the size of localizations by 82% with the help of Emerge First, a quick primer on localization files

Localization files are used to store translations of text in your app. Each file is a list of key-value pairs for text that need translating. These files exist for every language your app supports Example of key value pairs ...