0% found this document useful (0 votes)
104 views17 pages

IOS Coding

The article discusses methods to reduce the size of the TPBank iOS banking app by 50%, which is currently 650 MB. Key strategies include removing unused resources, optimizing images, eliminating duplicate assets, and stripping unnecessary binary symbols. Implementing these techniques could potentially save over 300 MB, significantly improving the app's efficiency and user experience.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
104 views17 pages

IOS Coding

The article discusses methods to reduce the size of the TPBank iOS banking app by 50%, which is currently 650 MB. Key strategies include removing unused resources, optimizing images, eliminating duplicate assets, and stripping unnecessary binary symbols. Implementing these techniques could potentially save over 300 MB, significantly improving the app's efficiency and user experience.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Open in app

Search

Get unlimited access to the best of Medium for less than $1/week. Become a member

Level Up Coding · Follow publication

How I reduce the iOS Banking app size by 50%


5 min read · Dec 1, 2024

Tuan Hoang (Eric) Follow

Listen Share More

Photo by claudiotesta

TPBank is my daily use Vietnam banking app, and I’ve used it for 6 years. Recently, I
looked at its app size for the first time and I was shocked.

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 1/17


🫨
11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

650 MB. 2x bigger than the average Vietnam banking app size

I was curious, and I dug into it.

In this article, I will write about things I’ve found and some solutions to cut the app
size by half. I hope you can learn something and apply these techniques to your iOS
project.

Shout out to Emerge for their awesome tools.


1. Unused heavy resources
When checking their bundle, I realized they use specific mp4 files and images for
special events, such as the New Year and Christmas. However, it’s December now.
Keeping the 2024 New Year event resources in the app is unnecessary and we should
remove it.

I found these New Year resources by filtering the keyword “tet” (New Year in
Vietnamese). Removing all of these resources can reduce the app size by 30MB.

2. Non-optimize resources
The asset size of the TPBank app is 200MB. It’s even bigger than some other banking
apps.

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 2/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

I noticed 2 problems when I analyzed the app:


2.1. Not compress images
The TPBank app has a lot of big images. Lots of image sizes are greater than 2MB.

We can reduce the image sizes through lossy compression or convert it to HEIC
format. It can reduce the app size by 159.7 MB 🤯

2.2. Using iPad image for iOS app


Filtering the resources with the “iPad” keyword gave me these results:

The TPBank iOS Bundle contains resources for iPad. This is because they configured
the images as Universal. We can change it to iPad for these images, and Apple will
help us to remove it for the iOS App (App Thinning). Doing that will help to reduce
the iOS app size by 20MB.

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 3/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

2.3 Can’t utilize App thinning


Some of the modules of the TPBank app are built by using Flutter.

However, the assets in the Flutter module can’t be optimized by using 1x/2x/3x
assets and App thinning. That leads to a huge asset size (17.1 MB assets just for the
Flutter module).
3. Duplicate resources

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 4/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

A bird’s-eye view can easily see that TPBank contains a lot of duplicated resources:
images and fonts.

lots of duplicated resources

Upon examining the bundle, I noticed that some of the frameworks include their
own embedded fonts.

We can transfer these duplicated resources and fonts to a shared UI bundle. The
potential savings calculated by the Emerge tool is almost 28MB.

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 5/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

We can also integrate some tools to help us detect duplicate resources, which I have
mentioned in my previous article.
4. Unstrip Binary Symbols
Swift binaries include large amounts of symbols in a segment of the binary used by
the dynamic linker. These are generally not needed in production builds. The
TPBank app doesn’t strip these unnecessary symbols, which increases the app size.

To strip binary symbols, we can refer to this guidance from Emerge. The potential
savings for the app size are 55 MB

5. Low exposure rate resources


I used Emerge Tools and Asset Catalog Tinkerer to examine the assets more closely.
I found numerous advertisement-heavy images that I have never seen used in the
app.

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 6/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

advertisement image for Sunlife

99% of users will not see these event images because they are not in the core
business flows of the app. These images have a low exposure rate.

Due to their heavy size (lots of images are ~4MB), we can consider moving them to
CDN to help reduce the app size and benefit 99% of users.

