With the public release of their 2023 Strategy Document, Google has outlined their goals for the platform, and here at Foresight Mobile we eagerly anticipate the advancements and innovations that Flutter will bring to the world of app development over the coming year. In this article we aim to summarise some of the key points of the Strategy Document and how this affects our own approach for our customers going forward.
Foresight Mobile, the most experienced Flutter agency in the UK, is excited to embrace the future of Flutter. With our end-to-end app development expertise and dedication to producing high-quality cross-platform solutions, Foresight Mobile has cemented its position at the forefront of the UK's mobile app development industry. By utilising the Flutter framework, the team at Foresight Mobile can efficiently create beautiful and robust native experiences for iOS, Android, and the Web from a single codebase.
The North Star objective of the Flutter team in 2023 is to expand the number of active users (that’s developers to us). Their focus is on delivering an exceptional developer experience, which plays a crucial role in attracting and retaining users. They concentrate on six key sub-areas: performance, interoperability, portability, ecosystem, security, and fundamentals, with the goal of making Flutter the most popular, highest-quality, and highest-productivity UI toolkit for developers.
Performance has been one of the largest perceived hurdles for Flutter adoption, as users often express concerns about potential performance trade-offs associated with cross-platform frameworks. However, the Flutter team has been actively working to overcome these challenges and provide an exceptional experience that rivals native app development.
The work on Impeller has led to significant improvements in rendering performance for mobile platforms, resulting in much smoother and more fluid experiences. The Wondrous project is another example of the Flutter team's commitment to enhancing performance across the board. These efforts have already produced great results, and the team continues to invest in further optimizations to ensure that Flutter apps run smoothly on all supported platforms.
Regarding the web, the primary focus of the Flutter team is on targeting WebAssembly (Wasm). Wasm is a compact binary format that allows code to run at near-native speed on the web. By supporting Wasm, the Flutter team aims to bring massive improvements to both the startup performance and runtime performance of Flutter apps on the web. This will enable developers to create web applications with Flutter that offer an even more seamless and responsive user experience.
Interoperability improvements in Flutter aim to make it easier for developers to integrate their apps with native platforms such as Android, iOS, and the web. By enhancing interoperability, the Flutter team seeks to reduce the friction involved in working with existing systems, platforms, and libraries, allowing developers to create seamless and high-quality applications that function smoothly across different environments. This interoperability was key to delivering the SeeChange IoT project on Flutter to Arm.
For Android, the Flutter team is working on making it easier for apps to integrate seamlessly with the underlying operating system. This includes reducing the costs of calling Jetpack libraries, minimising memory buffer copies, and simplifying the process of embedding Flutter into existing Android projects.
For iOS, the team aims to improve their ability to stay up to date with the latest iOS releases, including updates to the Cupertino widget set, modernising the package ecosystem to use Swift Package Manager, and enhancing performance. They are also working on improving interop with Swift and Objective-C code through FFI.
FFI has played a key role in helping Foresight deliver great value in SDK and integration projects for key customers such as Bandwidth and Flagsmith.
On the web, the Flutter team is addressing the 'uncanny valley' syndrome, where developers notice differences between Flutter and DOM-based content. They plan to support embedding Flutter into existing web projects through technologies like Web Components, modernize JavaScript interop libraries, and continue working on supporting Wasm, Web Workers, and WebGPU for a more cohesive web experience.
These interoperability improvements are shared across multiple parts of the project, including the Dart language, runtimes, libraries, the Flutter engine, the Flutter framework itself, and the package ecosystem.
Targeting the Web so easily is one of the core reasons we use Flutter here at Foresight, and has been key to the success of some of our multi-platform projects such as Ryze, where users are able to switch seamlessly between desktop and mobile.
Portability is a critical factor in the success of Flutter, as it enables developers to create applications that run efficiently across various platforms and devices. By offering support for multiple processor architectures and targeting emerging technologies such as WebAssembly (Wasm), the Flutter team will ensure that their framework remains versatile and adaptable, catering to the diverse needs of developers and users alike.
Support for different processor architectures is essential because it allows Flutter apps to run smoothly on a wide range of devices, from smartphones and tablets to desktop computers and embedded systems. As the technology landscape evolves, new processor architectures, such as ARM for desktop-class operating systems and RISC-V for embedded scenarios, are gaining prominence. The Flutter team's commitment to supporting these architectures ensures that developers can continue to create high-performance, cross-platform applications that meet the needs of a growing user base.
WebAssembly, in particular, holds significant potential for the future of web development, as it allows code to run at near-native speeds on the web. By targeting Wasm, the Flutter team aims to bring substantial improvements to the startup and runtime performance of Flutter apps on the web. This will enable developers to create web applications with Flutter that offer a more seamless and responsive user experience, rivalling traditional web development approaches.
A key advancement in WebAssembly is its support for garbage collected languages through WasmGC. This feature will enable languages like Dart, which rely on garbage collection, to run more efficiently within the WebAssembly environment. By embracing WasmGC, the Flutter team further enhances the performance and compatibility of Flutter apps on the web, making it an even more attractive choice for developers building cross-platform applications.
The ecosystem surrounding Flutter is vital to the platform's success, as it provides developers with a comprehensive set of tools, libraries, and resources that support and enhance the development process. A thriving ecosystem attracts a diverse community of developers, fostering collaboration and innovation, while creating a robust foundation for building high-quality, cross-platform applications.
By nurturing this ecosystem, the Flutter team ensures that the platform remains a compelling choice for developers, driving adoption and solidifying Flutter's position as a leading solution in the app development landscape.
Security is a growing concern for Foresight Mobile and the Flutter team alike as they are aware of the increasing risks and sophisticated actors probing for vulnerabilities in software ecosystems. Recognizing the importance of safeguarding their platform and its users, the Flutter team has prioritised improving the robustness of Flutter in various ways.
In 2023, the Flutter team plans to enhance the security of their build system by enabling code signing for all public releases and implementing reproducible builds. They aim to track their progress by measuring compliance with SLSA-4 standards. Additionally, the team is working on tooling to support developers in building secure applications, such as providing provenance attestations and a structured approach to documenting vulnerabilities in packages.
Furthermore, the Flutter team is committed to increasing trust and confidence in their open-source projects by addressing concerns regarding the analytics data they collect. They plan to unify and clarify their instrumentation across Flutter and Dart, making it more transparent about the collected data and publishing anonymized, aggregated data for the community. This approach aims to strengthen the security and trustworthiness of the Flutter platform for its users.
The Flutter team acknowledges the importance of maintaining a strong foundation for their platform and is committed to addressing the fundamental considerations that contribute to its success. These key areas include documentation, engineering velocity, UI fidelity, addressing technical debt, and responding to customer issues.
For documentation, the team recognizes the need to consolidate and enhance their content. They plan to refine existing materials, add more samples, and invest in platforms like dartdoc to increase their velocity.
Engineering velocity is crucial for the team to deliver features and improvements at a consistent pace. The Flutter team aims to optimise their processes and tooling to ensure they can address the evolving needs of the platform and its users.
UI fidelity is another fundamental aspect that the team plans to focus on. They will continue to refine and polish the UI components to provide a high-quality, consistent user experience across various platforms.
Addressing technical debt is essential for maintaining the stability and performance of the platform. The Flutter team is committed to identifying and resolving areas of technical debt, ensuring the platform remains robust and scalable.
Lastly, the team acknowledges the growing issue backlog and the need to respond to customer issues effectively. They plan to invest more resources in addressing reported bugs and resolving outstanding issues, demonstrating their commitment to customer satisfaction. By improving their responsiveness, the Flutter team aims to maintain trust and confidence in their platform, ensuring it remains a popular choice for developers and users alike.
At Foresight Mobile, we're beyond excited about the new possibilities for Flutter in 2023. We believe that the upcoming advancements in performance, interoperability, portability, ecosystem, security, and fundamentals will significantly enhance the way we develop and deliver outstanding products for our customers.
As a full-service development agency, we're eager to leverage these improvements to create even more engaging, robust, and secure solutions across mobile and the web.
We're also thrilled about the growing ecosystem around Flutter, as it includes new partnerships, design tools, and low-code development options. This will help us deliver cutting-edge solutions while reducing development time and costs where appropriate.
Lastly, the focus on security will ensure that the apps we develop for our customers are protected and trustworthy. We're committed to building on the enhanced security measures provided by Flutter to deliver safe and reliable experiences for users.
In summary, we at Foresight Mobile are looking forward to the new possibilities that Flutter brings in 2023. We're eager to leverage these improvements to create exceptional experiences for our customers and continue to push the boundaries of what's possible in mobile and web development.