Similar to TensorFlow I will not translate, because those are only outdated notes from a code I can’t access anymore, but different from TensorFlow I want to return my studies with Flutter

Algo privado

Para algo que vai ser apenas usado naquele cara. Exemplo a baixo eu apenas posso usar o widget privado dentro da lib. (ou seja, no outro widget) e as variáveis privadas apenas posso usar dentro do widget/funcão que foi declarada:

import 'package:flutter/material.dart';

import './question.dart';
import 'answers.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _MyAppState();
  }
}

class _MyAppState extends State<MyApp> {
  var _questionIndex = 0;

  void _answerQuestion() {
    setState(() {
      _questionIndex = _questionIndex + 1;
    });
    print(_questionIndex);
  }

  @override
  Widget build(BuildContext context) {
    var questions = [
      {
        'questionText': 'What\\'s your favorite color?',
        'answers': ['Black', 'Red', 'Green', 'White'],
      },
      {
        'questionText': 'What\\'s your favorite animal?',
        'answers': ['Rabbit', 'Snake', 'Elephant', 'Lion'],
      },
      {
        'questionText': 'Who\\'s your favorite instructor?',
        'answers': ['Max', 'Max', 'Max', 'Max'],
      },
    ];
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('My First App'),
        ),
        body: Column(
          children: [
            Question(
              questions[_questionIndex]['questionText'],
            ),
            ...(questions[_questionIndex]['answers'] as List<String>)
                .map((answer) {
              return Answer(_answerQuestion, answer);
            }).toList()
          ],
        ),
      ),
    );
  }
}

Const vs Final

class Question extends StatelessWidget {
  final String questionText;

  Question(this.questionText);

  @override
  Widget build(BuildContext context) {
    return Container(
        width: double.infinity,
        margin: EdgeInsets.all(10),
        child: Text(
          questionText,
          style: TextStyle(fontSize: 28),
          textAlign: TextAlign.center,
        ));
  }
}

@required

Para um parâmetro ser obrigatório em uma Widget, precisa do required

class Question extends StatelessWidget {
  final String questionText;

  Question(@required this.questionText);

  @override
  Widget build(BuildContext context) {
    return Container(
        width: double.infinity,
        margin: EdgeInsets.all(10),
        child: Text(
          questionText,
          style: TextStyle(fontSize: 28),
          textAlign: TextAlign.center,
        ));
  }
}

Metodo get

Usado para retornar variaveis com valores dínamico

String get resultPhase {
	if(true) {
     return 'Frase 01'
  }
  return 'Frase 00'
}

Dart Devtools e debug

Nele tem algumas coisas tunadas, como mostrar cada fatia do aplicativo e performance dele.

https://flutter.dev/docs/development/tools/devtools/overview

https://flutter.dev/docs/testing/debugging

Adaptive vs Responsive

Adaptativo é quando tu faz para iOS e Android. Tem que se adaptar com a plataforma.