Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Partial / Delta Live Updates #225

Open
webbpage opened this issue Jul 9, 2023 · 6 comments
Open

feat: Partial / Delta Live Updates #225

webbpage opened this issue Jul 9, 2023 · 6 comments

Comments

@webbpage
Copy link

webbpage commented Jul 9, 2023

Feature Request

Delta updates would make for much faster live-update installs

Description

Any project greater than 20MB can create slow/poor update experience for users. This can be avoided by only including the necessary files.

Preferred Solution

Ionic appflow uses a pro-manifest.json file upon deploy the track what has changed since previous manual update. This allows for much smaller downloads, since the pro-manifest is referenced do only download the changes.

Alternatives

I'd even settle for the ability to have a capgo.ignore file that ignores my large js libraries, images to create a better experience for my users.

Platform(s)

ios/android

@riderx
Copy link
Collaborator

riderx commented Jul 14, 2023

Hello that one of the top request, currently it's a bit hard to achieve for 2 reason:
The updates are not only applied sequentially, you use The updater to try one of your branch, then go back to main or dev and back.
You can also test back old version.
It's also needed for user who didn't do update since 3 month to get the right files.
All this usecases have to work with partial update.
There also a second reason, full end-to-end encryption, currently the updater support end-to-end encryption, who is done at the zip level, so changing by file would need to have encryption by file.
And the key can change so that also something to take in consideration.

When i talked to most of the client of Capgo who needed this, we found way to optimize assets to get under 10mb.

Many assets who don't need to be into the code bundle, or can be optimized with webp/webm format.
it will also accelerate the download into app store and make you loose less users at that stage.
Here is a tutorial to make your app lighter:
https://capgo.app/blog/optimise-your-images-for-updates/

If you want to show me your usage and need, i'm happy to help on the discord

@webbpage
Copy link
Author

Thank you for your response. I'm using the OpenUI5 JS framework which is a significant portion of my app size (even after efforts to optimize). OpenUI5 can be compared to Ionic, but with more advanced UI controls (https://openui5.org/releases/). Currently, if I do not include this JS library directory in my Capgo .zip the update of course breaks. Per my Alternative, it would be cool if the .zip could be unpacked without impacting directories in a "capgo.ignore" file. It sounds like even that is a lot to bite off?

@Tallyb
Copy link

Tallyb commented Apr 3, 2024

Not sure what is the current status, but you should go along the method that PWA and Ionic Appflow are using which is using a manifest that contains files and their hashes and then diff only pack only the files that changed. https://ionic.io/docs/appflow/deploy/differentials

@riderx
Copy link
Collaborator

riderx commented Apr 21, 2024

That the Way we went !
We are now almost ready to test it :)

@webbpage
Copy link
Author

That is great news - thanks for the update!

@riderx
Copy link
Collaborator

riderx commented May 15, 2024

It’s currently in pause because we had to fix some issue I capgo but soon back on the topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants