googleads / googleads-mobile-flutter

A Flutter plugin for the Google Mobile Ads SDK
Apache License 2.0
333 stars 268 forks source link

Android inline ad performance #269

Closed jjliu15 closed 2 years ago

jjliu15 commented 3 years ago

There have been a number of complaints about performance of inline banner and native ads on Android:

As mentioned in https://github.com/googleads/googleads-mobile-flutter/issues/80#issuecomment-803621668, performance is noticeably worse on Android 9 and below. This is related to use of hybrid composition, which is a requirement due to technical constraints.

Currentworkarounds are to constrict inline ads to android 10 and above, or only to only use fixed position banner/native ads.

bdlukaa commented 2 years ago

@rocketman7 VirtualDisplay (which my package uses) is no longer the recommended to be used. See https://github.com/flutter/flutter/wiki/Android-Platform-Views. Specially https://github.com/flutter/flutter/wiki/Android-Platform-Views#touch-events

We detect whether or not the touch from the user should collide with the AndroidView Flutter widget using hit testing logic within the Flutter Framework. When the touch is a hit, we dispatch a message to the Android engine embedding containing the details of the touch event. Within the Android embedding, we convert the coordinates of this event from the ones describing the touch inside of the larger Flutter texture to ones that would match the real Android View inside of its VirtualDisplay. We then create a new MotionEvent describing the touch and forward it to the real Android View inside of its VirtualDisplay.

Which isn't allowed by admob

svprdga commented 2 years ago

If this problem hasn't been fixed by now I don't think it's because of lack of will, but rather because it's simply not possible.

You guys complain everyday here with the admob team when you guys should be complaining with the Flutter Team itself. There are several open issues about platform-views (sort by thumbs up):

True, it seems that Flutter has reached its limit. Let everyone make their own decisions, but obviously that limit is well below market standards.

On the other hand, the silence and opacity of the maintainers only aggravates the problem. It is all right to say:

We don't know how to fix this issue.

And of course this should be the first line of the README.md, so that everyone whose income depends on advertising in their applications knows the quality of the library they intend to use.

bdlukaa commented 2 years ago

I agree. Well, it's possible to fix this issue, but it'd depend on the whole team on it. I'd love to contribute on fixing this platform-view thing, native interoperability and other plugins as well, if the correct guidance was given. This is not the only one that is bad because of platform views and textures: webview_flutter, camera, google_maps_flutter.

See https://github.com/flutter/flutter/projects?query=is%3Aopen+platform+view

Seems the Flutter Team has other priorities, such as stable desktop support and continue improving the web platform

longnguyen0410 commented 2 years ago

@svprdga there are reasons the team already explained why they are using now PlatformViewLink instead of AndroidView. In my app I am using my fork on the branch feature/suamusica. I Always keep it updated with current master of the plugin so you can use without worries.

The real Upgrade here would be to have a 100% Dart solution that would not involve platform views. I Already sent here an example using the "Tagless request" from GAM Docs but it has massive Unsupported features as I noted here: #269 (comment)

It can only be doable if the team work with GAM because the current solution does not work for majority of us that need AdX,ActiveView, Dynamic Allocation etc..

Again if we were able to request directly from Dart, i would gladly help to code the plugin as needed.

@atrope I found an issue when using feature/suamusica. If I set useHybridComposition: false, the banner ads are still sending ad requests when app in background.

Screen Shot 2021-12-26 at 19 11 48

It does not happen when I set useHybridComposition: true or use google_mobile_ads official.

atrope commented 2 years ago

@longnguyen0410 maybe that's an issue with Virtual views. The only thing it does is use virtual. Anyway I will take a look

davidgalarza commented 2 years ago

Any update?? I am starting to go crazy thinking that I have to migrate my entire application to another technology just because there is no ad solution worthy of being put into production of an ad plugin.

rocketman7 commented 2 years ago

Any update?? I am starting to go crazy thinking that I have to migrate my entire application to another technology just because there is no ad solution worthy of being put into production of an ad plugin.

