万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    prefer const with constant constructors.のやつ

      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Center(
            child: const CircularProgressIndicator(),
          ),
        );
      }

    これで以下の警告がうざい。

    prefer const with constant constructors.

    これ、 https://dart-lang.github.io/linter/lints/prefer_const_constructors.html

      @override
      Widget build(BuildContext context) {
        return const Scaffold(
          body: Center(
            child: CircularProgressIndicator(),
          ),
        );
      }

    Scaffoldの前にconstを持って行ったら解決。

    FlutterのUdacityの問題

    オーバーライド

    f:id:shinriyo:20190915172254p:plain

    Stateの流れ(ライフサイクル)

    f:id:shinriyo:20190915172258p:plain

    構成

    f:id:shinriyo:20190915172331p:plain

    21. Quiz: Debug Stateful Widgets

    Udacity

    画面見えないので「Padding」追加した。 こんな感じに f:id:shinriyo:20190915173005p:plain

    import 'package:flutter/material.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: MyHomePage(),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      MyHomePage();
      @override
      createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      int _counter = 0;
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Center(
            child: Column(
              children: <Widget>[
                // ここ勝手に追加しました。しないと見えないw
                Padding(
                  padding: EdgeInsets.all(20.0),
                ),
                Text(
                  'You have pushed the button this many times:',
                ),
                Text(
                  '$_counter',
                ),
              ],
            ),
          ),
          floatingActionButton: FloatingActionButton(
            onPressed: () {
              _counter++;
            },
            child: Icon(Icons.add),
          ),
        );
      }
    }

    QUIZ QUESTION

    Examine the code above and determine where setState should be called. → 上のコードを調べて、setStateを呼び出す場所を決定してください。

    • When the counter variable is incremented in _MyHomePageState_MyHomePageStateないのカウンターをインクリメントしているところ。
            onPressed: () {
              setState(() {
                _counter++;
              });
            },

    この記事が参考になる FlutterのsetStateとは? - Qiita setStateではこの足したことをクラスに伝えるということをしている。 この伝える処理があることで+ボタンを押すと表示される数字が増えている。setStateがないと+ボタンを押しても画面が更新されず表示されている数字が増えない。 ちなみに以下でもいいっっぽい。

    _counter++
    setState((){});
    • Inside the Text widget for the $_counter, in _MyHomePageState_MyHomePageState内のTextウィジットの内部。ウィジットで呼ぶのはおかしいかと。

    • We should nest return MaterialApp in a setState, in MyAppMyApp内のreturn MaterialAppでネストしてsetStateを入れる え・・・無理

        return MaterialApp(
          home: MyHomePage(),
        );
    • We don't need to setState() for incrementing an integer →integerでインクリメントするためにsetState()はいらない。 やらんと更新がないよ・・・。

    UdemyのFlutter系

    https://medium.com/flutter-jp/flutter-learning-c5640c5f05b9

    ここでオススメされているやつ