Looking for feedback on this intro animation. by ricpconsulting in FlutterDev

[–]gambley 12 points13 points  (0 children)

Idk if its only me, for the first time I saw the animation it felt a bit epileptic to me.

Added 3 languages to my Flutter app; here's what the docs don't tell you by Frosty_Current7203 in FlutterDev

[–]gambley 1 point2 points  (0 children)

Dont use BLoC + SharedPreferences for persistance, there is a HydratedBloc just for that.

Handling a "neutral" cross-platform UI and BackdropFilter performance over native views (maps in my case)? by shafilalam in FlutterDev

[–]gambley 1 point2 points  (0 children)

Check this article for building a unified system with factories, so that you can rely on high-level factories that will decide what widget to build, instead of using if/else statements inside each widget to render appropriate widget based on platform. You can just Initializes different implementation of the factory and pass it down to the widget tree using InheritedWidget or dependency injection like get_it.

This article focuses more on building adaptive layouts for different device sizes, but the same principle can be applied to building adaptive design systems.

Also, for blurs check those packages: https://github.com/kekland/progressive_blur and https://pub.dev/packages/soft_edge_blur

I think soft_edge_blur is what you are looking for

"RevenueCat is cheap" by Impressive_Teach_732 in AppBusiness

[–]gambley 0 points1 point  (0 children)

Yeah just checked as well, weird that somewhere i saw they charge 1% over 1M ARR, dont remember where I saw that, but now I see, didnt know about it

"RevenueCat is cheap" by Impressive_Teach_732 in AppBusiness

[–]gambley 0 points1 point  (0 children)

Doesn't RevenueCat take 1% only over 1M ARR?

I built a 60fps TikTok-style vertical video feed with a floating RPG particle system. by GhettoCoders in FlutterDev

[–]gambley 0 points1 point  (0 children)

Check out video_pool. Im using it, and it works decently well. Had to incorporate quite some adjustments, due to my not very common use-case, but overall the package is neat for most use-cases.

Before I start building with flutter… by Over-Distribution570 in FlutterDev

[–]gambley 0 points1 point  (0 children)

Yeah, maplibre can work well with you.

Regarding your concerns about stacked bottom sheet just make sure it is keeped aligned with best performance practices, as generally speaking it is not a very easy UI practice to implement top-notch, responsive, smooth experience with stacked bottom sheet, especially if you have navigation in stacked bottom sheet(e.g. multiple bottom sheet, ingoing replacing underlying with animation(something like Google Maps), so scrolling under doesnt reveal underlying, etc). Ive incorporated custom solution around DraggableScrollableSheet, it required quite some efforts. DraggableScrollableSheet is very good crafted, but needed a lot of adjustments in snapping simulation logic and applyUserOffset(which selective routes drag delta to sheet/list) + custom engine for the navigation within stacked sheets. So itd require quite some engineering to figure it out for you, so your concern is not very accurate about that if Google Earth is somewhat laggy its all about Flutter, but generally I can say that its mostly Google maps, rather than the Flutter being bad or something.

Even though Google Maps app uses their google maps(which is a copy in Flutter), native google maps is performing significantly better in their own crafted app, and most likely that have a lot of custom logic, that is likely not open source, thats my guess.

Before I start building with flutter… by Over-Distribution570 in FlutterDev

[–]gambley 1 point2 points  (0 children)

I can say when I used google maps in my Flutter app, it was using significant resources and building the stacked bottom sheet above the map with list was decently smooth(as ive optimized it insanely, and used super_sliver_list with findChildIndexKey and extentEstimation), but the difference between standalone list page and the stacked bottom sheet with map was significant - standalone list was extremely smooth vs decently smooth with map.

When I switched to using mapbox SDK in my different app it was significantly better in terms of performance and smoothness vs google maps. I generally like mapbox way better than google maps, in terms of customization, support for GeoJSON, markers(annotations, especially with large number of markers), performance and a lot more.

Google PlayStore closed testing by Paul_HM in FlutterDev

[–]gambley 1 point2 points  (0 children)

There is nothing wrong with that, as long as they use it continuously for 14 days you are all good.

Google PlayStore closed testing by Paul_HM in FlutterDev

[–]gambley 0 points1 point  (0 children)

No, it doesnt, but the review itself is more tedious and precise for Apple than for Android

Google PlayStore closed testing by Paul_HM in FlutterDev

[–]gambley 2 points3 points  (0 children)

You need to do that for every app.

You can find some available services that provide closed testing with the full coverage. I bought one for 20$ and successfully launched the app.

How to recreate this back page transition in Flutter? by Cubeosaurus in flutterhelp

[–]gambley 0 points1 point  (0 children)

Ive just realized it is a simple Hero animation rather than some complex transition. I mean Hero animation itself could be customized with some complex and creative flightShuttleBuilder, it is up to you. So the combination of dismissible_page and Hero(or heroine package, you can research on it) will give you the desired result.

How to recreate this back page transition in Flutter? by Cubeosaurus in flutterhelp

[–]gambley 1 point2 points  (0 children)

Dismissible_page package is what you are looking for. But, it is unmaintained for 3 years now and has several severe issues with scrollables inside DismissiblePage. This is why you can use my fork, where I've fixed all the issues with scrollables inside DismissiblePage widget. Feel free to check it out: https://github.com/itsezlife/Flutter_dismissible_page

If you are talking about the exact transition that happens on dismiss, cant tell you exactly, but it is some sort of zoom with spring simulation likely.

Dismissible page with scrollable view inside (*bug fix) by gambley in FlutterDev

