Emerge Tools Profile picture
Emerge helps teams like @DoorDash, @Spotify, @Duolingo, @Bumble, @Square, @Tinder, @TuneIn, @Dropbox, @OpenAI & @CashApp build better mobile apps 🚀
Mar 25 7 tweets 2 min read
What app has added the most number of dynamic frameworks in the last 3 months?

Hint: it's an old friend of ours 🤖 It's @EufyOfficial, who we wrote about a few months ago

They've added a bunch of new frameworks, but its not just that they've added a lot that's interesting, its *what* they've been adding 👀 Image
Mar 24 7 tweets 3 min read
When we tweet about RN apps that have room for improvement, we often used the General Motor apps as an example

WELL NO MORE 👏👏👏

🧵 How General Motors shrunk app size by ~70% Image We wrote a deep dive on the four GM apps roughly a year ago

In it, we detailed how they could reduce EACH app by ~200 MB
Mar 18 9 tweets 4 min read
What's truly wild here is that at the beginning of 2024, the T-Life app was 37.3 MB

It's now at 475 MB

🧵 How to 10x your app size Image
Image
General breakdown

Dynamic Frameworks: 195 MB
Main app binary: 159 MB
Asset catalog: 69 MB

fwiw, each of those are bigger than the entire app was ~14 months ago 🕵 Image
Feb 6 16 tweets 5 min read
Got a few requests for this!

Let's break down the @binance crypto app 💰 Image So there's two versions of the app we're looking at, the US version and another version shipped under "Binance Switzerland"

From what we saw, the US app is only for the US, and every other country gets the app from Binance Switzerland, probably due to different regulations Image
Image
Jan 23 11 tweets 4 min read
We got multiple tags to analyze the Tapo @TPLINK app for being over 760 MB 👀

Let's see what we find in here 🤭🔎 Image Total install size is 764 MB

204.6 MB
171.5 MB frameworks
45.4 MB main app target
27.7 MB plugins
a whole bunch of assets and localizations assets.carImage
Jan 21 15 tweets 6 min read
It's always the banking apps huh 🤦‍♂️

Figuring out why the @UBS banking iOS app is almost 800 MB 🥲 Image First up, an overview

Frameworks - 336 MB (43%)
Main app target - 180 MB (23%)
Plugins - 55 MB (7%)

But what really sticks out is all that red, which signifies duplicate files ❌ Image
Jan 16 9 tweets 4 min read
Customer: “Why is this app so big?”

Company: “Very cool features & lots of them + you have no way to check what I’m saying”

Not today corporate. Not today.

🧵 Why @ouraring is ~450 MB Image This might be a bit long, so TL;DR

Oura is just duplicating a bunch of images, json, & localizations. The size isn’t b/c it’s “powerful with many features”

Here’s what the size actually is 👇

Assets: 207.8 MB
Localizations: 49.2 MB
JSON: 35.5 MB
Audio: 26.5 MB Image
Jan 13 9 tweets 3 min read
Another day, another tag to analyze a large app AND it's another Flutter smart home app 😬

Let's take a look at why the @EufyOfficial home security iOS app is 637 MB 👇 Image A quick breakdown 🔎

- 378 MB of frameworks (59%)
- 137 MB of (21%)
- 86 MB of localizations (13%) Assets.carImage
Jan 7 6 tweets 2 min read
In 2024, @DraftKings decreased app size by 65% and improved app launch by +50%

Let’s take a look at what they did

🔬 Migrating from Xamarin → Native Image The main app binary went from 97 MB → 11 MB (the project also changed its name from DK.Gaming.iOS → Sportsbook)

Aside from that, much of the size decrease came from completely removing all dynamic-link libraries (.dll, used in Xamarin projects) Image
Dec 17, 2024 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, 2024 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, 2024 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, 2024 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, 2024 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
Aug 27, 2024 11 tweets 4 min read
Ok so I guess we're talking toothbrushes today 🦷

🧵 Why @OralB is 290 MB + looking at an even bigger toothbrush app

(tysm for all the tags 🥲) Image
Image
For OralB, 233 MB / 290 MB (80%) is coming from its asset catalog. Most of the assets are PDFs of different toothbrush models

The largest is `Sonos_M9_rose` at 7.8 MB. Most PDFs aren't even the whole toothbrush, its just the handle and buttons 🧐 Image
Image
Jul 9, 2024 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, 2024 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, 2024 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, 2024 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, 2024 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
Mar 4, 2024 7 tweets 3 min read
General Motors has four nearly identical apps for @Buick @chevrolet @Cadillac & @GMC, all over 450 MB

At the core of each app is TardisHybridContainer, a hybrid React Native framework

We detail how GM can cut ~200 MB from *each* app
emergetools.com/deep-dives/gen… The apps could cut ~100 MB from two image related optimizations

The first is simply applying a light compression to reduce image sizes

The second has to do with how GM is using scaled images Screenshot showing that myGMC could save 58.5 MB from image compression and 42.4 MB from placing scaled images in an asset catalog