These simple, low-hanging fruit solutions can reduce the app size by more than
300MB (~ 50% of the original size).

There are still many other improvements we can make, such as:

Removing unused images (I believe they have many)


Change to use static library (Strip unused code)
Enhancing the app’s security (I better not mention it here 😂)

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 7/17
11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Now, where can I submit this article to TPBank Bounty Bug to get some cash?

If you find this post helpful, please hit the like button and leave a comment so that
Medium can recommend the article to others.

Thanks for reading.

Swift IOS IOS App Development Mobile App Development

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 8/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Follow

Published in Level Up Coding


245K followers · Last published 9 hours ago

Coding tutorials and news. The developer homepage gitconnected.com && skilled.dev && levelup.dev

Follow

Written by Tuan Hoang (Eric)


423 followers · 90 following

In Medium, I write about the advanced topics in iOS Software Development. Free and more content for
Software engineering at my blog: ericsspace.com

Responses (6)

Anderson Silva Software

What are your thoughts?

Niaaz Wahab
Niaa
Dec 5, 2024

Great article! I’d always wondered why apps like DBS, UOB, HSBC were so huge. I assumed it was because of
extraneous features or security obfuscation… I didn’t expect things like duplicate assets 😂
6 Reply

sonvuhwg
sonv Feb 28
file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 9/17
11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Nice article

5 Reply

Baldeagle
Bald Feb 19

I used to have the Facebook app on my phone. It's about 250MB and they update it every couple weeks. I
never used it and I realized I was using GB of data to update this app regularly. So I deleted it, which is the
best way to cut down on data usage. 😀
1 1 reply Reply

See all responses

More from Tuan Hoang (Eric) and Level Up Coding

Create a XCFramework for iOS

Tuan Hoang (Eric)

Create a XCFramework for iOS


I’ve switched from an outsource company to a product company recently. This is the first time
I’ve worked in a product company, so there…

May 31, 2021 100 3

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 10/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

In Level Up Coding by Rahul Sharma

SQL Is Dead, NoSQL Is Dying, and NewSQL Is Quietly Taking Over


You are developing the backend infrastructure of an extensive financial system. The system
operates as either a hedge fund, payment…

May 12 785 104

In Level Up Coding by Fareed Khan

Building a Multi-Agent AI System with LangGraph and LangSmith


A step-by-step guide to creating smarter AI with sub-agents

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 11/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Jun 1 1K 16

In Level Up Coding by Tuan Hoang (Eric)

Modular Navigation in SwiftUI: A Comprehensive Guide


How I handle navigation in a Modular SwiftUI application

Oct 31, 2023 428 6

See all from Tuan Hoang (Eric)

See all from Level Up Coding

Recommended from Medium

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 12/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Thomas Ricouard

Building iOS apps with Cursor and Claude Code


My refined, almost perfect workflow

Jun 4 303 6

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 13/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Shobhakar Tiwari

Crack Your First iOS Interview with Confidence 🎉


Introduction

Jan 15 21 1

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 14/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Koti Avula

Why Swift Is 2.5x Faster Than Objective-C (Interview Question)


🎉 Article Published: 73
May 30 78 5

In Swiftfy by Baljit Kaur

Writing Swift Like Apple: Best Practices for Clean and Elegant Code
Mastering Swift the Apple Way: Writing Clean, Safe, and Efficient Code

Mar 2 423 4

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 15/17


11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Tanishq Arora

Meta iOS Interview Experience and Questions


It was scheduled to be a 45-minute technical round, but the conversation ended up going for
about 50–55 minutes, which was a good sign. The…

May 2 102 2

Ashit Ranpura

Code Review for Mobile Apps: A Senior Engineer’s Guide to Quality and
Velocity
file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 16/17
11/06/2025, 21:39 How I reduce the iOS Banking app size by 50% | by Tuan Hoang (Eric) | Level Up Coding

Boost code quality, ship faster, and mentor better with a proven mobile code review workflow
for Flutter, iOS, and Android teams.

May 26 14

See more recommendations

file:///home/anderson/Área de trabalho/Pasta sem título/iOS Coding.html 17/17

You might also like