10 Flutter tips - season 2 - part 3/10
Tags: flutter
Published: 2021-11-21 09:49:03

Now we are already at the 3rd part of the 2nd season of this wonderful format.

Today we are dealing with **packages** again, but also with **VSCode Extensions**. We mainly deal with the user interface, so... Let's go and **Happy reading!**

# Animate do

I saw this package 1 day before I started writing this article and immediately renewed my entire app. Doesn't sound motivating now? Well, let me first explain what this package can do. I personally hate animations. And I think many agree with me there. Still, nowadays you have to use animations to make the app appealing to the user. And that's where [animate_do](pub.dev/packages/animate_do) comes in. Animate do offers a **huge selection of already ready animations** that you can apply to any widget. Here is a list of all the animations, of which there are so many more sub-points.

- FadeIn Animations
    - FadeIn
    - FadeInDown
    - FadeInDownBig
    - FadeInUp
    - FadeInUpBig
    - FadeInLeft
    - FadeInLeftBig
    - FadeInRight
    - FadeInRightBig
- FadeOut Animations
    - FadeOut
    - FadeOutDown
    - FadeOutDownBig
    - FadeOutUp
    - FadeOutUpBig
    - FadeOutLeft
    - FadeOutLeftBig
    - FadeOutRight
    - FadeOutRightBig
- BounceIn Animations
    - BounceInDown
    - BounceInUp
    - BounceInLeft
    - BounceInRight
- ElasticIn Animations
    - ElasticIn
    - ElasticInDown
    - ElasticInUp
    - ElasticInLeft
    - ElasticInRight
- SlideIns Animations
    - SlideInDown
    - SlideInUp
    - SlideInLeft
    - SlideInRight
- FlipIn Animations
    - FlipInX
    - FlipInY
- Zooms
    - ZoomIn
    - ZoomOut
- SpecialIn Animations
    - JelloIn

Okay, that was a lot, but I just wanted to show you the possibilities of this package. As I said, this package is almost a must for the next app.

# MacOS UI

If you've ever developed an app for macOS using Flutter, you may have noticed it. Flutter doesn't have any **good widgets** that are only **for macOS**. That's why there's [macos_ui](https://pub.dev/packages/macos_ui). This package makes it easy for you to create apps that look exactly like they were made with Swift. Again, there are an incredible number of widgets and a very long list, but I don't need to list them this time.

This is just one example of the many possibilities:

![Untitled](https://imgur.com/waUgeWY.png)

# Fluent UI

Even with Windows (especially with Windows 11) there are no good widgets in Flutter. That's why the package [fluent_ui](https://pub.dev/packages/fluent_ui) was created. Again, there is a **huge selection of widgets** to make your app look like a real **Windows app**.

It supports Light/Dark Theme, the Windows font, Header, Subheade,r Title, Subtitle etc, Reveal Focus, Page transitions, Drill in, Navigation and on top of that all the "Widgets".

This is what your app would look like in Light Theme (without the special widgets of course)

![https://docs.microsoft.com/en-us/windows/uwp/design/style/images/color/light-theme.svg](https://docs.microsoft.com/en-us/windows/uwp/design/style/images/color/light-theme.svg)

# Onboarding overlay

You probably know it from many apps by now, an **onboarding, where the app is explained to you**. You can do exactly that with the package onboarding_overlay. I think I don't have to explain much when I show you this video:

![https://github.com/talamaska/onboarding_overlay/blob/master/screenshots/demo.gif?raw=true](https://github.com/talamaska/onboarding_overlay/blob/master/screenshots/demo.gif?raw=true)

The documentation for this package is great and very self explanatory. 

# Flutter Material Pickers

As the name of this package suggests, you can use it to **call various pickers from Material Design**. Some of them are new, so are not included in Flutter, while others have been improved.

![https://raw.githubusercontent.com/codegrue/flutter_material_pickers/master/images/main_convenience_pickers.png](https://raw.githubusercontent.com/codegrue/flutter_material_pickers/master/images/main_convenience_pickers.png)

# Flutter Text Field Fab

Everyone surely knows the normal **FloatingActionButton**, but what if you want to display a cool **text field** from it. Well, then this package is just the right thing for you. The look of this package is really well done and is very easy to implement in the code.

![https://raw.githubusercontent.com/haefele-software/flutter_text_field_fab/main/assets/flutter_text_field_fab.gif](https://raw.githubusercontent.com/haefele-software/flutter_text_field_fab/main/assets/flutter_text_field_fab.gif)

```dart
import 'package:flutter/material.dart';
import 'package:flutter_text_field_fab/flutter_text_field_fab.dart';

class SomeListView extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return Scaffold(
            floatingActionButton: TextFieldFloatingActionButton(
                'Search...',
                Icons.gamepad,
                onChange: (String query) => filterList(query),
                onClear: () => clearList(),
            ),
            body: ...);
    }
}
```

# Flutter Login

This package is just amazing. It gives you a **perfectly animated** widget (or rather screen) for **login**. Here is an example:

![https://github.com/NearHuscarl/flutter_login/raw/master/demo/demo.gif](https://github.com/NearHuscarl/flutter_login/raw/master/demo/demo.gif)

The great thing is that you can customize everything here (and I mean everything).

Oh, and the implementation is also very simple:

```dart
return FlutterLogin(
      title: 'ECORP',
      logo: AssetImage('assets/images/ecorp-lightblue.png'),
      onLogin: _authUser,
      onSignup: _signupUser,
      onSubmitAnimationCompleted: () {
        Navigator.of(context).pushReplacement(MaterialPageRoute(
          builder: (context) => DashboardScreen(),
        ));
      },
      onRecoverPassword: _recoverPassword,
    );
```

# Flutter widget snippets

Now we come to an extension. This [Extension](https://marketplace.visualstudio.com/items?itemName=alexisvt.flutter-snippets) offers you a lot of **snippets for different widgets**. I can only recommend to install it.

# Flutter Intl

Multi Language Support should be known to everyone. But the constant implementation of it in the app can be really annoying. That's why the VSCode extension [Flutter Intl](https://marketplace.visualstudio.com/items?itemName=localizely.flutter-intl) exists. It creates a **binding between the .arb files and the Flutter App**.

So: I can recommend this extension to everyone who wants to implement multiple languages easily in his app.

Oh, and if you use a Jetbrains IDE (IntelliJ IDEA or AndroidStudio), you can find [here](https://plugins.jetbrains.com/plugin/13666-flutter-intl) the extension.

# Flutter Riverpod Snippets

If you use Riverpod, then you should definitely check out this extension. It was developed by the GDE Robert Brunhage and makes the **development with Riverpod very easy**. 

You can easily download it [here](https://marketplace.visualstudio.com/items?itemName=robert-brunhage.flutter-riverpod-snippets).

# Conclusion
Now we have come to the end of another episode of 10 Flutter tips.

I really hope you enjoyed it! If so, I would be very happy if you could give this post some **claps** and **follow** me if you don’t want to miss any more posts!


Want to check out some more quality content from me? Then I recommend you check out my **[Twitter](twitter.com/tomicriedel)** account and follow me there too! You’ll get **daily motivation** there and find great **threads** about **programming** and **productivity**!


**Bye and have a great day!**