You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The APK size meanwhile exceeds 80 MB – while the per-app size limit at IzzyOnDroid is 30 MB. Checking how the size could be brought down, I see that the native libs alone make up for 77 MB – and they are stored uncompressed.
Would enabling legacy compression be an option for you? That would about half their size (at the price that they'd need to be unpacked at install), bringing the APK size down to (hopefully) below 50 MB at least. If you see other options, they're of course welcome as well (e.g. I don't know what it is for, but libembedded_milli.so is by far the biggest egg in the nest, with almost 50 MB size).
It's because of what you outlined: what Flutter calls "native assets". When packages are written with native code, a whole bunch of unneeded code is bundled with them, which is why milli and isar are so big (they both use some rust code or something rather that pure dart code).
Since this is my first app, I realized to late that it would be an issue. Had I known earlier, I maybe would have chosen pure dart libraries instead. But now it's too late...
Anyway, Flutter is working on improving native assets and resolving that issue. Mimir (the package that produces libembedded_milli.so) did switch to the new implementation, so now I should be able to solve that one.
I don't expect isar to make the switch however, the main developer is gone and it is only community maintained. But getting rid of the huge libembedded_milli.so will still be a great improvement!
I'll work on that this month and update you on the APK size I get.
@maelchiotti is there any news meanwhile? Until a "final solution" can be achieved, maybe at least turn on legacyCompression (which would bring the APK size down by 30 MB or more)? Bundling less fonts would also help saving several MB (Noto & Montserrat are quite big).
I apologize for not keeping you up to date on this issue. I haven't worked on the app for a while, as I'm working on other projects. I do want to fix some little things still, but I don't think this will be one of them.
As I don't want to keep abusing the rules, I think it would be fair to remove the app from IzzyOnDroid. It shouldn't be a problem for users, as it's also available on FDroid, and only a few minor versions will be coming anyway.
So not even enabling legacyCompression would be an option for you? That should be a very easy step. Would be sad having to remove a fine, reproducible app 😉
Hi @IzzySoft, worked on it sooner that expected! Enabling legacy compression does improve things a lot. I also removed some fonts variants that were not used for a 2-3 Mo gain. From 177 Mo, we are down to 135 Mo (ARM64 target).
Mimir still is the biggest issue. The new version that should solve it required Flutter beta at the time so I couldn't go that way, but I will take a look at that again.
I will publish a new later, but keep the issue open so I take a look at Mimir.
Awesome news: I gave the mimir update a quick try, and it worked without any issues! Down to 98 Mo! Not quite the 80 I hope I could reach, but still way better than the previous 177...
Will push the new version with all those improvements later!
Well, looks like Rust is still needed. No clue how you were able to build without:
+ bash ./scripts/isar/fdroid_build_isar.sh arm64
Building libisar for arm64
Using NDK at: /opt/sdk/ndk/27.0.12077973
Compiler dir: /opt/sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin
Building for arm64 architecture
tool/build_android.sh: line 84: rustc: command not found
tool/build_android.sh: line 85: cargo: command not found
tool/build_android.sh: line 86: rustup: command not found
tool/build_android.sh: line 87: rustup: command not found
mv: cannot stat '../../target/aarch64-linux-android/release/libisar.so': No such file or directory
mv: cannot stat 'libisar_android_arm64.so': No such file or directory
mv: cannot stat 'libisar.so': No such file or directory
Here's the tool/build_android.sh, starting with RUST_TOOLCHAIN="1.88.0-x86_64-unknown-linux-gnu" 🤷♂️ So I'm afraid, without knowing the Rust version (which until the previous release was in rust-toolchain.toml), we cannot build. No idea how you did.
I guess the GitHub action has a pre-installed rust version
That's my guess, too, yeah (1.94.1 currently, thanks to @TotallyAvailable giving the link – unexpectedly on-topic 😜). Especially as Isar has no corresponding step in their action either.
What the linked page also reminds us of: those versions can change quickly. The link @TotallyAvailable gave us, is already superseded 🙈 (though that does not affect our current case) => full list here.
Did you have a chance to check? We cannot hold back the results ("RB failed" as of now) much longer. Maybe we commit them now, and hope to tackle this issue with the next release then, @maelchiotti?
As it otherwise pops in daily with its error: yes, that's basically what I meant. OK, will mark it accordingly then – and keep my fingers crossed the next release will have it fixed again! 🤞
Which means I'll keep an eye on the other issue as well, as we'd face the identical problem (versions need to be pinned, and all that). I've subscribed to it already. 🤞
Activity
maelchiotti commentedon Jan 2, 2026
Hi! Yes, the APK size is definitely an issue.
It's because of what you outlined: what Flutter calls "native assets". When packages are written with native code, a whole bunch of unneeded code is bundled with them, which is why milli and isar are so big (they both use some rust code or something rather that pure dart code).
Since this is my first app, I realized to late that it would be an issue. Had I known earlier, I maybe would have chosen pure dart libraries instead. But now it's too late...
Anyway, Flutter is working on improving native assets and resolving that issue. Mimir (the package that produces libembedded_milli.so) did switch to the new implementation, so now I should be able to solve that one.
I don't expect isar to make the switch however, the main developer is gone and it is only community maintained. But getting rid of the huge libembedded_milli.so will still be a great improvement!
I'll work on that this month and update you on the APK size I get.
IzzySoft commentedon Jan 2, 2026
Thanks! Maybe you know them already, but let me leave the links here nevertheless, in the hope they're helpful:
On our website you can find more Useful Links 😉
IzzySoft commentedon Mar 23, 2026
@maelchiotti is there any news meanwhile? Until a "final solution" can be achieved, maybe at least turn on legacyCompression (which would bring the APK size down by 30 MB or more)? Bundling less fonts would also help saving several MB (Noto & Montserrat are quite big).
maelchiotti commentedon Mar 24, 2026
Hi @IzzySoft,
I apologize for not keeping you up to date on this issue. I haven't worked on the app for a while, as I'm working on other projects. I do want to fix some little things still, but I don't think this will be one of them.
As I don't want to keep abusing the rules, I think it would be fair to remove the app from IzzyOnDroid. It shouldn't be a problem for users, as it's also available on FDroid, and only a few minor versions will be coming anyway.
IzzySoft commentedon Mar 24, 2026
So not even enabling legacyCompression would be an option for you? That should be a very easy step. Would be sad having to remove a fine, reproducible app 😉
maelchiotti commentedon Mar 24, 2026
Well if it's easy indeed, sure, you're right. Will try ASAP!
IzzySoft commentedon Apr 6, 2026
Any progress yet? Just asking for orientation 🙈 And yes, I know what the "P" in "ASAP" stands for 🤪
maelchiotti commentedon Apr 6, 2026
Yeah, no worries, you're right I need to get to it. I'm adding that to my agenda for Friday, and I will update you!
maelchiotti commentedon Apr 7, 2026
Hi @IzzySoft, worked on it sooner that expected! Enabling legacy compression does improve things a lot. I also removed some fonts variants that were not used for a 2-3 Mo gain. From 177 Mo, we are down to 135 Mo (ARM64 target).
Mimir still is the biggest issue. The new version that should solve it required Flutter beta at the time so I couldn't go that way, but I will take a look at that again.
I will publish a new later, but keep the issue open so I take a look at Mimir.
maelchiotti commentedon Apr 7, 2026
Awesome news: I gave the mimir update a quick try, and it worked without any issues! Down to 98 Mo! Not quite the 80 I hope I could reach, but still way better than the previous 177...
Will push the new version with all those improvements later!
18 remaining items
IzzySoft commentedon Apr 10, 2026
Well, looks like Rust is still needed. No clue how you were able to build without:
Here's the
tool/build_android.sh, starting withRUST_TOOLCHAIN="1.88.0-x86_64-unknown-linux-gnu"🤷♂️ So I'm afraid, without knowing the Rust version (which until the previous release was inrust-toolchain.toml), we cannot build. No idea how you did.maelchiotti commentedon Apr 10, 2026
Mmh I guess the GitHub action has a pre-installed rust version maybe, so it was able to use that one?
I'll add back the Rust version, and make a new release using it.
TotallyAvailable commentedon Apr 10, 2026
(For potential future references)
https://github.com/actions/runner-images/releases/tag/ubuntu22/20260329.74
(1.94.1)
One among many potential interesting cases of the results should be identical .... Yes I'll shut up. Still was subscribed to this issue...
IzzySoft commentedon Apr 10, 2026
That's my guess, too, yeah (1.94.1 currently, thanks to @TotallyAvailable giving the link – unexpectedly on-topic 😜). Especially as Isar has no corresponding step in their action either.
What the linked page also reminds us of: those versions can change quickly. The link @TotallyAvailable gave us, is already superseded 🙈 (though that does not affect our current case) => full list here.
maelchiotti commentedon Apr 10, 2026
Ok, I'm away this weekend but should be able to work on that Monday, I'll update you.
IzzySoft commentedon Apr 13, 2026
Did you have a chance to check? We cannot hold back the results ("RB failed" as of now) much longer. Maybe we commit them now, and hope to tackle this issue with the next release then, @maelchiotti?
maelchiotti commentedon Apr 13, 2026
Sorry, didn't take the time in the end.
But if you mean "skip this release", then yes that's ok, the app itself didn't change anyway.
IzzySoft commentedon Apr 13, 2026
As it otherwise pops in daily with its error: yes, that's basically what I meant. OK, will mark it accordingly then – and keep my fingers crossed the next release will have it fixed again! 🤞
(note to self: need more fingers… 🙈 )
maelchiotti commentedon May 29, 2026
@IzzySoft I'm planning a new version, that will include the Rust version. I'll let you know when it goes live, hopefully it will build this time!
IzzySoft commentedon Jun 1, 2026
Which means I'll keep an eye on the other issue as well, as we'd face the identical problem (versions need to be pinned, and all that). I've subscribed to it already. 🤞