Skip to content

Conversation

@kean
Copy link
Contributor

@kean kean commented Jun 24, 2024

The main contributor to the app size is the AppImages asset catalog that's included in 6 targets (and gets copied) and contains large and unused images.

I downloaded the .car file, extracted the images to see what takes the most space, and focused on just these assets.

Screenshot 2024-06-24 at 10 19 50 AM

Savings

  • -33.6 MB – JPBackground.pdf – replace with pregenerated tinyfied .png images that now take 1.3 MB instead of 6.9 MB
  • -5.2 MB – Remove JPBackground.pdf from the asset catalog shared between all targets and move it to the catalog specific to the Jetpack app (it was added in the wrong place)
  • -9.8 MB – Remove unused Stories-related files (this feature was removed)
  • -10.0 MB – Remove unused site creation site type icons (unused)
  • -3 MB (approx) – Tinyfied rppreview images (Site Settings / related post) – quality doesn’t matter much

This PR removes 61.6 MB from the universal build (expanded). I haven't measured the changes in the app-thinning report, but the savings will also be substantial, especially for @3x devices, which are most of them.

Here's the different in the alpha builds .ipa files (compressed):

Screenshot 2024-06-24 at 10 55 23 AM

To test:

  • Verify that the background is the login page background is still displayed correctly:

Screenshot 2024-06-24 at 10 41 18 AM Screenshot 2024-06-24 at 10 20 14 AM

Regression Notes

  1. Potential unintended areas of impact

  2. What I did to test those areas of impact (or what existing automated tests I relied on)

  3. What automated tests I added (or what prevented me from doing so)

PR submission checklist:

  • I have completed the Regression Notes.
  • I have considered adding unit tests for my changes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

Testing checklist:

  • WordPress.com sites and self-hosted Jetpack sites.
  • Portrait and landscape orientations.
  • Light and dark modes.
  • Fonts: Larger, smaller and bold text.
  • High contrast.
  • VoiceOver.
  • Languages with large words or with letters/accents not frequently used in English.
  • Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)
  • iPhone and iPad.
  • Multi-tasking: Split view and Slide over. (iPad)

@kean kean added this to the Pending milestone Jun 24, 2024
@wpmobilebot
Copy link
Contributor

WordPress Alpha📲 You can test the changes from this Pull Request in WordPress Alpha by scanning the QR code below to install the corresponding build.
App NameWordPress Alpha WordPress Alpha
ConfigurationRelease-Alpha
Build Numberpr23381-c88e54a
Version25.1
Bundle IDorg.wordpress.alpha
Commitc88e54a
App Center BuildWPiOS - One-Offs #10215
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

@wpmobilebot
Copy link
Contributor

Jetpack Alpha📲 You can test the changes from this Pull Request in Jetpack Alpha by scanning the QR code below to install the corresponding build.
App NameJetpack Alpha Jetpack Alpha
ConfigurationRelease-Alpha
Build Numberpr23381-c88e54a
Version25.1
Bundle IDcom.jetpack.alpha
Commitc88e54a
App Center Buildjetpack-installable-builds #9264
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

