DEV Community

Cover image for GSoC Week 10 – The Week of… Well, Distractions
Yashvant Singh
Yashvant Singh

Posted on

GSoC Week 10 – The Week of… Well, Distractions

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:

  1. Download Image
  2. User Manual
  3. Discussion Forum
  4. 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'
Enter fullscreen mode Exit fullscreen mode

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 in MainActivity.kt to call MediaScannerConnection.scanFile from Dart — instantly updates the gallery/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)