Oh, you better give it up. Those who are so freaking busy with their life that there's no willing to do with this stupid package are called "collaborator". @jjliu15 @blasten @maheshmnj Shame on you for not communicating at all guys. This new tech and framework is all about communication and feedbacks, but you guys made it so freaking worthless. I'm pretty sure that no one is in charge of this important package. So be it. Just move to 'native_admob_fllutter'.

medst commented 2 years ago

moving to react native

erperejildo commented 2 years ago

moving to react native

moving to react native because of this? It doesn't make sense. Just use a different ad package

3eif commented 2 years ago

moving to react native

moving to react native because of this? It doesn't make sense. Just use a different ad package

There is no other package. They all use the same implementation and have numerous bugs and performance issues. I've went through like 4 different flutter ad packages and all of them had issues.

atrope commented 2 years ago

They All must use Native Views because the Google ad team does not provide an Open Api for request ads.

Any implementation from anyone must use their SDK.

The only thing we can do is a Tagless request but it comes with lots of drawbacks as I stated here https://github.com/googleads/googleads-mobile-flutter/issues/269#issuecomment-887557271

What we need is for the ads team to release some way that we can request ads without native SDKs or for them to acknowledge the issue and inform us that they do not plan to release such thing.

This would at least let us know how to proceed.

bdlukaa commented 2 years ago

What we need is for the ads team to release some way that we can request ads without native SDKs or for them to acknowledge the issue and inform us that they do not plan to release such thing.

They can't do this because other systems would be able to request and manipulate clicks, I assume. They have to make their sdks restricted for android and ios only. The solution would be to actually have a good way to implement native views in flutter. It'd solve most of the issues of this and others packages.

It'd let us implement google and facebook ads, google maps, webview, and so on...

mkassan commented 2 years ago

Hello, I have faced same performance issues and so, opened this request #297.

I have tried this proposition:

import 'package:flutter/services.dart'; 
void main() { 
    PlatformViewsService.synchronizeToNativeViewHierarchy(false); 
    runApp(MyApp()); 
}

Pros:

Cons:

Proposition: Can we upvote this comment / issue to try to catch an official answer and plan?

Thank you

rocketman7 commented 2 years ago

Hello, I have faced same performance issues and so, opened this request #297.

I have tried this proposition:

import 'package:flutter/services.dart'; 
void main() { 
    PlatformViewsService.synchronizeToNativeViewHierarchy(false); 
    runApp(MyApp()); 
}

Pros:

  • better performance

Cons:

  • always a bad performance
  • lagging during scolls
  • Flutter views and Native ads are not moving with the same speed in the list

Proposition: Can we upvote this comment / issue to try to catch an official answer and plan?

Thank you

What you mean 'better performance' while you wrote down 'always a bad performance' in a Cons list?

naamapps commented 2 years ago

