Revitalizing Flutter with Flock

Engineering

Flutter

Open-source Community

Summary

This article introduces Flock, a community-centric fork of Flutter, designed to overcome limitations faced by Google's team. It focuses on enhancing developer responsiveness, prioritizing desktop support, and fostering open-source contributions. With its community, Flock aims to address the backlog of issues, expand review capabilities, and create a responsive environment that ensures Flutter’s sustainable growth as a cross-platform framework.

Key insights:
  • Flock’s Goal: Flock was created as a fork of Flutter to enable faster development, more responsive support, and greater community collaboration.

  • Developer Responsiveness: Flock expands the review process and empowers developers, addressing delays and extensive issue backlogs in the Flutter ecosystem.

  • Community-Centric Approach: Unlike Flutter, Flock minimizes bureaucratic hurdles, allowing a more agile and contributor-friendly workflow.

  • Enhanced Desktop Support: Flock prioritizes desktop platforms, filling a gap left as Google shifts Flutter’s focus toward AI initiatives.

  • Synchronized Development: Flock stays in sync with Flutter’s mainline updates while adding community-driven features and bug fixes.

  • Challenges Ahead: Flock must balance growth with quality control, community adoption, and resource management to prevent fragmentation.

  • Getting Involved: Developers can contribute through testing, code reviews, and project leadership, supporting Flock’s evolving framework and community.

Introduction

The need for more responsive development and community interaction has grown as the popularity of the flexible open-source UI framework Flutter has increased. Even while Google has over a million engineers as users, its Flutter team is still somewhat tiny, which causes major delays in responding to bug reports and feature requests. The community has responded to these issues by launching Flock, a specialized fork of Flutter designed to speed up development and promote a more cooperative atmosphere.

This insight will discuss the goals of Flock, how it affects the Flutter ecosystem, and how it seeks to improve developer collaboration. It will also guide developers on how to get started with Flock.

Forking Flutter: The Motivation Behind Flock

Flutter's emergence as a flexible, open-source UI framework was revolutionary; it supported web, Mac, Windows, and Linux in addition to mobile applications. However, the Flutter team experienced a significant labor imbalance as a result of its quick growth, which created issues that the community could assist with.

More than a million developers are utilizing the toolkit, demonstrating Flutter's impressive scale. With an estimated 50 developers, Google's Flutter team is still very tiny while serving a large worldwide user base. Due to the burden on Google's resources caused by the 1:20,000 developer-to-support ratio, feature requests and issues have been piling up for years. Additionally, desktop platform support in Flutter was deprioritized due to Google's strategic shift toward artificial intelligence (AI), leaving large gaps in a valuable area.

In order to fill in the gaps that Google's team is now unable to cover, the Flutter community needed greater control over the development timeline, improved responsiveness to bug reports, and a more inclusive contribution approach. This is why Flock–a separate fork of Flutter–was created. Flock intends to give the framework a more community-driven and agile approach by forking Flutter.

The Role of Community in Flock

Flock recognizes the enormous potential of the community, especially that of the estimated at least 1,000 developers with the skills and know-how to expand the basic framework. By decentralizing the review process, Flock promotes an open-source, collaborative atmosphere that welcomes contributions from developers of all experience levels. By removing obstacles and giving contributors more authority, Flock fosters a culture where developers can learn, engage, and quickly see their innovations included in the framework, resulting in a dynamic and adaptable ecosystem.

Challenges with Google’s Flutter Development Model

Google’s development model for Flutter faces structural and cultural limitations that are increasingly evident as the platform grows in scope and community demands expand:

1. Labor Shortages and Delays

Compared to its user base, the Flutter team is severely understaffed. This problem has only gotten worse due to Google's financial limitations, headcount limits, and corporate restructurings, which make it challenging to grow resources in accordance with community demands. With a core team of only about 50 people and an estimated 1,000,000 developers utilizing Flutter, each member of the Flutter team is in charge of meeting the demands of about 20,000 developers. It is impossible to reply to feature requests, criticism, or problem reports in a timely or comprehensive manner with this ratio.

