DEV Community

Cover image for GSoC Week 8: Linting Upgrades, UI Redesigns & Simulator
Yashvant Singh
Yashvant Singh

Posted on

GSoC Week 8: Linting Upgrades, UI Redesigns & Simulator

Week 8 of GSoC has been all about refining and polishing—from updating development standards to enhancing user experience and improving project editing workflows. Let's dive into the highlights!

Upgrading Linting: Flutter Lints 6.0.0

I kicked off the week by cleaning up the codebase and aligning it with the latest best practices by upgrading flutter_lints from 5.0.0 to 6.0.0

Pull Request: chore: upgrade flutter_lints from 5.0.0 to 6.0.0 #405

Why Flutter Lints 6.0.0?

The new version introduces stricter type safety and code readability rules:

  • strict_top_level_inference: Forces explicit type annotations, improving clarity and catching errors early.
  • unnecessary_underscores: Promotes cleaner naming conventions by flagging redundant underscores in unused parameters.

Changes Made:

  • Bumped flutter_lints in pubspec.yaml
  • Added explicit type annotations to constructors and method parameters
  • Cleaned up unused parameter names to follow the new underscore rule
  • Ensured zero violations with dart analyze

Summary:

  • Type safety → Improved
  • Readability → Sharpened
  • Functional changes → None, but the code is now cleaner and future-proof

Featured Project Card Redesign

Next, we shifted gears to user-facing components. The FeaturedProjectCard got a complete makeover to enhance both functionality and aesthetics.

Major Improvements:

  • New layout with better visual hierarchy
  • Display of project statistics: Stars ⭐ and Views 👀
  • Better responsive design with thoughtful spacing
  • Added a fallback image (default_project_image.png) for projects without custom images

Widget Test Updates:

  • Tests updated to reflect the new TextButton (replacing CVPrimaryButton)
  • Coverage improved for all new logic and edge cases

Extras:

  • HTML tags stripped from project descriptions
  • Enhanced dark mode support for consistent UX

Pull Request: Featured circuit card #406

A quick note on the PR journey:
Last week, I didn't submit the PR as the UI changes were pending review from Nitin. This week, I finally opened it, and Aboo himself reviewed it! There were a few corrections to make, but after addressing them, the PR was merged successfully.

This revamp significantly improves how projects are showcased—making the browsing experience visually appealing and informative.


imgBot PR Fixes: Lighter Assets, Faster Loads

We also worked on resolving the imgBot PR, which optimized asset file sizes across the repo.

Benefits of Image Optimization:

  • Reduced initial load time
  • Lower data consumption for users
  • Better performance on low-bandwidth networks
  • Smaller bundle sizes for improved deployment efficiency

Pull Request: chore(images): optimize assets with Imgbot #407

Every kilobyte counts, and this cleanup brings long-term benefits to app performance.


Project re-editing

The most impactful feature of the week was integrating project re-editing, along with several UX improvements in the editor.

Simulator Editing Features:

  • Passed Project object to SimulatorView
  • Dynamically generated simulator URL based on the editing context
final Project? project = Get.arguments as Project?;
String get url {
  if (_projectToEdit != null) {
    return '${EnvironmentConfig.CV_BASE_URL}/simulator/edit/${_projectToEdit!.id}';
  }
  return '${EnvironmentConfig.CV_BASE_URL}/simulator';
}
Enter fullscreen mode Exit fullscreen mode

Rich Text Editor Enhancements:

  • Added 16px padding for cleaner UI
  • Maintained full toolbar functionality
  • Improved readability and layout

Router Enhancements:

  • Modified routes to accept project arguments
  • Improved type safety and argument passing throughout

Open in Simulator Button:

  • Added a direct entry point to the simulator from the project edit view
  • Seamless flow between project editing and simulation

Pull Request: Project re-editing feature #409

Video of working

Collaboration Update:

This feature was a team effort! Aboo, Hardik, and I had a meeting to discuss the implementation, ensuring everything aligned with the project's vision.

This improves both the developer experience and the usability for users working with projects interactively.

Beyond GSoC: Life Updates

While GSoC has kept me busy with coding, other areas of life have been equally active:

  • Academic Commitments: College has resumed with full schedules, creating an interesting challenge balancing coursework with GSoC responsibilities.

  • Career Development: I have an upcoming external panel interview for a grant opportunity - your encouragement is appreciated!

  • Entrepreneurial Pursuits: I'm currently in the process of applying to Y Combinator, a long-term goal I'm excited to be pursuing.

  • Business Ventures: Alongside technical work, I'm gaining valuable experience co-running a digital marketing agency.

  • Technical Growth: I've been expanding my systems programming knowledge through learning ownership concepts in Rust.

Upcoming Focus Areas

Looking ahead to the next few weeks, my priorities will be:

  • Deployment Strategy: Finalizing plans for both Play Store and F-Droid distribution
  • UI Refinement: Identifying and resolving any remaining interface issues
  • Interaction Design: Planning micro-interactions and animations to enhance usability and also getting it reviewed, so that we can raise a PR
  • Multi-language Support: Discussion for adding more languages or say to choose which language to add next

Closing Thoughts

Week 8 represented significant progress in elevating our standards - from code quality improvements through linting upgrades to user experience enhancements in both the UI and simulator integration. Each of these refinements contributes to building a more robust and polished application.

I'm looking forward to sharing more updates as development continues!

Top comments (0)