Really sad the team is not active and just ignore our concerns. Should have chosen react native :(

rocketman7 commented 2 years ago

Really sad the team is not active and just ignore our concerns.

Should have chosen react native :(

Yeah, cuz they are all freaking amateurs with no reponsibility at all. They are doing this only to add to some fancy portfolio for their job seeking. You can get rapid reply when you post a new issue with this. They will say you should not post same issue when this is undergoing. But what? This is not bloody undergoing. It is so freaking ignored.

svprdga commented 2 years ago

Yeah, cuz they are all freaking amateurs with no reponsibility at all. They are doing this only to add to some fancy portfolio for their job seeking.

I can't agree more with you, only reading the proposed "workaround" in the first message:

Currentworkarounds are to constrict inline ads to android 10 and above

Demonstrates how little understanding they have about how business works, I would gladly do it if they compensate me for the revenue loss; we don't put ads in our apps because we like them or because the users like them, we put them because we need money to pay the bills at the end of the month.

jjliu15 commented 2 years ago

Thank you for raising concerns on the performance issues of inline ads on android < 10. In the initial design, we have considered using the "Virtual Display" approach, which was suggested by several responses in this thread. Unfortunately, this implementation does not comply with our security policy, hence we proceeded with the alternative approach "hybrid composition". We understand that "hybrid composition" has some performance impact on devices <Android 10, but we think it is in developers' best interest for the Flutter team to provide official Ads support for Android 10+ rather than no support at all. The performance limitation is only on inline ads <Android 10, we recommend you using different Ads formats if your main targeted devices are <Android 10.

We're continuously working on improving the performance. For example, you can try to set PlatformViewsService.synchronizeToNativeViewHierarchy(false) while using anchored Ads. If anyone has other ideas, we are open to all of them.

Meanwhile, I would like to remind everyone of Flutter's code of conduct for discussion in our open-source community. Thanks for your understanding and support.

atrope commented 2 years ago

@jjliu15 while I agree that performance on Android 9- is more affected than 10+, the performance on Android 10+ is also far (really far!) from ideal.

I also agree that some answers here should and must not been written as they were with foul language and not adding to discussion, only cursing the tea. This is a shame and was done by one or two users here, most of us are trying to understand what the team can and would like to support.

That said, I cannot (and don't want to) believe that this is the official response from the ads team and even more, closing this issue and not adding at all to the discussion or any of the community doubts.

Some things that i would like to note..

Please let us know what are the team intentions for the future and if the official recommendation is the one you wrote, add it to the readme and to pub.dev.

blasten commented 2 years ago

Hi @atrope, and everyone

Could you send us an approximation of your app (as close as possible) to study the performance of platform views more closely? I have been looking at different ways to improve performance https://github.com/flutter/engine/pull/28944/files

Email: flutter-android@google.com

rocketman7 commented 2 years ago

@jjliu15 The most irresponsible answer I've ever seen. A lot of comments are saying (it's been almost half year!) that it's not about Android <10, but for the whole Android and iOS app! You seem to just ignore all the comments saying and repeat the wrong answer. Your behavior is also beyond code of conduct if you are really in charge of this. A mockingbird can repeat meaningless answers all day. See the thumbs down only in 2 hours you posted this stupid answer. You can't see what's the real problem huh?

@blasten As a developer, we do not update our app with performance issues. It's all seen as we were developing and testing. It can simply be reproduced as below:

naamapps commented 2 years ago

@jjliu15 Not only you closed this issue, but also gave a really bad answer that shows that you don't care at all about the developers and the business we are trying to make using Flutter. Saying to only use ads in Android 10 and above is not an option, this demographic is huge in terms of numbers. At least show some respect and give an answer like you actually care, because you just ignored everything we said, and you wrote exactly the same thing you wrote 6 months ago.

I expect from the team to know our pain points and act based on them, and not just make a package that looks good to the eyes.

So please, open this issue again, be clear about your intentions for the future, what are you doing to make this better?, where can we see progress?, is there a roadmap somewhere?

Thanks and have a great day.

rocketman7 commented 2 years ago

@jjliu15 Not only you closed this issue, but also gave a really bad answer that shows that you don't care at all about the developers and the business we are trying to make using Flutter. Saying to only use ads in Android 10 and above is not an option, this demographic is huge in terms of numbers. At least show some respect and give an answer like you actually care, because you just ignored everything we said, and you wrote exactly the same thing you wrote 6 months ago.

I expect from the team to know our pain points and act based on them, and not just make a package that looks good to the eyes.

So please, open this issue again, be clear about your intentions for the future, what are you doing to make this better?, where can we see progress?, is there a roadmap somewhere?

Thanks and have a great day.

I am 100% sure that the most irresponsible person (I mean, @jjliu15) never listen and never ever re-open this issue. He/She so eager to close this issue and saying same sh** just like 6 months ago as if he is a mockingbird. The problem is, in this thread people have said that it's not about android version and it's not about OS as well. The performance issue occurs on ALL DEVICES AND ALL OS VERSION. He finally showed up and said meaningless word and just warn angry people that we should keep the code of conduct. Is it some kind of new series of SNL that I never heard of?

@blasten I wanna ask to you, who is the hell in charge of this package and who is the leader? What is that hell of human @jjliu15 is doing and making people angry here in the community?

svprdga commented 2 years ago

Thank you for your response @jjliu15 , that's all we wanted: an answer.

Now let each one choose if they want to continue with Flutter taking into account this enormous disadvantage.

maheshj01 commented 2 years ago

@rocketman7 You are violating the code of conduct, by being disrespectful and posting offensive comments. This behavior isn't adding any value to the discussion. If you have any solution you are welcome to suggest or contribute.

rocketman7 commented 2 years ago

@rocketman7 By being disrespectful and offensive in the comments, you are not adding any value to the discussion. If you have any solution you are welcome to suggest or contribute.

@maheshmnj @jjliu15 Look how long your team has ignored and not answered to this enormous thread. I don't have a solution. I'm the one who ask solution. Your team is to have solution or at least plan. And you ought to communicate with us here in thread.

All I want your team is to communicate in a proper frequency with proper answer. Do you really think @jjliu15 's recent answer is proper? Why do you think so many people are angry here. No, I do not respect your team. Sorry for offensive comments. But again, I do not respect your irresponsible team and your whole team's neglect and silence. It has been silent and no one get ANY RESPONSE for several months. @jjliu15 finally came back(when was the last his answer though??) and said same thing like 6 months ago. Even more, the answer does not include any solution or plan. For 6 months, here people have said that it's not about version, neither about OS nor device, but for whole Flutter app! It occurs every app! Is it too difficult to understand? And you're saying that I am not disrespectful? Seriously, who is being disrespectful to Flutter framework and this whole Flutter development environment? See the timeline of this thread. Is being respectful just 'shut the mouth and wait endless, but say politely'? Anyway, I agree that I sometimes crossed the line so apology for my offensive comments. I think all developers here also want some apologies from your team but i guess you have no plan, right?

rocketman7 commented 2 years ago

@maheshmnj And my suggestion for several months is to communicate with us and let us know how it will be fixed! WE CANNOT USE THIS CUZ IT CRUSES OUR APP! But this is an officially recommended package by Flutter team. Then, why don't you give us a solution??

That's the issue. And that's the problem your team has to solve ASAP because it's monetization problem. Flutter team officially suggest the Flutter developers to use this package but performance and the way of implementation is way behind the expectation. What should we do? Should we keep "the code of conduct" and politely wait while NO ONE from your team answered to this issue and NOT FIXED FOR ALMOST A YEAR??

I am really sorry for not keeping the code of conduct. Please let me know what I should've done and what I have to do in the future. Funny thing is @jjliu15 just closed this issue without any solution and any proper communication. Isn't it funny? I really wanna make a poll here. Let's find out who is violating the code of conduct!

iqfareez commented 2 years ago

Very disappointing that the collaborator just close and letting go with this issue. 😞

ilkanimal commented 2 years ago

Hi @blasten,

While this performance issue is more about Flutter's PlatformView mechanism in general than a specific package, I think a radical decision needs to be made here.

Since it's impossible to write every package needed in Flutter as Dart-native (Maps, WebView, Ads and other large and comprehensive Platform-native packages...), PlatformViews will always have a wide range of uses. And its performance needs to be good and fluent.

The current implementation of PlatformViews is not meeting expectations. There is an issue here beyond what a few minor optimizations can provide. I think a new architecture for PlatformViews should be considered and even included in the 2022 Roadmap. Because together with the Jank issue, this issue is one of the two most important issues of Flutter at the moment.

Considering that the majority of business-critical packages use PlatformView, the PlatformView mechanism needs to be refactored. And it needs to be a separate project, an open project that can be followed by the community if possible.

Because of all this, I think the Flutter Team needs to hold a high-level meeting (I think maybe @Hixie is responsible for these decisions, I don't know) regarding this issue and inform the community about the result.

Thanks for your work.

atrope commented 2 years ago

@rocketman7 you are the one violating the code of conduct, step down a notch we are all let down by the team but you are the one writing with foul language...

@blasten unfortunately I cannot send you my app but I can gladly test any improvements in the engine that you want to try..

As @rocketman7 wrote, usually inline ads in a list view should descrease performance.Also navigating with listview and banners active also do that.

A 100% dart solution is out of the question?

bdlukaa commented 2 years ago

@blasten we would love to know how we can help with the platform views, either by coding, testing, documentation, and so on. We just need guidance. We're (at least I'm) not experts on java neither objective-c, then I don't know how I could help, so guidance on that would be key. We're just trying to improve flutter, and consequently our apps

A 100% dart solution is out of the question?

@atrope unlike google maps, ads needs to be secure about clicks and rendering, which can only be achieved using native views, and that's the reason we can't use AndroidView (virtual display) as well.

atrope commented 2 years ago

which can only be achieved using native views

@bdlukaa i Have doubts about this statement 😄 everything can be made secure if we find the right way 😸

mkassan commented 2 years ago

@bdlukaa the issue that I have created #297 shows the problem, with a link to a public github repository to reproduce the problem.

The issue has been closed to keep only one. The shared solution is a by-pass that is not acceptable from performance / user experience perspectives.

Thank you

3eif commented 2 years ago

@jjliu15 I appreciate the update that you have provided for us all but I am confused as to why you have closed the issue. The issue has still not been resolved and still needs work. Could you please reopen this issue again.

jjliu15 commented 2 years ago

We have opened a new issue in the flutter repo to track this issue with hybrid composition: https://github.com/flutter/flutter/issues/96679

naamapps commented 2 years ago

I don't think it's just android though. Also on iOS, at least from my experience, there are lags and issues with native view.

rocketman7 commented 2 years ago

I don't think it's just android though. Also on iOS, at least from my experience, there are lags and issues with native view.

@jjliu15 @blasten I've kept saying this but the team never listens haha. Scrolling performance drastically drops regardless OS, version or device. It always seriously occurs whenever inline ads are included in a scrollable list. I did test both iOS and Android, also various version of Android. @jjliu15 Why did your newly open issue only include Android even though so many people said that it also happened in iOS?

erperejildo commented 2 years ago

I don't think it's just android though. Also on iOS, at least from my experience, there are lags and issues with native view.

@jjliu15 @blasten I've kept saying this but the team never listens haha. Scrolling performance drastically drops regardless OS, version or device. It always seriously occurs whenever inline ads are included in a scrollable list. I did test both iOS and Android, also various version of Android. @jjliu15 Why did your newly open issue only include Android even though so many people said that it also happened in iOS?

why not using another package? I know this is the official one but if it's dead... don't waste more time here, they don't do it for you. Specially if this is stopping us to make money

blasten commented 2 years ago

Hey everyone,

I've been working on improvement perf of Android native views.

Please try the latest changes, and share any findings:

Steps

  1. Switch to Flutter master channel

    flutter channel master
    flutter upgrade
  2. Download the changes required for google_mobile_ads

    git clone -b tx --single-branch https://github.com/googleads/googleads-mobile-flutter.git
  3. Point the google_mobile_ads package to the location where you cloned the plugin

    google_mobile_ads:
    path: <path>/googleads-mobile-flutter/packages/google_mobile_ads
  4. Rebuild the app with any flutter command.

ilkanimal commented 2 years ago

Hi @blasten, With these last changes, banner placed in the ListView is getting impression before it appears on the screen. This conflicts with Admob policy. (https://support.google.com/admob/answer/3269069?hl=en) In the previous version, getting impression only when the first pixel of banner is seen on the screen.

By the way, at first glance I can say that the performance has noticeably improved. I'll be doing other production-level tests, but these improvements seem to live up to expectations.

Also, there is a scrolling issue with the WebView when banner and WebView are in the same screen. WebView's scrolling is not working. (WebView has custom GestureDetector) If you want to hear more, I can share details.

Example code for the impression issue ```dart class MyApp extends StatefulWidget { const MyApp({Key? key}) : super(key: key); @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { @override Widget build(BuildContext context) { return Scaffold( body: ListView.builder( itemCount: 15, itemBuilder: (context, index) { if (index != 0 && index % 5 == 0) { return const _BannerAd(); } return Container( height: 200, color: Color((Random().nextDouble() * 0xFFFFFF).toInt()) .withOpacity(1), ); }, ), ); } } class _BannerAd extends StatefulWidget { const _BannerAd({Key? key}) : super(key: key); @override _BannerAdState createState() => _BannerAdState(); } class _BannerAdState extends State<_BannerAd> with AutomaticKeepAliveClientMixin { @override bool get wantKeepAlive => true; late BannerAd myBanner; @override void initState() { super.initState(); myBanner = BannerAd( adUnitId: BannerAd.testAdUnitId, size: AdSize.banner, request: const AdRequest(), listener: BannerAdListener( onAdLoaded: (ad) => print('Ad loaded.'), onAdFailedToLoad: (ad, error) { ad.dispose(); print('Ad failed to load .'); }, onAdOpened: (ad) => print('Ad opened.'), onAdClosed: (ad) => print('Ad closed.'), onAdImpression: (ad) => print('Ad impression.'), ), )..load(); } @override void dispose() { myBanner.dispose(); super.dispose(); } @override Widget build(BuildContext context) { super.build(context); return Container( width: myBanner.size.width.toDouble(), height: myBanner.size.height.toDouble(), margin: const EdgeInsets.all(20), alignment: Alignment.center, child: AdWidget(ad: myBanner), ); } } ```
cmasdf commented 2 years ago

Hi @blasten, thank you very much for your renewed efforts to improve the performance - as stated before, performance has already been improved noticeably.

Unfortunately some native ads are not showing up on older Android versions anymore even if they are loaded according to the callback. I am not sure if @ilkanimal is talking about the same problem. I am receiving the onLoaded callback, but it looks like the texture is not loaded correctly, the widget just stays empty. The widgets are working correctly with the latest stable version of the plugin. It works perfect on Android 12 emulator, but shows the described behaviour with emulated and native Android 10. Due to the bug described in #158, i could not test it on Android 11. Is there any known solution or a chance that you might be able to have a look into this?

blasten commented 2 years ago

@cmasdf yes. We are aware of some issues. https://github.com/flutter/flutter/issues/98722 One fix is already in progress: https://github.com/flutter/engine/pull/31698

blasten commented 2 years ago

With these last changes, banner placed in the ListView is getting impression before it appears on the screen. This conflicts with Admob policy. (https://support.google.com/admob/answer/3269069?hl=en) In the previous version, getting impression only when the first pixel of banner is seen on the screen.

That's good feedback. The current implementation triggers the create event when the ad is in the viewport.

@ilkanimal

medst commented 2 years ago

Fatal Exception: java.lang.LinkageError

Fatal Exception: java.lang.LinkageError: Method java.lang.Object com.google.android.gms.internal.ads.to3.zzb() overrides final method in class Lcom/google/android/gms/internal/ads/lo3; (declaration of 'com.google.android.gms.internal.ads.to3' appears in base.apk)
       at com.google.android.gms.internal.ads.zzcpq.zza(zzcpq.java:44)
       at com.google.android.gms.internal.ads.zzevk.zza(zzevk.java:365)
       at com.google.android.gms.internal.ads.zzeke.zzN(zzeke.java:58)
       at com.google.android.gms.internal.ads.zzeke.zze(zzeke.java:6)
       at com.google.android.gms.internal.ads.zzbhd.zzg(zzbhd.java:203)
       at com.google.android.gms.ads.BaseAdView.loadAd(BaseAdView.java:6)
       at io.flutter.plugins.googlemobileads.FlutterBannerAd.load(FlutterBannerAd.java:60)
       at io.flutter.plugins.googlemobileads.GoogleMobileAdsPlugin.onMethodCall(GoogleMobileAdsPlugin.java:883)
       at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:17)
       at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:18)
       at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0(DartMessenger.java:20)
       at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$DartMessenger(DartMessenger.java)
       at io.flutter.embedding.engine.dart.-$$Lambda$DartMessenger$TsixYUB5E6FpKhMtCSQVHKE89gQ.run(-.java:12)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:193)
       at android.app.ActivityThread.main(ActivityThread.java:6740)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2022-03-13
blasten commented 2 years ago

@jjliu15 does the issue above look familiar?

blasten commented 2 years ago

This issue was fixed by https://github.com/flutter/flutter/pull/100091.

Other than https://github.com/googleads/googleads-mobile-flutter/pull/532, no more changes are required in the googleads plugin.

maheshj01 commented 2 years ago

Fatal Exception: java.lang.LinkageError

@medst that issue is being tracked here https://github.com/googleads/googleads-mobile-flutter/issues/471

jeromeDms commented 2 years ago

Switching to flutter beta channel largely improved performances in my case.

nero-angela commented 2 years ago

Similar performance issues occur in ios, are there any ongoing issues related to this?

juliancoronado commented 2 years ago

I see this issue is closed. Any estimate on when it will hit flutter stable?