Flutter & Dart Tips - Week In Review #7
Tags: beginners, codenewbie, dart, flutter
Published: 2021-07-24 23:59:28


Hello Reader,

So far, I have shared with you 38 Flutter\Dart tips. In this 7th post of the Flutter & Dart Tips series, I will be sharing six more.


1- SafeArea is a padding widget that inserts its child with enough padding to keep it from being blocked by the system status bar, notches, holes, rounded corners, and others.

```dart

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        top: true,
        bottom: true,
        left: true,
        right: true,
        minimum: EdgeInsets.all(16.0),
        maintainBottomViewPadding: true,
        child: Text('Check this important text'),
      ),
    );
  }

```

2- Use MediaQuery to get information about the current device size, its orientation, and user preferences.

```dart

...
  
  var orientation, size, height, width;
  // getting the orientation of the app
  orientation = MediaQuery.of(context).orientation;

  //size of the widow
  size = MediaQuery.of(context).size;
  height = size.height;
  width = size.width;

  ...
    
  // checking the orientation
  body: orientation == Orientation.portrait
      ? Container(
          color: Colors.green,
          height: height / 4,
          width: width / 4,
        )
      : Container(
          height: height / 3,
          width: width / 3,
          color: Colors.yellow,
        ),

```

3- Mixins allow you to plug in blocks of code without needing to create subclasses.

```dart

...
  

    mixin Fluttering {
      void flutter() {
        print('fluttering');
      }
    }



    abstract class Bird with Fluttering {
      void flap() {
        print('flap flap');
      }
    }

    class Hawk extends Bird {
      void doHawkThing() {
        flap();
        flutter();
        print('Hawk is Flying');
      }
    }


    main() {
      var hawk = new Hawk();
      hawk.doHawkThing();

    }

```

4- You can pass a function as a parameter to another function.

```dart

  void main() {
    const list = ['London', 'Dublin', 'Belfast'];
   list.forEach(
      (item) => print('City Of $item'));
  }

```

5- Getters and setters are special methods that provide read and write access to an object’s properties.

```dart

  class Rectangle {
    double left, top, width, height;

    Rectangle(this.left, this.top, this.width, this.height);

    // Define two calculated properties: right and bottom.
    double get right => left + width;
    set right(double value) => left = value - width;
    double get bottom => top + height;
    set bottom(double value) => top = value - height;
  }

  void main() {
    var rect = Rectangle(3, 4, 20, 15);
    print(rect.left);
    rect.right = 12;
    print(rect.left);
  }

```

6- There are four different ways to append or concatenate Strings

```dart

  void main() {

  //1- Using ‘+’ operator.

    String str1 = "Dart";
    String str2 = "Is";
    String str3 = "Fun";

    print(str1 + str2 + str3);

  //2- String interpolation.

    print('$str1 $str2 $str3');

  //3- Directly writing string literals.

    print('Dart' 'Is' 'Fun');

  //4- Strings.join() method.

    // Creating List of strings
    List<String> str = ["Dart", "Is", "Fun"];

    String _thestr = str.join();
    print(_thestr);

    _thestr = str.join(" ");
    print(_thestr);
  }

```



See you next week. 👋🏻

> Follow me on <a href="https://twitter.com/_Mo_Malaka_">Twitter</a> for more tips about #coding, #learning, #technology...etc.

> Check my Apps on <a href="https://bit.ly/3h05gQ7">Google Play</a> & <a href="https://apple.co/3hZXoBx">Apple Store</a>

<span>Cover image <a href="https://unsplash.com/@nasa?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">NASA</a> on <a href="https://unsplash.com/s/photos/space?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a> </span>