Flutter Cookbook

Setup

Create project

flutter create project_name

With organisation name

flutter create --org domain.org_name.project_name

Eg: flutter create --org dev.codepur.firstapp

Verify setup status

flutter doctor

Hello Flutter

import 'package:flutter/material.dart';

void main() {
    runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Hello Flutter!',
      home: Material(
        child: Center(
          child: Text('Hello Flutter'),
        ),
      ),
    );
  }
}

Widgets

Stateless Widget

import 'package:flutter/material.dart';

class MyNameWidget extends StatelessWidget {
  MyNameWidget({Key key @required this.name}) : super(key: key);

  final String name;

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text('Hello, $name'),
    );
  }
}

Using meta & default params in constructor

import 'package:flutter/material.dart';

class PersonWidget extends StatelessWidget {
  PersonWidget({
    @required this.name,
    this.language = 'English',
  });

  final String name;
  final String language;

  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text('$name $language'),
    );
  }
}

Stateful Widget

Gestures

GestureDetector(
  onTap: (){},
  onLongPress: _onLongPress,
  child: Text('Tap me'),
);