2. Ticket Backlog and Delayed Issue Resolution

Due to the manpower shortage, there is a large backlog of tickets. Unresolved tickets frequently become out of date since they can sit in the queue for months or even years. Information on an issue may be lacking or irrelevant by the time it is evaluated, and the individual who first reported it may have moved on. This cycle makes it hard to fix problems quickly, which frustrates developers and occasionally prevents them from utilizing Flutter for important projects.

3. Reduced Focus on Desktop Support

Flutter's support for desktop platforms (Mac, Windows, and Linux) has been deprioritized as a result of Google's recent shift toward AI. These platforms are currently in maintenance mode as a result, lacking the ongoing development required to meet changing market demands. Flutter's usability as a universal development toolkit is limited by the stagnation of desktop support, which makes this decision challenging for businesses and developers seeking reliable cross-platform solutions.

4. Communication and Contribution Hurdles

Even though Flutter is an open-source platform, contributors may find the process to be cumbersome, tedious, and disheartening. Because of the strict submission standards and the limited time available to Flutter team members, review cycles are frequently lengthy. The labor deficit is made worse by these difficulties, which foster an atmosphere in which few developers regularly contribute. Furthermore, communication has a tendency to favor a particular style, which is not necessarily compatible with the varied experiences and backgrounds of contributors from across the world.

All of these issues have hindered Flutter's development and discouraged developers, particularly those looking for dependable desktop features. Businesses considering Flutter for cross-platform projects encounter ambiguity in areas where specific desktop enhancements or prompt support are essential. Therefore, without a more responsive structure or more resources to support its enlarged scope, Flutter will find it difficult to develop into a widely used toolkit due to Google's development approach.

Advantages of Flock Over Flutter

Flock offers several distinct advantages over Google’s current Flutter model:

1. Expanded Review Team 

Flock wants to create a strong, community-driven review mechanism in contrast to the existing team's restricted review capability. Flock can greatly accelerate the review process by enlisting a larger team of committed code reviewers from the Flutter community. This guarantees prompt response on modifications that are submitted, and it fosters a more welcoming and cooperative atmosphere, enabling contributors to witness the seamless and efficient integration of their work.

2. Community-Centric Contribution Process

A significant change from Flutter's current structure is shown by Flock's dedication to lowering bureaucratic barriers. Flock promotes more effective, contributor-friendly workflows by eliminating strict constraints like regular conference calls and required design documentation. This adaptability enables contributors to give development practicality top priority, facilitating quicker innovation without sacrificing quality. By emphasizing guidance for contributors rather than gatekeeping contributions, Flock's strategy promotes a constructive review process.

3. Flexible Issue Prioritization 

The team prioritizes pressing issues as they arise because of the team's practical production experience and the leadership of Flock's active involvement in Flutter development. Flock's methodology places a strong emphasis on adaptability to production-level, real-world requirements, especially for developers using Flutter for mission-critical applications. This increases the stability and dependability of Flock for business-critical projects by reducing the likelihood that problems impacting production settings will be postponed.

4. Constant Synchronization with Flutter

Flock is made to remain in sync with the main Flutter framework even while it adds its own special features and improvements. This implies that Flock users get access to more community-driven features, quick bug fixes, and Google's official upgrades and enhancements to Flutter. The user experience is continuously improved thanks to the combined benefits of receiving official Flutter updates and profiting from Flock's contributions.

Potential Challenges and Considerations

Despite its promising goals, Flock faces several challenges in ensuring long-term success and community trust:

1. Resource Management 

It takes a lot of work to run a fork of Flutter to keep up with its changing codebase and replicate its quick changes. This comprises the organizational commitment to oversee both short-term bug patches and the long-term development of Flock-specific additions, in addition to the engineering resources required to reproduce Flutter's basic functionality. Maintaining this level of work will require a large investment in administrative and technological infrastructure, including automated dependency management and synchronizing procedures.

2. Quality Control

Flock's trust depends on striking a balance between rigorous standards and expedited contribution evaluations. A strong, knowledgeable team of reviewers and leads that can oversee the codebase across several platforms will be needed for this. These professionals must uphold strict guidelines to make sure that fresh contributions satisfy the community's requirements for safe and dependable code. Flock strives to preserve the integrity of its structure while remaining open to a variety of contributors who have special knowledge and abilities by thoroughly screening contributions.

3. Community Adoption

Flock must gain a sizable following among developers and businesses that already use Flutter in order to be successful. This entails making steady, noticeable progress in areas that consumers care about the most, such as fixing persistent problems, adding new features, and creating a more responsive support environment. Gaining the trust of developers will be essential since they must perceive definite advantages and observable benefits when implementing Flock in their projects.

4. Risk of Fragmentation

The community could become divided as a result of forking Flutter, which could result in redundant work and diluted resources. Flock might find it challenging to adapt to any major architectural or strategic changes Google makes to Flutter, particularly if those changes add complexity that is hard for Flock to implement in real time. Unless deliberate steps are taken to promote collaboration and reduce duplication across the Flutter ecosystem, such fragmentation might limit Flock's effect and erode the community's overall support.

How to Get Involved with Flock

Flock’s success will depend on active community involvement. Developers can support Flock by:

Alpha Testing: To ensure cross-platform compatibility, community members are urged to test Flock in conjunction with Flutter to find and report inconsistencies.

Joining as Reviewers: To support code quality standards and promote contributor success, Flock is looking for seasoned Flutter developers to volunteer as reviewers.

Becoming Project Leads: To guide development in these crucial areas, Flock is seeking leads with specialized knowledge of platforms like desktop, iOS, and Android.

The Three Stages of Flock Development

Flock is designed to enhance functionality while addressing developers' needs through three key phases:

1. Phase 1: Mirroring the Framework

Making sure Flock stays current with Flutter's updates is the key goal of the first phase. This entails automating the master, beta, and stable branches of Flock's synchronization procedure. These branches are maintained by the Flutter team according to different schedules:

Master: Continuously updated.

Beta: Receives updates from master monthly.

Stable: Updated from beta every three months.

Flock will implement scripts to automate merging and apply Flutter's release tags to allow seamless updates.

2. Phase 2: Mirroring and Delivering the Engine

Flock will concentrate on the Flutter engine, which is made up of platform-specific components and C++ code, when the framework is synchronized. The engine is provided as pre-compiled binaries, in contrast to the framework. Flock will develop automated build scripts during this stage to upload binaries for user access and compile the engine on a regular basis. As a result, Flock users will receive timely updates without the need for manual intervention, improving the development experience.

3. Phase 3: Fixes and Extensions

In the last stage, Flock starts introducing new features and bug fixes in response to community requests. To provide a more responsive development environment, the Flock team will give priority to eliminating problems that impede businesses. During this stage, moderation is essential; the team will implement tactics to reduce disputes and stay in line with Flutter. Flock hopes to find high-value enhancements that improve the user experience and spur innovation by actively interacting with the community.

Getting Started with Flock (Flutter+): A Guide

Flock is a community-driven fork of Flutter that incorporates new features that the community has requested in addition to staying current with Flutter's core updates. This tutorial will show you how to utilize the Flutter Version Manager (FVM) to configure an existing Flutter project to use Flock. You will eventually be able to use Flock in your development environment, giving you access to its most recent upgrades and community-specific improvements.

1. Install Flutter Version Manager (FVM)

To handle Flutter versions on the local environment and enable to switch between Flutter and Flock as needed, Flock needs FVM. The official FVM documentation contains installation procedures that can be followed to install FVM.

2. Prepare for Flock Installation

If Flutter is installed in the master branch through FVM, some cleanup is necessary due to FVM’s method of identifying versions, any existing Flutter master installation should be deleted. Follow the following steps to delete the existing Flutter master installation:

  • Locate FVM cache directory.

  • Inside the cache directory, delete the subdirectory called master. This clears any conflicts and ensures a clean installation of Flock.

3. Configure FVM for Your Project

With FVM ready it is possible to set up your Flutter project to use Flock.

Select the Flutter Project: Choose the project where you want to use Flock.

Create a .fvmrc File: At the root of the project, create a new file named .fvmrc.

{
"flutter": "master",
"flutterUrl": "https://github.com/Flutter-Foundation/flutter.git"
}

This setup tells FVM to pull from the Flock repository rather than the official Flutter repository.

4. Install Flock

Next, install Flock using FVM in your project directory:

Open a Terminal in the Project Directory: Navigate to the project’s root directory in your terminal.

Run FVM Install Command: Enter the following command to check your Flutter version with FVM:

fvm flutter --version

Respond to Installation Prompt: There should be a prompt similar to:

Flutter SDK: Channel: Master is not installed.
? Would you like to install it now? (y/n) › yes

Type ‘yes’ to proceed with the installation. FVM will now download the Flock version of Flutter into your cache.

5. Verify Flock Installation

After installing Flock, verify the installation to ensure it is properly configured. Run the following command to check Flock’s version and repository details:

fvm flutter --version

  You should see an output similar to:

Flutter 3.27.0-1.0.pre.200  channel master https://github.com/Flutter-Foundation/flutter.git
Framework revision 452ef96537 (16 hours ago) 2024-10-22 12:37:14 +0000
Engine revision e6856502b5
Tools Dart 3.7.0 (build 3.7.0-47.0.dev) DevTools 2.40.1

The URL should point to https://github.com/Flutter-Foundation/flutter.git, confirming that Flock is now installed and active in the local environment.

6. Start Using Flock

Now that Flock is installed, you can run all standard Flutter commands through FVM, which will redirect them to Flock.

Examples of commands to use:

fvm flutter --version      # To check the current Flock version
fvm flutter pub get        # To get package dependencies
fvm flutter run            # To run the application
fvm flutter build <type>   # To build the project, e.g., 

Using FVM ensures that these commands apply specifically to Flock within the project. This enables access to the latest Flock updates and any new community-driven features.

After configuring the Flutter project to use Flock, the setup allows to access and experiment with Flock’s extended functionality and community enhancements, and staying up-to-date with Flutter’s mainline development. If any user encounters any issues along the way, the Flock team welcomes feedback, so it is encouraged to file an issue on their GitHub page to contribute to this evolving platform.

Engaging with the Community

To solve particular issues inside the Flutter ecosystem, Flock and its companion products, including Nest, were created. Companies that have experienced major changes or release obstacles are invited to share their experiences with the Flock team. Feedback is essential to determining Flock's future and making sure it successfully serves the needs of the community. For developers, it is possible to get in touch with Flock to work together to reduce these obstacles as Flock develops.

Conclusion

The Flutter framework's shortcomings, which result from an imbalance in Google's development team, are addressed by Flock. The backlog of problems and feature requests has increased along with the demand for Flutter, which has frustrated developers. By forking Flutter, Flock hopes to create a more agile environment by utilizing community contributions, improving bug responsiveness, and giving desktop support first priority.

Collaboration and active community involvement are essential to Flock's success. In order to bridge the gaps created by Google's strategy, Flock aims to synchronize with its upgrades and establish a mechanism for community-driven contributions. Flock empowers contributors and encourages active participation from the Flutter community through adaptable processes and an emphasis on real-world developer demands, guaranteeing that the framework develops to address present and future cross-platform development difficulties.

References

Flock. flutterfoundation.dev.

We’re Forking Flutter. This Is Why. flutterfoundation.dev/blog/posts/we-are-forking-flutter-this-is-why.

Other Insights

Got an app?

We build and deliver stunning mobile products that scale

Got an app?

We build and deliver stunning mobile products that scale

Got an app?

We build and deliver stunning mobile products that scale

Got an app?

We build and deliver stunning mobile products that scale

Got an app?

We build and deliver stunning mobile products that scale

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024

Our mission is to harness the power of technology to make this world a better place. We provide thoughtful software solutions and consultancy that enhance growth and productivity.

The Jacx Office: 16-120

2807 Jackson Ave

Queens NY 11101, United States

Book an onsite meeting or request a services?

© Walturn LLC • All Rights Reserved 2024