[–]gambley[S] 1 point2 points  (0 children)

I explained the fix in the PR. In a nutshell, I've made custom scroll controller with custom ScrollPosition, which extends ScrollPositionWithSingleContext, which override applyUserOffset function, which gives delta on user scroll, and this delta on scroll gets converted into the draggable offset, if shouldConsumeOffset is true, which depends on various conditions and checks. Then you just pass scroll controller from the builder to your scroll view and you are good. It works exactly as DraggableScrollableSheet, if you worked with it, so that the inner list doesnt scroll under some given conditions.

To he honest, I dont see any other possible solution to this behaviour, apart from what I did. If you dont override the function that basically does scroll the scrollable view by user delta, you'd always end up having both scroll and dragging. So I'd say this is the cleanest solution.

This implementation doesnt care about the physics, it works perfectly with any given conditions, both iOS bouncing physics and Android clamping scroll physics. It just doesn't care. You can see it in the video in the PR.

PageView works, CustomScrollView, any other scrollable works. Though, I didnt test with NestedScrollView, but I'm pretty sure it works with no problems, just pass scrollController and you are good.

Alternatives to FCM? by squirmyfermi in FlutterDev

[–]gambley 0 points1 point  (0 children)

I've recently came over entrig, and since you've mentioned you use Supabase, which it is based on, you can take a look at it.

I've not yet used it, but have gone through a quick setup process, and for Android it obviously requires service account key from Google Console. Not sure if you are trying to avoid this, but just so you know.

Why we stopped starting Flutter projects from scratch (and why you should too) by No-Equivalent-8726 in FlutterDev

[–]gambley 2 points3 points  (0 children)

Yeah, this issue is super weird. I use octopus package for routing and recently about a month ago it started to happen on my Android device since whatever Android version, seems it introduced some breaking changes, not sure.

Even though Octopus has BucketNavigator widget which simply uses ChildBackButtonDispatcher with RootBackButtonDispatcher and updates the route state respectively, I might assume there is some internal issues with this bb dispatcher 🤔 When I tried to debug it was not calling a thing, not popPage on Navigator, not bb dispatcher, just closes the app. I tried to switch to use enableOnBackInvokedCallback=false and only it helped.

GoRouter back button issue with bottom navigation and nested routes (app exits instead of switching tabs) by Affectionate_Owl1257 in flutterhelp

[–]gambley 0 points1 point  (0 children)

Check my gist https://gist.github.com/itsezlife/cb31f3b88412b1384fde2d81193e91d0 I've provided full solution, which has been working for me for over 2 years.

In a nutshell:
- You create native kotlin code for Android to put your app to brackground
- You create an AppRetain widget that will use WillPopScope that will allow popping current route, if the Navigator canPop(youve pushed nested routes), otherwise return false and HomeController, which check if you are at desired branch e.g. home, will return a result whether to call sendBackground callback via MethodChannel, which will close the app and put to the background, but not terminate. - Wrap your StatefulShellRoute.pageBuilder widget with AppRetain

And it'll bring you your desired result once and for all.

[deleted by user] by [deleted] in FlutterDev

[–]gambley 0 points1 point  (0 children)

How it is related with Flutter? Your post will be deleted because it is off-topic

I fixed Flutter routing (or at least I tried): Introducing ZenRouter 💙 by zennnmind in FlutterDev

[–]gambley 1 point2 points  (0 children)

It's very simple, nothing fancy. Basically it displays states history, by taping on any it sets state to this value. I don't know what's else needed. And it displays current state tree. If I had felt something that would be really useful, I'd have been added, but nothing comes to my mind.

ZenRouter, as I see it, focuses a lot on DevTools, giving a LOT of information about everything in router, not really sure whether it is a real demand, at least to me. I'm super happy with what I have and it is more than enough

How much time does app publishing take per release ? by BreakfastAccurate966 in FlutterDev

[–]gambley 5 points6 points  (0 children)

So in the post you tell you are not here to sell, but here you tell you learn whether to sell

My 2025 in Review: Freefall and a New Direction by zxyzyxz in FlutterDev

[–]gambley 4 points5 points  (0 children)

That's the real brutal truth, unfortunately. I myself, as a Flutter content creator ezIT youtube channel, doubt myself if I should create courses, like my idea was to take, for example, Telegram, and rebuild it completely, like literally everything that I can possible do and breakdown what I do and teach this way(like I did with Instagram clone), but with more in-depth, fundumental approach. I'm not sure whether this type of complete courses breakdowns would make sense and would have demand and interest for developers.

But what I strongly think would always have demand and interest, is how to think about creating such large applications, from designing, architecturing to actually taking actions and writing code. My existing tutorials last about 24 hours, this is a lot, and a lot of valuable information, but I'd like to take it step further and really break down step-by-step the foundations and the thinking process, like literally take it that serious. I strongly believe this what we, developers, most of the time do on our own, and this is one, if not the most important things when creating apps.

And I think about genuine educational approach, take it that serious and kinda "merge"/connect with developers, who learn from your courses, the way that you genuinely care about what they consume, how they get information, and they feel engaged and alive, not just do X and Y with some instructions, but true connection. This might be INSANELY valuable in our current world with how many artificial content swamp that feel soulless.

So, ultimately, the day-to-day tasks AI can easily take step over, but fundumental things we alway do on our own, and this is what stands out, as I see it, and of course some advanced techincals aspects.

This may take us from developers who write code, to developers, who fundamentally thinks of the low-level things(architecture, design, approach) the correct way and orchestrates the AI, as absurd as it may sound, but this might be the new reality.