Flutter for Web Development in 2022
Stability and maturity
Flutter for web development might not be as mature as Flutter for mobile, it’s good for web development and stable commercially. Flutter web support reached a stable level in March 2021.
Performance
During first app use, there can be some lagging because the app has to be cached. After that, the application loads from the cache and works fast. Final app performance depends on code quality and the size of the application.
What Web Products Can You Build with Flutter
Progressive web apps (PWAs)
PWAs are similar to desktop and native applications. They are lightweight, responsive, and they also behave like ordinary websites. PWAs also work offline and can be installed independently of mobile app aggregators such as Play Store or App Store.
Single page apps (SPAs)
SPAs are a type of a web application that loads one web document that is dynamically updated — websites normally load new pages as the user navigates through them. Because of fast data rendering times, SPAs work well for content-driven products.
Benefits of Flutter Web Development
Better team management
The biggest benefit of Flutter web development is sharing the code between mobile, web, and desktop apps.
For example, instead of having two separate teams for native iOS and Android and then a third team for the web project, you have only one team who works on the product for all three platforms.
For example, consider meetings where there’s just one team. Processes project immersion, knowledge sharing and transfer. There’s almost instant intelligence on how difficult it is to implement a feature from the backlog on a specific platform.
Greater in-house development capabilities
Because the code is reused for the web application, mobile developers can easily build for the web. In short, teams with no web development knowledge can still use their mobile app development experience to write websites using code from the mobile product. With the help of designers who ensure the web app view is user-centered, developers can more effectively, which equals better resource utilization.
Access to essentially the same widgets that are available for Flutter for mobile.
A large number of popular Flutter libraries available
While around 60% of packages come with web support, they include those most important ones for building stable and responsive web apps in Flutter.
Extensive customization options
A web app built in Flutter can share the code with its iOS and Android versions, but you can customize the web app to maximize the user experience per each platform.
Enabling accessibility focus
Users increasingly expect for web apps to be accessible. Neglecting product accessibility in products can lead to lawsuits. In fact, 2021 saw a record of 11,400 lawsuits under Title III of the Americans with Disabilities Act (ADA).
Flutter for web allows developers to create lightweight and fast code that helps build accessible web apps — an increasing requirement for government sites. Flutter’s documentation covers available accessibility features in great detail.
Drawbacks of Flutter for Web
Fewer libraries and smaller community
While Flutter’s mobile library ecosystem is vast with a great and helpful community, there are much fewer web app development libraries available. It means some of the libraries have to be adjusted to work on the web or even written from scratch.
The same goes for the community. The smaller the community, the less likely it is to find solutions to edge-case problems. But libraries and community are growing, and we can expect for both to be more reliable in the future.
For mobile there are multiple wrappers, plugins, but web Flutter is relatively poor (for now, of course). So for more complex projects (more on that later) there’s still some custom writing to be done.
Here’s a filtered list of plugins with web support for Flutter on an official pub.dev site. As of November 2022 there are 16,043 packages with web support for Flutter, against 27,781 packages in total.
Code regress risks
Regress — if one feature doesn’t work on Android you can change code, but you have to test how the change affected other platforms (web, iOS), this might require two separate code fragments responsible for the feature to ensure it works properly.
Underperforming search engine optimization — SEO
Because you’re building a web app, not a website, with Flutter, there are limitations in how much SEO you can maintain to ensure traffic to the product. But if you don’t rely on SEO for traffic, because, for example, the product will be an internal application for employees, then that shouldn’t bother you.
So your main company page with home page, services, or blog can be built using common HTML and JavaScript technologies to ensure the SEO aspect for marketing and reach purposes are met.
Little ability to customize
No ability to modify generated HTML, CSS, and JavaScript code.
Considerations for Developing Web Apps in Flutter
Screen size differences and data rendering
The first thing to keep in mind when developing a web app in Flutter is screen size differences in UI for desktop vs. mobile.
A desktop website can show lots of content easily and keep the layout clean without clutter. Showing the same amount of data on a mobile device would result in a terrible user experience. So mobile design needs to adjust the same representation and rendering of data into a smaller screen.
Also, because the web app can take in more data, it can render them more slowly than the data viewed on a mobile device. That means not everything should be rendered all at once because it slows down the page. There should be filters and lists that are scrolled separately revealing content only when visible for the user.
Data presentation to maintain familiarity
Considerations for how much data can be on the desktop vs how much can easily fit onto a mobile. To avoid discrepancy between the two user experiences — deviation from the familiarity of the product. Also, consider the roles for the two products, website vs app. For example, a website as a viewer of data vs. an app as a feature-driven product for accomplishing specific tasks.
Browser support for target audience
Flutter-made web apps won’t work on every browser, so you have to consider the browsers of your target audience.
That said, Chrome and Edge are the default browsers for Flutter web and app debugging. But browsers with official support where you can run web apps built in Flutter include (these are both desktop and mobile browser versions):
- Chrome
- Safari
- Edge
- Firefox
Recommended Use Cases for Flutter Web Development
Flutter is a robust cross-platform framework for building high performance apps — but the cross-platform part is key to its recommended use cases. If you’re considering choosing Flutter only for a web app, it’s not the best choice. There are much better frameworks and programming languages out there for web development.
That said, Flutter for web makes sense when it’s looked at from the perspective of a multi-platform product. Because so much of the code can be reused, it’s simply very time- and cost-efficient to branch out from one code base to another using Flutter components.
If you look at Flutter as a technical investment to ensure a product can be scaled and extended to more platforms in the future, then it’s the best use case for Flutter web development.
What’s Missing and What Can Be Improved in Flutter Web?
Poor SEO
The lack of SEO can be a big drawback for some products in terms of marketing and getting customers.
More SDK support
Many SDKs could have web support to help build better cross-platform products.
First app use performance
App performance during first app use could be improved to increase user experience.
Pick Flutter for Web App Development to Reach More Users
Although Flutter for web development is not mature enough compared to Flutter for mobile development, the technology lets companies create highly efficient teams that are small in size but can deliver much more.
Related articles
Supporting companies in becoming category leaders. We deliver full-cycle solutions for businesses of all sizes.