Absent WithOut Leave

General Conversations

And behold the Flutter Flow Gods gave you AI... and it was good !

I do not jest, the AI is marvelous and I can see places where I will use it, extreme kudos on the component sketch, definitely using that ! BUT......

I'm worried you've forgotten your bread and butter whilst you create wonderous things.

I'll dispense with my theatrics and explain myself.

There are still indispensable flutter features you're missing that have been available for 15 years.

resize To Avoid Bottom Insets : Let's assume, and rightly so, that not every page built is wrapped in a Single Child Scroll View. So, what happens if that rigid fixed page has a text field on it ? or you've used a bottom modal sheet ? Well as it opens Android OS will resize your page to avoid the bottom inset (soft keyboard / Bottom modal sheet). now, you can control the destruction by giving your widgets conditional visibility on the global constant of 'is keyboard open'. But unless you're going to hide that delightful background image, that's going to get.. technical term... scrunched ! Easily solved by FF in less than 10 minutes. a fourth switch in the Page(Scaffold) Properties, Resize to Avoid Bottom Insets.

Synchronous functions in the build process : When you require something to happen every time the page builds/Sets State, in dart we'd insert a function as below

@override
Widget build(BuildContext context) { 
// Add your function here
return PageWidget();
}

I ran into this problem today, I'm making a form page and I decided at the bottom of the page I want a progress bar which has it's value (a double) in the page state. I need the progress indicator to update every time there's a change so I wrote a very simple for loop in a custom function. But where to run it. Unfortunately, in today's FF, I have to include my custom function in EVERY action tree that would set the page's state in order for my progress bar to be updated at all times, about 30 times in total... OR I could add it once in the spot described above. I know there are other ways around this particular problem, but it illustrates the need to add some synchronous functions in the build process.

Un focus :

FocusManager.instance.primaryFocus!.unfocus();

This little beauty will close the soft keyboard and it should be available in the widget interactions where said Page / Component contains a text input field. This is an app experience feature, here's why... people don't enter a text field, type text, and then press enter (trigger on submit). This is the reason I asked FF for a Text field focus widget about a year ago, which they delivered (love FF for that!). If I have a text field on a page and, say, a button which opens a date picker, people tend to tap the text field, type text, then tap the date picker button (they want to fill in the form as fast as possible).

What happens is this:

tap text field => keyboard open => enter text =. tap picker button => keyboard closes => date picker dialog opens => enter date and submit => date picker closes => keyboard reappears unbidden.

This is because throughout the date picking the text field still has page focus, when you return a text field has focus, on submit hasn't been triggered, so Android OS opens the soft keyboard... good for the developer, bad user experience. The best way to handle this is : before you () => final date = await date picker() you use the un focus line to remove the focus on the text field because the user is obviously done with it. Now, I'm not saying you should use it here unless you're aware that your text field on submit wont trigger and so you've added the relevant code to the text field lost focus widget that FF does provide. I'm just using this as a demonstration

This is by no means a slight on FF, I myself am a dart/flutter/ C# full stacker with many years experience and many apps in production. My personal opinion of FF is.... Genius, with a huge hat tip to your collaboration features.

Here's my topic of discussion, I'm wondering if I'm the only one thinking it...

Are they missing (some of) the bread and butter features of flutter whilst they shoot for the stars ? (FF AI, which i mentioned earlier is freaking marvelous!)

Are there any other bread and butter features I haven't stumbled on yet ?

and please don't reply with the editor integration that's coming soonly, whilst that will let me add all this stuff, it wont help less experienced coders who don't know these features exist.

2
1 reply