Emerge Tools Profile picture
Emerge helps teams like @DoorDash, @Spotify, @Duolingo, @Bumble, @ClassPass, @Tinder, @TuneIn, @Dropbox, @OpenAI & @CashApp build better mobile apps 🚀
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 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
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
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 ...