Remi Rousselet Profile
Remi Rousselet

@remi_rousselet

33,443
Followers
513
Following
401
Media
8,630
Statuses

Dart makes my heart Flutter "Creator of many things" Maintaining open-source projects @invertaseio

Joined December 2015
Don't wanna be here? Send us removal request.
Pinned Tweet
@remi_rousselet
Remi Rousselet
5 months
Merry Christmas and happy Flutter year! 💙
11
22
340
@remi_rousselet
Remi Rousselet
8 months
Have you noticed? Since a few days ago, Riverpod is part of Flutter Favorites! 🎉
Tweet media one
81
94
1K
@remi_rousselet
Remi Rousselet
3 years
Riverpod 1.0.0 is now released 🎉 Stay tuned for an article detailing the changes. In the meantime, you can read the CHANGELOG:
41
178
844
@remi_rousselet
Remi Rousselet
1 year
New package released: Riverpod_lint 🥳 This package empowers your IDE by adding new warnings and refactoring options for Riverpod
33
98
683
@remi_rousselet
Remi Rousselet
4 years
I've just released Riverpod, my next state-management experiment 🥳 An article will come soon, but in the mean-time, feel free to take a look at its documentation:
57
144
627
@remi_rousselet
Remi Rousselet
1 year
I have a provider joke, but it's out of context
29
51
591
@remi_rousselet
Remi Rousselet
4 years
Today, after 915 answers across 1000 days of connection with 862 being consecutive, I reached 100 000 points on Stack Overflow. 🎉🤓
Tweet media one
50
24
579
@remi_rousselet
Remi Rousselet
9 months
You can now loop over a list while also obtaining the item's index:
Tweet media one
22
62
579
@remi_rousselet
Remi Rousselet
2 months
All Riverpod bug reports are fixed 🎉
22
30
579
@remi_rousselet
Remi Rousselet
1 year
Dart 3 is looking great! I'm really looking forward pattern marching
Tweet media one
14
44
541
@remi_rousselet
Remi Rousselet
2 years
We keep pointing out where Dart is lacking, but I don't see enough people talking about where Dart nailed it. So here's a thread on why I think Dart is a big contributor to Flutter's success 👇
20
116
521
@remi_rousselet
Remi Rousselet
2 years
Freezed is now a Flutter favorite package 🎉 #FlutterFavorite
13
27
508
@remi_rousselet
Remi Rousselet
1 year
I'm pleasantly surprised to see Riverpod in an official Flutter video!
@FlutterDev
Flutter
1 year
📺🤩 Picking up where we left off on #LearnFlutter ... Watch the latest episode with @KhanhNwin to dive into what state management is & implementing it in our exploration app. Tune in →
Tweet media one
3
30
189
16
31
457
@remi_rousselet
Remi Rousselet
1 year
You know what, I'm tired with coding/Flutter. ChatGPT is going to replace me anyway. I'll become a farmer instead.
41
28
451
@remi_rousselet
Remi Rousselet
2 years
I needed a UI component similar to Firestore's DB inspector, so I made one in Flutter I'm pretty happy with the result!
12
37
448
@remi_rousselet
Remi Rousselet
5 months
The more I use TypeScript, the more I like Dart
16
29
433
@remi_rousselet
Remi Rousselet
2 years
Freezed v2.0.0 is out 🎉 It adds: - flags for customizing the generated code - support for generating mutable classes - support for making lists/maps/sets immutable - a cleaned-up README
9
79
430
@remi_rousselet
Remi Rousselet
3 years
@kerckhove_ts @tabatkins Obligatory meme format
Tweet media one
0
51
422
@remi_rousselet
Remi Rousselet
3 years
The devtool for Provider is out 🎉
12
72
424
@remi_rousselet
Remi Rousselet
3 months
Everytime I use JS, I am quickly reminded about why I like Dart.
23
35
416
@remi_rousselet
Remi Rousselet
7 months
Have you noticed? Riverpod docs have received quite a lot of new content lately!
Tweet media one
14
34
411
@remi_rousselet
Remi Rousselet
1 year
I think I'll spend the upcoming months consolidating the Riverpod experience instead of adding new features. Offline & mutations can wait a bit. Let's work on docs & fix all the small bugs / minor inconveniences. Sounds fair?
28
12
407
@remi_rousselet
Remi Rousselet
4 years
I too got nominated for Open Source Peer 🏆🎉 This is so cool, thanks 😊
Tweet media one
30
19
388
@remi_rousselet
Remi Rousselet
2 years
Riverpod 2.1.0 is out 🥳 TL;DR - fixes web crashes - Improved support for mutable data - "when" now has optional parameters to customize the output - overrideWithProvider is deprecated in favor of a new simpler "overrideWith" Full changelog here 👇
14
59
372
@remi_rousselet
Remi Rousselet
8 months
Now that's some cool cushion!
Tweet media one
11
10
359
@remi_rousselet
Remi Rousselet
4 years
Now that non-nullability is out let's share some tips: `late` Late is a new keyword in Dart. It allows you to initialize a variable "the first time it is read" instead of on its creation In the context of Flutter, it kinds of removes the need for `initState`:
Tweet media one
Tweet media two
13
80
364
@remi_rousselet
Remi Rousselet
1 year
Riverpod_generator v2.0.0 is out! 👏 🌊 Providers can now return Streams! 🤏 Syntax sugar for defining scoped providers is available
Tweet media one
10
37
358
@remi_rousselet
Remi Rousselet
2 years
Sometimes I feel like people raise issues not because they found a problem in my packages ; but because they want me to fix their app.
26
18
351
@remi_rousselet
Remi Rousselet
2 years
For those wondering, Riverpod 2.0 should be released somewhere during September
21
30
344
@remi_rousselet
Remi Rousselet
3 years
Riverpod was migrated to null-safety 🎉
6
37
338
@remi_rousselet
Remi Rousselet
4 years
ChangeNotifier.notifyListeners is no-longer O(N^2) 🎉 You can stop worrying about it now~
@FlutterMerge
Flutter Merge
4 years
#Flutter Pull Request 'Use a LinkedList to improve the performances of ChangeNotifier' by @remi_rousselet was merged into master
Tweet media one
0
5
52
13
38
336
@remi_rousselet
Remi Rousselet
2 years
#Flutter tip: You probably should avoid doing "if(mounted)". This check serves only at silencing the error, like a `// ignore`. Often, the true solution lies elsewhere For example, considering stopping your network requests instead of letter them complete
Tweet media one
Tweet media two
12
52
331
@remi_rousselet
Remi Rousselet
3 years
The perfect goody doesn't exis–
Tweet media one
17
19
326
@remi_rousselet
Remi Rousselet
6 months
Dang it, people like to hate my work, don't they?
151
8
327
@remi_rousselet
Remi Rousselet
2 years
I hate that some people argue I'm manipulative for promoting Riverpod as a replacement for Provider I have literally nothing to gain by competing with myself.
34
19
325
@remi_rousselet
Remi Rousselet
3 years
Happy to announce that I've been working on a state inspector for provider/riverpod lately It's still work in progress, but we're getting close to release See the following article for more information
14
49
325
@remi_rousselet
Remi Rousselet
1 year
I've reached a point where I'm building tools to build tools to build tools.
17
8
319
@remi_rousselet
Remi Rousselet
2 years
I don't like that Flutter uses "onPressed: null" to disable a button (and same goes for other similar life-cycles) It makes disabling buttons unreadable. I'd prefer writing: Button(enabled: enabled, onPressed: onPressed) over: Button(onPressed: enabled ? onPressed : null)
22
16
312
@remi_rousselet
Remi Rousselet
4 years
Developers are politicians They manage states
20
44
310
@remi_rousselet
Remi Rousselet
10 months
Sneak peek at the new Riverpod docs: Here is the first of many new pages to come. Thoughts?
34
33
307
@remi_rousselet
Remi Rousselet
4 months
Tip for improving readability of classes with multiple generics: - Give full names to generics instead of a single letter - End generics with `T` This makes it clearer what a generic is about. And it is easier to differentiate generics from classes
Tweet media one
12
20
300
@remi_rousselet
Remi Rousselet
3 years
Riverpod 1.0.0 nearing completion It "just" needs writing hundreds of extra tests and updating all the doc I'll need a few cups of tea.
13
24
296
@remi_rousselet
Remi Rousselet
3 years
I have published a dev-release of Riverpod v1: riverpod 1.0.0-dev.0 Go give it a try 🎉
12
48
294
@remi_rousselet
Remi Rousselet
9 months
I've been fighting burnout for a while now. It's frustrating not knowing the root issue and being unable to do anything about it.
48
8
291
@remi_rousselet
Remi Rousselet
2 years
Flutter web should work for websites
23
16
284
@remi_rousselet
Remi Rousselet
2 years
Yes, tests are complex. But what's even more complex is trying to maintain a project without tests. Without tests, as time pass, you'll end up in an infinite loop of bug-fixes
14
42
276
@remi_rousselet
Remi Rousselet
2 years
It appears that BuildContext will soon have a "mounted" property So you can do: "if (context.mounted)"
14
23
284
@remi_rousselet
Remi Rousselet
3 years
I've just released a null-safety version of Freezed 🎉 Go give it a try!
6
22
288
@remi_rousselet
Remi Rousselet
2 years
Advanced Riverpod tip: You can use extensions on Ref to reuse some logic between providers in a composable way This example adds reusable logic for debouncing and canceling network requests within FutureProviders.
Tweet media one
11
43
286
@remi_rousselet
Remi Rousselet
3 years
The next Riverpod version is going to have quite a few breaking changes. On the plus side, it's also going to be a 1.0.0 release
10
37
279
@remi_rousselet
Remi Rousselet
8 months
@lesnitsky_dev NO, 👏IT👏DOES👏NOT
12
9
277
@remi_rousselet
Remi Rousselet
1 year
Did you know that YAML files are backward compatible with JSON files? You can rename any .json into .yaml and send it to a yaml parser without issue. You can even mix both syntaxes in the same file. Here's an example in a pubspec.yaml:
Tweet media one
14
30
275
@remi_rousselet
Remi Rousselet
2 years
Looking for Riverpod 3.0
Tweet media one
14
9
268
@remi_rousselet
Remi Rousselet
5 months
In a distant future, I'll probably create a backend package for Riverpod/Flutter uses. It's been in the back of my mind for a while.
19
14
271
@remi_rousselet
Remi Rousselet
5 months
Lately, I've been refactoring a core component of Riverpod's internals. And I love that my past self took the time to write tons of tests. There are so many things I would've forgotten. Write tests folks.
7
17
268
@remi_rousselet
Remi Rousselet
2 years
I think we should be honest with ourselves: State management is hard.
13
23
264
@remi_rousselet
Remi Rousselet
1 year
Here's a little Dart challenge This code has a bug in it. Can you find it?
Tweet media one
26
23
263
@remi_rousselet
Remi Rousselet
10 months
Are there companies using #Riverpod that would be willing to have their name/logo on the documentation's homepage? #Flutter
96
32
265
@remi_rousselet
Remi Rousselet
2 years
Lots of cool features coming for Riverpod 2.0 Now, if you are using AsyncValue and your state goes back to loading, the UI will be able to keep showing the data It also includes new tools to interact with provider life-cycles, such as to delay the disposal of autoDispose.
11
26
263
@remi_rousselet
Remi Rousselet
4 years
I would like to start a series of examples showcasing how I would architecture a Flutter app Any recommendations/things you would like covered?
54
20
260
@remi_rousselet
Remi Rousselet
2 years
The next version of Freezed will include lots of parameters for customizing the generated code They allow disabling or forcing the generation of various things (map/toJson/==/...)
Tweet media one
6
30
261
@remi_rousselet
Remi Rousselet
1 year
Can people stop quoting me for arguments against GetX? I was in a bad mood and have retracted my tweets a while ago. No matter what a package does, we as a community shouldn't dunk on it like this. People should be able to talk about the package without getting hate raided.
12
18
260
@remi_rousselet
Remi Rousselet
1 year
Big Freezed update incoming 👀
15
16
256
@remi_rousselet
Remi Rousselet
1 year
Tip: Iterable.expand is a nice tool for fusing nested loops into a single larger loop.
Tweet media one
12
25
252
@remi_rousselet
Remi Rousselet
2 years
Tip: Use the "Never" type as the return type of functions that always throw. This will allow the analyzer to help spot code that is never reached
Tweet media one
6
21
246
@remi_rousselet
Remi Rousselet
3 years
It seems like you can now use Riverpod/Provider in Dartpad 🥳
3
40
252
@remi_rousselet
Remi Rousselet
3 years
Is it me or there's a sudden spike in job offers for #Flutter ? And I'm not talking about those offers that just say "knowledge in React Native/Flutter is a plus". I'm talking about proper Flutter jobs
19
20
245
@remi_rousselet
Remi Rousselet
4 months
If you want to get good at anything, find a way to make it fun. If it's fun, you'll do it a lot and get good without realizing it. Anything else is bonus
6
30
248
@remi_rousselet
Remi Rousselet
2 years
Free trials that automatically charge you at the end of the trial if you don't cancel should be illegal
13
17
242
@remi_rousselet
Remi Rousselet
4 years
Using Dart is probably one of the best decisions the #Flutter team made While the language in itself is average, Dart is not just a language. It's a complete dev environment This allows all tools to work together seamlessly. And Dart can just evolve to meet Flutter needs anyway
8
48
240
@remi_rousselet
Remi Rousselet
2 years
There are 300k public repositories using provider??
Tweet media one
12
7
241
@remi_rousselet
Remi Rousselet
4 years
I'm finally happy with State Management after so long – with riverpod + freezed + state_notifier + flutter_hooks So now I'll focus on dev tools and documentation. 🥰
13
13
241
@remi_rousselet
Remi Rousselet
4 years
Snack-bars are now shared between Scaffolds 🥰
@FlutterMerge
Flutter Merge
4 years
#Flutter Pull Request 'ScaffoldMessenger' by Kate Lovett was merged into master
Tweet media one
1
11
65
11
25
240
@remi_rousselet
Remi Rousselet
2 years
Here's a cool thing I've been working on for the past few months 🙂
@invertaseio
Invertase
2 years
Lint rules are a powerful way to improve the maintainability of a project. The more, the merrier! 🥳 We are pleased to announce the "Custom Lint" package, a powerful tool for building custom lint rules to allow you to go beyond! 🔗🍿
Tweet media one
4
49
187
11
30
238
@remi_rousselet
Remi Rousselet
11 months
Tip: When you have a list of records, you may want to filter elements where a property of the record is not null. Unfortunately you cannot use "list.whereNotNull" for this. But you can use "list.whereType", to check if a given property is non-nullable!
Tweet media one
5
28
234
@remi_rousselet
Remi Rousselet
1 year
The complexity of programming generally isn't in making your code work once It's about making sure it keeps working as you add more things Programs continuously evolve over time. Possibly in a way that you weren't prepared for.
7
27
226
@remi_rousselet
Remi Rousselet
1 year
If the dio case showed one thing, it's that the fear of packages dying is pointless Dio had new people working on it before people even realised the maintainer stopped
8
25
232
@remi_rousselet
Remi Rousselet
4 years
Random #Flutter tip: You can use GlobalKeys inside StatelessWidget by combining GlobalObjectKey and BuildContext (and potentially tuples) This avoids using global variables, which therefore makes the widget reusable. 🙂
Tweet media one
2
56
228
@remi_rousselet
Remi Rousselet
2 years
Time to truly start working on new docs for Riverpod You can follow the new docs at The new site comes with toggles in the sidebar, to enable/disable hooks and code generation.
Tweet media one
9
24
226
@remi_rousselet
Remi Rousselet
3 years
It's sweet to be able to contribute to the community as part of my job 🥰
@invertaseio
Invertase
3 years
Welcome @remi_rousselet to the team 💙 Already working wonders on @FlutterFireDev 🔥
6
8
123
37
7
224
@remi_rousselet
Remi Rousselet
3 years
The version 0.14.0 of Riverpod was released 🎉 It changes the syntax of StateNotifierProvider. This release also comes with a tool to automatically migrate your projects. See the migration guide for more information
4
38
225
@remi_rousselet
Remi Rousselet
4 months
If you're watching 5+ providers in the same widget, you're likely doing too many thing in that widget. Split it in smaller pieces
8
14
225
@remi_rousselet
Remi Rousselet
1 year
Worked real hard this w-e and made my own chat GPT. Here's the source:
Tweet media one
9
10
223
@remi_rousselet
Remi Rousselet
3 years
👋 If I don't answer your issues and nothing progress, it's because I'm taking two weeks off See ya~
13
1
222
@remi_rousselet
Remi Rousselet
2 years
New pub feature 🎉 We can now define a `pubspec_override.yaml` right next to our `pubspec.yaml` In there, you can specify some `dependency_overrides` to override package versions in development. Once the package is published on pub, this file will then be ignored
Tweet media one
Tweet media two
6
32
217
@remi_rousselet
Remi Rousselet
4 years
Did you know? You can use try/finally inside an async* function to clear resources when the stream is no-longer listened This means you can: - open a connection - listen to its result - close the connection when no-longer listened or on error all within a single function
Tweet media one
3
32
221
@remi_rousselet
Remi Rousselet
1 year
Freezed 2.3.0 is out 🥳 Special thanks to @DevNicoS
Tweet media one
9
18
218
@remi_rousselet
Remi Rousselet
1 year
Riverpod tip: Using Records, you can easily pass multiple parameters to providers without having to use code-generation This works because records override ==/hashCode by default
Tweet media one
5
30
221
@remi_rousselet
Remi Rousselet
9 months
React folks are jumping on that one Reddit post validating their opinion today 🙃
18
14
217
@remi_rousselet
Remi Rousselet
10 months
Alright, Riverpod docs week-end.
9
2
213
@remi_rousselet
Remi Rousselet
1 year
Debugging tip: You can print `StackTrace.current` to find out what called a functiond
5
14
211
@remi_rousselet
Remi Rousselet
2 years
I'm thinking about reinventing StateNotifier a bit for Riverpod, and maybe adding an "AsyncStateNotifier" TL;DR here's a before/after
Tweet media one
Tweet media two
15
16
214
@remi_rousselet
Remi Rousselet
3 years
Pro tip: Fork Flutter, edit its pubspec.yaml and add "version: 3.0.0" You can thank me when you get the job
@icodelife
Mithun S Menon
3 years
When did this happen 🤔
Tweet media one
13
5
79
21
24
211
@remi_rousselet
Remi Rousselet
3 years
I made some pretty cool progress in a custom Navigation package this week-end. Not sure if this will lead to something worth publishing, but I'm pleased with the results so far 😄
13
7
212
@remi_rousselet
Remi Rousselet
4 months
I just spent 3hours debugging a failing test, only to find out that the issue was somewhere deep in the Dart SDK. While frustrating, I find it very cool how easy it was to go deeper and deeper in the SDK to pinpoint what exactly is failing. This would've been hell in JS
10
7
212
@remi_rousselet
Remi Rousselet
1 year
Riverpod v2.3.0 is out 🥳 🌊 StreamNotifier + its provider is added. 🤝 The "dependencies" parameter of providers now only need to include scoped providers. 🛑 StreamProvider's .stream is deprecated.
5
13
212
@remi_rousselet
Remi Rousselet
1 year
How to do union types in Dart Thanks, ChatGPT
Tweet media one
16
10
207
@remi_rousselet
Remi Rousselet
2 years
Started working on Riverpod docs I have for goal to do one small doc change every day so that it'll improve over time without me getting overwhelmed.
11
3
208
@remi_rousselet
Remi Rousselet
2 years
A: There's a bug, please fix Me: Sure, could you share a way to reproduce the problem? A: No. Please fix B: +1 I have the problem too Me: but... C: +1 🥲
9
10
209
@remi_rousselet
Remi Rousselet
4 years
Working on a Stackoverflow clone implemented with Riverpod 👀
Tweet media one
11
11
209