This week was a mix of debugging déjà vu, small victories, and quiet “aha” moments, the kind where you realize maybe, just maybe, you’re starting to understand how things actually work. I spent most of it cleaning up old code, fixing a few persistent bugs, and thinking about what I really want to learn next.

The End of the “Hacky Rebuild” Era

It started with some feedback from my supervisor about my little “force rebuild” workaround after a long-press. He suggested,

“If the trick is to rebuild after, would a refresh work just as well?”

So, I gave it a try, replaced the rebuild with a simple refresh. But as it turned out, the issue was still there. The selected entry just wouldn’t respond right away. After a bit more digging (and a few rounds of trial and error), I realized the real cause wasn’t the UI at all, it was Flutter’s gesture system still hanging onto the long-press state.

So I took a step back and rethought the whole thing. Instead of forcing a rebuild, I switched to using onLongPressEnd, which triggers the action only after the press ends. That way, the gesture naturally resets, and the tap works again, no hacks, no rebuild chaos. Later, I even simplified it further with onLongPressUp and refactored HeadListTile back into a simple, stateless ConsumerWidget.
It’s clean, responsive, and finally… drama-free.

A Peek Into the Future: Firebase AI & Rank-Based Judging

Since our current AI package isn’t actively maintained, I also spent some time looking into Firebase AI as a possible backup. For now, our “Gemini 2.5 Flash Lite” model is still supported, so everything’s fine, but it’s nice knowing there’s a Plan B if things ever go sideways.

On the creative side, I started exploring the idea of a rank-based judging system, where judges can drag and drop performances to rank them instead of giving numeric scores.
It’s still in early experimentation mode, but I’m envisioning:

  • A dedicated RankPage with a reorderable list
  • Color-coded badges showing current rank positions
  • Filters for active performances
  • A “Save” button that locks in the final ranking

It’s new, fun, and slightly chaotic (in true Flutter fashion), but I’m enjoying figuring it out piece by piece.

What’s Next: Beyond the App

Since most of my major app tasks are wrapping up, my supervisor asked what I’d like to work on next — something that aligns with what I want to learn.

That question made me think harder than any bug this week.
I realized that while I’ve been living in the front-end world of Flutter, I want to go deeper, learn backend or API development (maybe with Node.js or Python) and understand how everything connects behind the scenes.

I’m also curious about React, data analytics, and even cybersecurity. It’s quite a range, I know — but I’m open to exploring any of those areas next, especially if it helps me grow into a more well-rounded (or maybe even full-stack) developer someday.

Reflections & Insights

  • “Hacky fixes” are like band-aids, they work, but only until you understand the real wound.
  • Sometimes, debugging code teaches you as much about yourself as it does about Flutter.
  • It’s exciting and slightly scary to shift from just fixing things to thinking about what’s next.

What’s Next

Next week, I’ll continue working on and refining the rank-based judging prototype testing interactions, saving logic, and overall flow. Whatever it is, I’m ready for the next challenge!


0 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.