Flock is Forking Flutter

Issue #338.November 5, 2024.2 Minute read.
Bytes

Today’s issue: Cute hypertext baby names, huge Vite migrations, and voting for the Angular you want your children to inherit.

Welcome to a civic duty-fulfilling #338.


Eyeballs logo

The Main Thing

John Oliver holding up a big fork

If you can't join 'em, fork 'em

Flock is forking Flutter

No, that’s not the title of an obscure Dr. Seuss book – it’s a new project where a few prominent members of the Flutter community are forking the toolkit to create their own version called Flock.

Why are they doing this? The TLDR is that they want to contribute to Flutter directly, but they’re frustrated by how long it takes the Flutter team respond to issues, fix bugs, and review PRs from contributors.

But the underlying issues go back years earlier.

How we got here: Flutter was created at Google back in 2018 as a mobile UI toolkit built on top of the Dart programming language. It quickly gained popularity because it provided simple widgets for building cross-platform mobile apps that are natively compiled.

In 2019, Flutter started adding support for web, desktop, and embedded apps – and its momentum was building. Google execs started hyping Flutter as “the portable framework” that would allow developers to build UIs for any platform and help facilitate Google’s vision for ambient computing.

This culminated with the release of Flutter 3 in May 2022, which introduced stable support for macOS, Linux, and Windows – and massively increased Flutter’s scope.

But then, 2 big things happened:

  1. ChatGPT launched
  2. Interest rates went up

This caused Google, along with the rest of big tech, to shift its focus to the AI feeding frenzy and start cutting resources in other areas. Before long, layoffs hit the Flutter team and the pace of new releases slowed down – despite Flutter’s growing popularity and increased surface area.

That brings us to back to Flock, who says that their biggest reason for forking Flutter is to “expand Flutter’s available labor, and accelerate development.”

Yes, it would be easier for the Flock crew to simply contribute to Flutter directly. But as we mentioned earlier, they’ve apparently tried doing that for years, but have felt stonewalled by the Flutter team.

So instead, they’ve developed a three-part plan for creating what they describe as “Flutter+“:

  • Step 1: Mirror the framework
  • Step 2: Mirror and deliver the engine
  • Step 3: Steal the Declaration of Independence Ship bug fixes and popular new features

It sounds pretty easy when you put it that way 😅.

Bottom Line: It’s hard to believe that Flock will be able to create a more robust and stable version of Flutter than the full-time Flutter team at Google, despite its reduced headcount.

But you have to respect the Flock team for actually building something to solve their problems, instead of just complaining about it. And who knows, maybe this approach of “if you can’t join ‘em, fork ‘em” will eventually help move the Flutter ecosystem to a better place.


QA Wolf logo

Our Friends
(With Benefits)

NASA employees hugging and celebrating

When your team doesn’t have to wait 90 minutes to deploy anymore

Get 15-min QA cycles for all your dev teams

QA Wolf gets engineering teams to 80% automated end-to-end test coverage, and it helps them ship 5x faster by reducing QA cycles from hours to minutes.

That’s because they provide unlimited, parallel test runs on their infrastructure that gets you pass/fail results in 3 minutes.

Here’s how it works:

  • They build and automate tests for every single user flow and API in your application.

  • They spin up separate containers in their cloud infra to run thousands of tests in 100% parallel. Pass/fail results hit your GitHub repo, Slack, and CI pipeline in 3 minutes

  • They maintain and update all tests as your product changes, and they verify all bug reports – so you never see the flakes.

Schedule a demo to learn more – or read this quick case study on how they helped Drata speed up their QA cycles by 86%.


Pop Quiz logo

Pop Quiz

Sponsored by Datadog

They created this free ebook on How to diagram your cloud architecture, which outlines a framework of best practices from AWS solutions architects.

function calculateTotalCost(mealCost, taxRate = 0.1, tip = 0) {
  arguments[1] = 0.15;
  arguments[2] = arguments[2] + 5;

  let totalCost = mealCost + mealCost * taxRate + tip;
  return totalCost;
}

let total = calculateTotalCost(50, undefined, 10);
console.log(total);

Cool Bits logo

Cool Bits

  1. The Angular team is overhauling their style guide for the first time since 2016, and they’re asking for your feedback. So get out there and vote today for the Angular you want your children to inherit.

  2. Luis Ball wrote this step-by-step guide to using Shadcn UI without a Tailwind config file.

  3. Snyk is hosting a free virtual workshop on how to create a powerful security champions program for your team. It’ll cover strategies on identifying leaders, fostering collaboration, and driving security excellence. [sponsored]

  4. The Cloudflare blog wrote this quick primer on What is HTTP/3? Turns out, it’s more than just a super cute baby name.

  5. Sujay Jayakar wrote this in-depth article called A Map of Sync based on his 10+ years of work on sync at Dropbox and his recent work to extend Convex’s sync engine for better offline support. But besides that, I’m not really sure what his qualifications are.

  6. The Expression Statement blog wrote this article on how HTML Form Validation is heavily underused.

  7. Neon just announced that their free tier now comes with 10 free Postgres databases. And you get access to features like autoscaling and branching designed to help you ship faster – no credit card required. [sponsored]

  8. Jason Miller spoke at ViteConf about the lessons learned from migrating Shopify’s largest frontend codebase to Vite. Lesson #1: please stop calling it Feet Conf.

  9. Irvin Zhan wrote about how headless components became the future for building UI libraries.

  10. Alex Danilowicz and Teddy Ni created this Chrome extension that lets you convert a snippet from any website into a React component. I can’t wait to see the reaction video on YouTube about how this is going to take my job.


Pop Quiz logo

Pop Quiz: Answer

Sponsored by Datadog

The answer is 65. MDN explains “Non-strict functions that are passed rest, default, or destructured parameters will not sync new values assigned to parameters in the function body with the arguments object.”

If we remove the default parameters we get a different answer:

function calculateTotalCost(mealCost, taxRate, tip) {
  arguments[1] = 0.15;
  arguments[2] = arguments[2] + 5;

  let totalCost = mealCost + mealCost * taxRate + tip;
  return totalCost;
}

let total = calculateTotalCost(50, undefined, 10);
console.log(total);

The answer with no default params is 72.5 (50 + 7.5 + 15).