Open15

Flutter実践入門 | サポートサイト/読者コミュニティ

本ページは「Flutter実践入門」のサポートサイト/読者コミュニティです。

https://zenn.dev/kazutxt/books/flutter_practice_introduction

本の感想や誤字/脱字/リンク切れなどがございましたら、ご気軽にコメント頂ければと思います!!

また、最近こんなものが流行っている/こんなテーマが読みたいというものをコメント頂ければ、執筆を検討したいと思います。

テクニカルな部分や掲載ソースコードで再現不可なども対応させて頂きますが、執筆時と前提が変わっていたり、環境が再現できないものもございますので、基本的には書籍内容に対するご支援とさせて頂きます。

細かくて恐縮です。 typoと思われる箇所を見つけてしまったのご報告します。

Chapter 05 チュートリアル編3:HelloWorldと基本構成の プログラムの基本構成 において

途中StateFulWidgetPを継承した

StateFulWidgetPStateFulWidget

ご報告ありがとうございます。
ご指摘通り、typoでしたの修正いたしました。

Dartのアップデートの影響でエラーが出てしまう箇所があったのでお知らせします。

エラー箇所
初級編4:テスト(Unit/Widget/Integration)>Integrationテスト

https://zenn.dev/kazutxt/books/flutter_practice_introduction/viewer/beginner_test

解消
Null Safety有効化時のUnit Test

https://qiita.com/nukotsuka/items/66236723bf17c4574608
変数 driver 宣言時にlateをつけると直りました
FlutterDriver driver;
late FlutterDriver driver;

ご報告ありがとうございます。
ご指摘の通り、該当チャプターはNullSafety導入前に執筆された部分だったため、修正をさせていただきました。

また、本書が全般的に他の部分でも執筆タイミングの関係で、最新版では動作しない可能性があるため、注意喚起のページとNon-nullable by default(NNBD)が問題だった場合に、問題を解決しやすいように追加ページに情報を記載することにしました。

https://zenn.dev/kazutxt/books/flutter_practice_introduction/viewer/meta_attention

めっちゃお世話になってます!
こちらのローカライズの部分 jp ではなく ja ではないでしょうか?

     supportedLocales: [
       const Locale('jp', ''), //日本語
       const Locale('en', ''), //英語
     ],

https://zenn.dev/kazutxt/books/flutter_practice_introduction/viewer/intermediate_localization#手順6-アプリでの利用

ご報告ありがとうございます!
ご指摘の通り、jpではなくjaの誤記でした。
先程、修正をしてチャプターを更新させていただきました。

説明がとてもわかりやすいので、毎日読んで勉強させていただいています
ありがとうございます!

1点、気になった箇所があったのでお知らせします

Chapter 08 チュートリアル編5:Dartの基本にあるメソッドの名前付きパラメタについての説明ですが
method1(param: 1, param2: "data")ではなくmethod1({param1, param2})ではないでしょうか?

名前付きかつデフォルトパラメタにする場合はmethod1({param = 1, param2 = 'data'})のようになると思います!

よろしくお願いします!

いつもご利用ありがとうございます。

ご連絡ありがとうございます。
該当箇所は、関数定義と関数呼び出しが混ざって記載されており、大変わかりづらく誤解を招く内容となっておりました。
そこで、それぞれ関数定義と関数呼び出しの例を載せたスニペットを掲載することにしました。

勉強させていただいています。ありがとうございます。

Part5-4 IntefitedWidget についてです。

ほぼ重複なので省略しますが、WidgetAとMyInheritedWidgetのString messageをint counterに変更

ということでしたので、String messageint counterと修正して動かしてみたところ、以下のエラーとなりました。

WidgetAのbuild()の

Widgets.dart
MyInheritedWidget _myInheritedWidget = MyInheritedWidget.of(context);

MyInheritedWidget.dart
static MyInheritedWidget of(BuildContext context) => context.dependOnInheritedWidgetOfExactType<MyInheritedWidget>() as MyInheritedWidget;
// type 'Null' is not a subtype of type  'MyInheritedWidget' in type cast

と、ツリーの親にMyInheritedWidgetがいないため?Nullになっているのだと思いますが、
具体的にどう修正すると値を変えない例となるのかがわからず。。。助言いただけるとありがたいです。

ご連絡ありがとうございます。
まず、頂いたエラー事象を再現することができました。

結論といたしましては、ご指摘/ご認識の通り。値を変えない例のmain.dartのソースコード例の中に、MyInheritedWidgetが存在せず、Widgetツリーを遡ってもMyInheritedWidgetが見つからずnullが返却されるという事象が発生しておりました。
※改定の過程で抜け落ちたものと思われます。申し訳ございません。

取り急ぎ、先程「上級編4:InheritedWidget」のページを更新し、Scaffoldの上位にMyInheritedWidgetを入れエラーが出ないように修正いたしました。

※エラー自体は、上記対応で回避できるものの、最適化やわかりやすさなどには改善の余地があると考えておりますので、次回以降の改定時に検討させていただきます。

IoT系のハードを作ることが多いのですが、BLEでスマホと連携することが多く、最近Flutterを使っています。
基本的なところから、まとめていただいる、kazutxtさんのFlutter実践入門、大変わかりやすく参考させていただきました。
ありがとうございます。

一点、細かいですがソースとキャプチャーの相違を見つけましたので、お知らせします。
Chapter 12>01.画面の構築>Step1.文字を表示させる
この箇所、ソースと画面キャプチャーが違ってませんでしょうか。
ソースでは以下のようにHelloWorldになっていますが
~body: Text("HelloWorld"),
画面キャプチャーでは「初めてのテキスト」となっております。
ご確認いただけれと思います。

ご連絡ありがとうございます。
また、日頃から本書をご利用いただきまして、本当にありがとうございます。

コメント頂きました箇所につきましては、ご指摘の通りソースコードとキャプチャが一致しておりませんでした。(キャプチャ側が誤り)
つきましては、先程修正を行い、該当ページを更新させていただきました。

いつも勉強になっております、執筆ありがとうございます。

大変恐縮ではございますが、Bluetoothを使用した内容について今後追加の予定はありますでしょうか?

いつもご利用ありがとうございます。
申し訳ございませんが、現時点で執筆の計画はしておりません。

ただし、今回コメントを頂きまして、今後市場やニーズなども含めて調査を行い、重要度が高い場合には執筆を検討させて頂きたいと思います。

ログインするとコメントできます