Does anyone has any interesting AI tool you use why doing Flutter/Dart?
I have only experience with free version of https://codeium.com which I use mostly as an autocomplete which works quite well and I especially like when I have to write a sequence of stuff, I write the 1st and it autocomplete the rest based on it for me etc.
Would like to know your opinions and tips on other tools!
I used to use Github Copilot, then switched to Codeium based on an independent comparison (video). I might switch back or pick up yet another tool based on updated benchmarks. I also briefly tested out IntelliJās built-in solution. In all cases, I use it like you ā as a fancy autocomplete.
The one thing I learned to do that makes me more productive is having a keyboard shortcut set up to quickly enable / disable the autocompletion. (For Copilot, itās Ctrl-Shift-O. I bound the same keystroke for Codium.) This lets me focus on my flow when coding most of the time, without the distraction of wrong auto-suggestions, and then use the AI only when I know itās going to be useful. Before learning this ātrickā, I often spent more time reading and rejecting garbage suggestions than doing actual coding, and losing concentration. As you note above, the AI is best at sequences of repetitive or obvious stuff.
In the past, I periodically tried the other things that LLM coding tools provide, and so far I have always been disappointed. Iām talking about things like the chat interface inside the IDE that lets you ask the LLM to rewrite code for you. I tried that with Codium, Copilot and the IntelliJ AI solution. In all cases, the results were dismal. I might try it again.
As I get Copilot for free as an OSS publisher I mostly use Copilot. What is really helpful to have a separate key-binding which will only accept the next word it proposes so if the proposal is partly bullshit you donāt have to delete most of it afterwards.
Besides that I made pretty good experiences with Claude.ai if I want more complex changes or creation of some scripts
For me copilot is great for finishing or predicting some stuff but claude was great for actually writing code. Tho I think I saw copilot can now use third party AI, so with anthropic (claude) should be. Great
Iāve felt that thereās little to no point trying to be an early adopter in all of these AI tools as the best one will emerge in a few years time.
Between now and then you will end up trying various AI tools, realizing some are awful and some are okay and then later a lot of these AI tools will disappear as companies fail to have a profitable model.
The companies which remain will have you at their mercy and be able to continually jack up prices like Netflix / Spotify is doing because the majority are VC backed who care only about profit making.
Throughout this time you will have wasted days worth of development time testing the various different AI tools and trying to adjust your workflow to incorporate them and if anything your problem solving skills will become rusty as you build up a dependency on these tools.
Itās sort of a slippery slope. I too m not really happy with using it on the other side repetiv tasks can be done so much faster with it.
Or for example I needed some python scrip to pitch some generated Dart files. It was way faster to explain Claude what I need with examples before and after the patch than to write it manually.
Knowing that others take advantage of Ai tools makes it hard not to follow.
I too see the danger that at some point there will be a massive concentration and prices will go up.
After several months using GitHub Copilot I switched to https://www.cursor.com . Especially the composer is quite impressing. It can create or change several files in response to a good prompt and shows all changes as diff, just like in a merge request.
Cursor is a clone of VScode and is installed locally. It suggests to install all extensions from a VScode instance. I had no problem with all the typical extensions used for Flutter development.
I generally use only supermaven free tier for autocomplete.
And Iām learning aider, cline and continue.dev with gemini flash, but if I would pay for a model, it would be claude or deepseek.
Iāve been using this website for Flutter/Dart development, and itās been a game-changer for me, especially when it comes to debugging. It helps me quickly identify errors in my code and suggests ways to fix them. I find it particularly useful when Iām stuck on a problem or need some help understanding why something isnāt working as expected. It can also assist with code completion and offer explanations for complex parts of the code, which is great for learning and improving coding skills. Definitely worth checking out if youāre looking for something beyond just autocompletion!
FWIW, Iām now using Sourcegraphās Cody (as an IntelliJ plugin) and Iām much happier with it than my previous explorations (Tips on AI tools for coding - #3 by filip).
I still code with AI autocomplete turned off, because I find the autocomplete still breaks my flow. But I use the Cody chat and occasionally āforceā completion with a keystroke. I also use what Sourcegraph calls āEdit code with Codyā, which gives a little modal window right in the text, where you can say things like ānow implement myFieldā and it generally does the right think.
Iām also finding Claude 3.7 Sonnet much better than ChatGPT 4o.
Finally, I also learned that LLM can help me make ASCII diagrams in docs. This is helpful since itās so easy to say ānot worth itā otherwise. But with an LLM, you say something like āgive me an ASCII diagram of a 16:9 screen with a dot in the centerā, and go from there.
// This is using Pythagoras to find the distance from the center of
// the screen to any of the corners, expressed in multiples of the height
// of the screen (which is the value expected by RadialGradient).
//
// a
// +--------------------------------+ h = 1
// | | ..... | w = aspect * h
// | b | ..... |
// | | .... x | b = h/2 = 1/2
// | O | h a = w/2 = (aspect*h)/2 =
// | | = aspect/2
// | |
// | | x² = a² + b² =
// +--------------------------------+ = (aspect/2)² + 1/4
// w
final radius = sqrt((aspect / 2) * (aspect / 2) + 1 / 4);
I use Cursor most of the time now and auto completion is mostly helpful although it often gets things wrong. What can help is enabling in the setting a shortcut to only accept the next proposed fragment.
I general I still struggle with really getting productive in my project by using prompts. However several developers I know claim that they do 80% of cod3via the agent and prompts.
That motivated me yesterday to try it with a refactoring in a class hierarchy where I want to remove some duplicates code in a pretty big class which would have been pretty tedious to do manually.
So I decided to give Cursorās AI agent the job.
The first 4 approaches where a disaster. Cursor made changes I did not had asked for and left a mess of code that didnāt even compile.
Finally I disabled in the setting the features to iterate over Linter warnings to improve code quality and enabled additionally Deepseek besides Claude and chatgpt (no idea how cursor priorises which model. In the past you just selected which model to use, now you can select multiple ones)
Not sure if Deepseek made a difference but after that change the next attempt to do the same suddenly worked and the code looked fine.
However later I found that the agent had forgot to remove the now in a new patent class implemented comon fields from the deriving classes so that their fields where now overriding already existing fields.
So I am left with very mixed feelings.
I posted yesterday the following on Bluesky
And it still summarizes my feelings to Ai and development
At work Iām encouraged to leverage a copilot enterprise plan. I donāt have good things to say about its performance in generating Dart when prompted, and I find autocomplete to be a distraction.
At the moment I use it to assist me in logging - create a statement to log X object in a prescribed way and/or reformat this log into this format for me - e.g take a stringified json object and transform it into a key-value list with entries on new lines. For this use case the time to validate correctness is short and the cost of incorrectness is low.
FWIW, my main problem with AI autocomplete is how I tend to stop to read the autocomplete, and thus get out of flow. If the autocomplete was 90% usable, this would be no problem ā but itās much less often usable. If I was always writing at top speed and thus only saw autocomplete when Iām ādoneā with a thought, then it would also be no problem. But I often just stop to think a little bit, and then the AI is faster than me ā and instead of finishing a simple thought, I find myself reading a (mostly unusable) piece of code. ĀÆ_(ć)_/ĀÆ
In this respect, āchat oriented programmingā (chop) is probably a better fit for me.
Using contents of this forum for the purposes of training proprietary AI models is forbidden. Only if your AI model is free & open source, go ahead and scrape. Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC.