Week 10 started with a very clear plan.
Me and Hardik had a meet to decide what to do for the simulator issues and in which order:
- Download Image
- User Manual
- Discussion Forum
- Themes
Simple. Clear. Easy.
But then… me being me… I saw another bug and just couldn’t resist. Sorry, Hardik.
The Detour #1 – Project Description Editing Mess
While working on the simulator, I stumbled upon something that kept bugging me.
When you try to edit a project you created:
- The UI wasn’t uniform.
- The tag input field had no instructions on how to add multiple tags.
- Even worse — you update the project, then try to re-edit it… and all your previous details are gone. You’d have to write from scratch.
So I fixed the persistence issue first — now, when you re-edit a project, your details are still there.
But then I saw another thing: tags weren’t even showing up on the project description page after saving.
I checked the CircuitVerse website and saw how they have nice colored chips matching the theme.
Tags on website
Tags implementation in App
So… yeah… I implemented that too. This “small” side quest stretched way longer than planned. I am again very sorry, Hardik.
PR: Project details pre-fills saved data and added tags
The Detour #2 – Share Button on Project Card
And then, while going through the project cards, I had another thought:
"Wouldn’t it be cool if people could just share a project directly from here?"
Right now, if someone liked a project, they had to open it, copy the link, and then paste it somewhere.
That’s too many steps — especially for people who just want to quickly share a project with friends, classmates, or in the community.
So… I added a share button right on the card.
- Tap once → share instantly via your device’s share sheet.
- No extra navigation needed.
This wasn’t in our priority list (again, sorry Hardik 😅) but I feel like it improves the overall UX a lot.
PR: Share button in the Featured Circuit Card
The Detour #3 – Shrinking the App Size
While doing all this, another thought hit me:
"Hmm… why not reduce the app size too?"
So I went ahead with R8 optimization.
Turns out R8 was technically already implemented, but some key configurations were missing.
I will discuss this with Hardik and then I will make the PR.
I added:
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
What these do:
minifyEnabled true
→ Removes unused code for smaller APKs.shrinkResources true
→ Removes unused resources like images/XML.proguardFiles
→ Ensures critical code isn’t stripped accidentally.
At first, removing my changes gave the same APK size,
but after reading more, I realized my config gives better control over R8 in the long run.
Told Hardik, he was happy… but also reminded me (again) to stick to the plan. 😅
Back to the Actual Simulator Issues
1. Download Image
Problem:
The “Download Image” button in the simulator (running in a Flutter InAppWebView) technically worked, but the file:
Wasn’t saved in a public, user-accessible location.
Didn’t appear in the Gallery or Downloads folder until a device rescan/restart.
Why this happens:
Android needs a media scan after saving a new file, otherwise the system doesn’t “know” it exists.
Fix:
Saved files to
/storage/emulated/0/Download
Added runtime permission checks for older Android versions.
Created a
MethodChannel
inMainActivity.kt
to callMediaScannerConnection.scanFile
from Dart — instantly updates thegallery/download
list.
2. User Manual & Discussion Forum
Issue:
Both buttons (inside the simulator WebView) were doing nothing. No crash, no error — just silence.
Root Cause:
-
flutter_inappwebview
was intercepting the external links and not letting them open in the system browser.
Fix:
Update navigation handling logic.
Detect external URLs and open them using
url_launcher
instead of keeping them inside WebView.
3. Themes
This one… just started working on its own.
I’m not touching it. If it works, it works.
PR: Enhance Simulator Download & External Link Handling with Android 13+ Media Support
Next Up
We’ll now focus on the authentication issue.
And yes, Hardik, I promise I’ll try not to get distracted… try.
This Week’s Lessons
Bugs are like side quests — you can’t just ignore them when they’re staring at you.
Flutter WebView + external links = tricky business.
R8 optimization isn’t just about enabling it — proper configuration gives more control.
Sometimes, the universe fixes bugs for you… don’t ask why.
Top comments (0)