@kean kean requested a review from jkmassel June 24, 2024 14:55
@kean kean changed the title Reduce App Size Reduce App Size – Assets Jun 24, 2024
@jkmassel jkmassel merged commit 09137d3 into trunk Jun 24, 2024
@jkmassel jkmassel deleted the task/reduce-app-size branch June 24, 2024 20:16
@jkmassel jkmassel mentioned this pull request Jun 24, 2024
14 tasks
@kean kean mentioned this pull request Jun 28, 2024
14 tasks
jkmassel added a commit that referenced this pull request Jul 5, 2024
commit e0fd9fd
Author: Gio Lodi <[email protected]>
Date:   Wed Jul 3 15:08:20 2024 +1000

    Explicitly set mac queue in Buildkite pipeline (#23402)

commit 312df0f
Author: Gio Lodi <[email protected]>
Date:   Mon Jul 1 17:37:37 2024 +1000

    Bump Fastlane `xcodebuild -showBuildSettings` interval (#23403)

    This is an attempt to avoid timeouts, mostly in CI.

commit bae5a91
Author: WordPress Mobile Bot Account <[email protected]>
Date:   Thu Jun 27 09:08:50 2024 +1000

    Merge 25.1 release finalization (#23391)

    * Fix announcement card keep showing up after tapping Done (#23384)

    * Update app translations – `Localizable.strings`

    * Update WordPress metadata translations

    * Update Jetpack metadata translations

    * Bump version number

    ---------

    Co-authored-by: David Christiandy <[email protected]>

commit c508e4f
Author: Alex Grebenyuk <[email protected]>
Date:   Tue Jun 25 23:47:11 2024 -0400

    Remove AlamofireNetworkActivityIndicator (#23385)

commit 7bc34eb
Author: kean <[email protected]>
Date:   Tue Jun 25 11:00:32 2024 -0400

    Remove deprecated in JetpackBrandingVisibility.enabled

commit 9c8ff9a
Author: kean <[email protected]>
Date:   Tue Jun 25 10:58:55 2024 -0400

    Fix more warnings

commit 55e0cd4
Author: kean <[email protected]>
Date:   Tue Jun 25 10:53:34 2024 -0400

    Fix warnings in CachedAsyncImage

commit 1f78c63
Author: kean <[email protected]>
Date:   Tue Jun 25 10:51:42 2024 -0400

    Fix warnings in MemoryCache

commit 9d86b6b
Author: Povilas Staskus <[email protected]>
Date:   Tue Jun 25 09:06:16 2024 +0200

    Support editing media metadata via XML-RPC #809 (#23316)

    * Support media metadata editing for XML-RPC connected self-hosted sites

    - Updated WordPressKit supports editing title, description, and caption of the media via XML-RPC
    - XML-RPC API doesn't support editing alt-text

    * Support editing media metadata via XMLRPC in MediaService

    Media is a type of a post therefore "wp.editPost" can be used to edit media metadata. Note that alternative text cannot be edited due to lack of XML-RPC support https://core.trac.wordpress.org/ticket/58582

    * Update RELEASE-NOTES.txt

commit d8a1348
Author: Povilas Staskus <[email protected]>
Date:   Tue Jun 25 09:05:13 2024 +0200

    Add unique identifier to file downloads rows (#23310)

    File Downloads data can be identical which can result in a rare duplicate diffable data source identifiers crash. Pass a unique identifier to ensure that each file downloads row is treated as unique.

commit 09137d3
Merge: fc50d1a c88e54a
Author: Jeremy Massel <[email protected]>
Date:   Mon Jun 24 14:16:17 2024 -0600

    Reduce App Size – Assets (#23381)

commit fc50d1a
Merge: 2270784 32a3251
Author: Jeremy Massel <[email protected]>
Date:   Mon Jun 24 14:15:55 2024 -0600

    Remove Stories and Kanvas dependency (#23382)

commit 2270784
Merge: 2ee755c f76856a
Author: Jeremy Massel <[email protected]>
Date:   Mon Jun 24 13:50:40 2024 -0600

    Update rubocop.yml (#23383)

commit f76856a
Author: kean <[email protected]>
Date:   Mon Jun 24 15:27:29 2024 -0400

    Update rubocop.yml

commit 32a3251
Author: kean <[email protected]>
Date:   Mon Jun 24 13:52:46 2024 -0400

    Remove Kanvas pod

commit c93087b
Author: kean <[email protected]>
Date:   Mon Jun 24 13:30:10 2024 -0400

    Remove StoriesIntroViewController

commit e64e98d
Author: kean <[email protected]>
Date:   Mon Jun 24 13:25:40 2024 -0400

    Replace remaining Kanvas usages

commit 3ec3d0d
Author: kean <[email protected]>
Date:   Mon Jun 24 12:26:35 2024 -0400

    Remove StoryEditor

commit 4b66f07
Author: kean <[email protected]>
Date:   Mon Jun 24 12:17:06 2024 -0400

    Remove Kanvas related code

commit 4812e5b
Author: kean <[email protected]>
Date:   Mon Jun 24 12:13:48 2024 -0400

    Remove remaining Kanvas related code

commit f7743b6
Author: kean <[email protected]>
Date:   Mon Jun 24 12:11:30 2024 -0400

    Remove custom fonts used by Kanvas

commit c88e54a
Author: kean <[email protected]>
Date:   Mon Jun 24 10:44:12 2024 -0400

    Replace JPBackground with tiny-fied icons

commit a9d80c8
Author: kean <[email protected]>
Date:   Mon Jun 24 10:33:29 2024 -0400

    Reduce rppreview size

commit ac82126
Author: kean <[email protected]>
Date:   Mon Jun 24 10:27:29 2024 -0400

    Remove unused site creation icons

commit 5b8a5a3
Author: kean <[email protected]>
Date:   Mon Jun 24 10:21:00 2024 -0400

    Remove Stories related files

commit 6f98ffd
Author: kean <[email protected]>
Date:   Mon Jun 24 10:19:06 2024 -0400

    Move JPBackground to AppImage specific to the Jetpack app

commit dd78ad7
Author: kean <[email protected]>
Date:   Mon Jun 24 10:09:20 2024 -0400

    JPBackground as png

commit 2ee755c
Merge: 81bc1c5 3835956
Author: Alex Grebenyuk <[email protected]>
Date:   Fri Jun 21 10:13:38 2024 -0400

    Fix rare crash in GutenbergWebViewController (#23379)

commit 81bc1c5
Merge: 6dc78ec 465047a
Author: Povilas Staskus <[email protected]>
Date:   Fri Jun 21 13:30:39 2024 +0300

    Stats: Improve scrolling performance  (#22847)

commit 465047a
Merge: bc88b72 6dc78ec
Author: Povilas Staskus <[email protected]>
Date:   Fri Jun 21 11:00:43 2024 +0300

    Merge branch 'trunk' into task/22721-stats-traffic-improve-scrolling-performance

commit bc88b72
Author: Povilas Staskus <[email protected]>
Date:   Fri Jun 21 10:57:00 2024 +0300

    Put analyticsTracker back since it's used by JetpackBanner

commit 1b8bc1c
Author: Povilas Staskus <[email protected]>
Date:   Fri Jun 21 10:52:21 2024 +0300

    Create StatsRowsCell with default child stack view rows and ability to configure more

commit 89fd816
Author: Povilas Staskus <[email protected]>
Date:   Fri Jun 21 10:28:28 2024 +0300

    Make maximum content size category smaller for stats cell subtitles

commit 51992ab
Author: Povilas Staskus <[email protected]>
Date:   Fri Jun 21 10:28:01 2024 +0300

    Remove force layout calls when setting subtitle visibility

    These calls were added together with dynamic type support, however, they slow down layout process of the cell

commit 3835956
Author: kean <[email protected]>
Date:   Thu Jun 20 10:27:02 2024 -0400

    Update release notes

commit 26bd9b3
Author: kean <[email protected]>
Date:   Thu Jun 20 10:23:16 2024 -0400

    Fix rare crash in GutenbergWebViewController

commit 7684a35
Author: Povilas Staskus <[email protected]>
Date:   Thu Jun 20 10:48:25 2024 +0300

    Move additional checks for adding default rows into the extension

commit 25bf46d
Author: Povilas Staskus <[email protected]>
Date:   Wed Jun 19 13:47:26 2024 +0300

    Update RELEASE-NOTES

commit 8884f81
Merge: 2674401 1c05916
Author: Povilas Staskus <[email protected]>
Date:   Wed Jun 19 13:35:52 2024 +0300

    Merge branch 'trunk' into task/22721-stats-traffic-improve-scrolling-performance

commit 2674401
Author: Povilas Staskus <[email protected]>
Date:   Thu Apr 11 15:57:07 2024 +0300

    Update CountriesCell to use setNeedsLayout for more efficiency

commit eb7c142
Author: Povilas Staskus <[email protected]>
Date:   Thu Apr 11 15:45:56 2024 +0300

    Update TopTotalsCell to use setNeedsLayout for more efficiency

commit d0af997
Author: Povilas Staskus <[email protected]>
Date:   Wed Apr 10 11:40:38 2024 +0300

    Update RELEASE-NOTES.txt

commit 8fb2eb4
Merge: 9252c6f d79aa28
Author: Povilas Staskus <[email protected]>
Date:   Wed Apr 10 10:07:24 2024 +0300

    Merge branch 'trunk' into task/22721-stats-traffic-improve-scrolling-performance

commit 9252c6f
Author: Povilas Staskus <[email protected]>
Date:   Mon Mar 18 17:05:19 2024 +0200

    Do not track StatsTraffic tableView scrolling

commit 9880cb7
Author: Povilas Staskus <[email protected]>
Date:   Mon Mar 18 17:05:02 2024 +0200

    Optimize CountriesCell to add rows only when the cell loads

commit 98d5b77
Author: Povilas Staskus <[email protected]>
Date:   Mon Mar 18 16:45:44 2024 +0200

    Optimize TopTotalsCell to add rows only when the cell loads

    TopTotalsCell was calling addRows on every configuration of cell which in turn created and added a hierarchy of UIStackView-based views.

    Optimizing TopTotalsCell to only add rows once and then make manipulations on existing rows.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants