How stable is the current version of Flutter Web - flutter

I'm wondering how stable the current version is for Flutter Web?
It looks like the authentications works well. But what about the Real-Time database & Firestore? Are you able to use these in the latest release? I would like to know if the current version works well with:
SVG's
Responsive enough?
Firestore possible?
Real-Time database supported? And do they use the same packages as the mobile version?
Multiple browsers compatible
Functions, are there CORS policy issues?
Uploading files

You can definitely use firestore, just like you would with apps. But as far as overall stability of web, I would say its not fully stable or else it wouldn't be in the "stable" channel instead of "beta".
It is capable of doing most of the things that you can do on a mobile device within the app. The things that aren't fully stable yet are the web specific things. It is already responsive, and firestore and real time database work fine. It should be compatible on all browsers (but i haven't test that). I'm not sure what you mean by uploading files, but if you mean to some database then that should be no problem either.
I think for now, if you're just trying to set up a simple website it should be good enough for that, but if you want to do something more complex, I would wait until it is in the "stable" channel.

Related

Migrating from Xamarin to Flutter and Firebase

So we have an application in production running on both Apple store and Google Play store. We originally built it on Xamarin and hope to port it to a newer infrastructure. We looked at some avenues such as Ionic + Angular with a backend to MongoDB Realm. Our biggest concern for frontend capabilities have been offline data support, image editor, and barcode scanning. We are hoping to go to a Progressive Web App this time and not have to deal with the stores. In our recent research, we found Camera and Permission API's on browsers is lacking, especially iOS (Steve would be upset if he was alive). Recently we noticed Flutter is growing fast and web support is getting better, though their camera API's for iOS and some Androids still have issues. Ionic's camera support is not perfect but seems to be solid compared to Flutter. Anyone else having issues with camera API support (especially Flutter)? We would like to have a stable camera/permissions on the web if possible but we feel the timing may not be right. Would like to hear others and their thoughts and thank you for your time!

FLUTTER WEB: How can we have a single codebase for the Flutter app & Web?

We have a single codebase for Android & iOS in Flutter.
We tried to use the same codebase for Web in Flutter too, but it hadn't gone well.
As of some libraries/plugins, currently unsupported by Flutter SDK.
To mitigate these issues, we are maintaining two separate repositories, one for Android-iOS and other for Web.
Also, to add up here, for separate repositories because each Flutter product has a unique pubspec.yaml file. Now there are a few plugins that are currently supported in App but Not yet on Flutter Web, namely Awesome Notifications, Clevertap plugin, etc.
Integrating those plugins on the web, stops the web to run. So keeping the same codebase for both is getting technically complicated as the app has many many functions.
It takes so much time in simultaneously testing, debugging and resolving issues in Web.
So, how we can maintain same code for all platforms i.e., Android, iOS & Web, without doing it in other repository for Web and gaining advantage in streamlining our codebase into one for all platforms?
For Ex. If I commented the package awesome_notifications for Web in pubspec file, the issue arises (as shown in the screenshot) in code wherever we used its functionalities.
For successfully working on both Mobile & Web, are there any methods available we can use packages for both (Mobile & Web)?
Ideally you’d want to use a single codebase to host both the web and mobile versions, to minimise code maintenance and improve efficiency. To do this, you’ll need to be able to find the platform the code is running on, so that code can be called programmatically.
You can use the constant kIsWeb to check if the application is compiled for the web, and you can then use that condition to only run platform-specific code (such as the awesome_notifications package) if you’re on a platform that supports it. That way you’ll still be able to import the required packages, but only call them when the app is running on the mobile version of your app.
That should allow you to condense your codebase into one repository without sacrificing any functionality that may not work across all platforms.

How to do Remote Updates On Flutter

I have a flutter chat app. Companies like Whatsapp & Facebook update their app without forcing users to uninstall or manually uploading the APK again to google play. Is this possible with futter i tried using firebase remote config but it didn't work as i expected ( Changing UI on the go ). Any answer will be appreciated.
WhatsApp and Facebook use React Native with CodePush (if I'm not wrong).
You can't update an app without forcing a user somehow to update the app from a store with Flutter as it compiles to binary and React Native – not
There are multiple things you can do and it is based on what you want to achieve. [From your question your goal is not clear.]
Change Something based on configuration.
If you have configurations defined then you can use Firebase remote config to pass on value to devices and devices should behave according to value that you have set on Firebase Remote config.
Limitation of this approach:
In this approach, don't expect your newly updated code will into existing app. Above approach works, if code is already there in the compiled binary and you just want to switch path.
Binary version update:
If you want to force new app version download then it would require a different approach,
Android: Yes it is possible.
iOS: In-App update is not possible. You can show prompt to user by saying that new version is available and redirect user to new version on Store.
If user has enabled auto-download in iPhone settings then there are chances that app version updated to new version when user come to app.
For implementation look at here: Binary version update
Flutter now has unofficial support for code push using Chimera Flutter Code Push.
Here is a full tutorial

Is there a downside for using flutter packages?

Does using many packages in one app effect performance or bundle size?
I’m mostly familiar with web and trying to understand more about how it is when it comes to mobile apps.
As long as you are using good healthy packages (like from Google/Dart team and other well maintained packages), there isn't anything you need to worry about.
There is no significant performance issue you'd notice when using more and more packages but yes the size of your app will definitely increase.
You can find the health of package on pub.dev

How do I check my app's version-number on Google Playstore when coding in Flutter?

I want to know if there is a method or library to use in checking my app's version-number on Google PlayStore? Want to advise users to update to the latest version if their apk's version number is behind
There is no official API at the moment. And using the solutions you find on the web are bad. Most of them involve scraping the Play Store website and will break whenever the Play store re-designs their web page.
Right now I would recommend using Firebase Remote Config. That way you can store in the Firebase server whatever you want the minimum version for your app to be, and them when you want users to update you can increase the value. This lets you control when you need to force an update and is much more flexible, and very easy to update.