週刊 Dart & Flutter インプット 4

ntaoo
12 min readFeb 7, 2020

--

毎週金曜日に、@ntaoo がインプットしたDart & Flutterの情報のリンク集をまとめて共有します。

Dark mode対応と、ExceptionとErrorの違いが今回のテーマ。1時間以上あってさすがに長いので飛び飛びで視聴。英語の壁があるのでリスニングが苦手な人には向かないけど、実際のコーディング風景をだらだらと視聴してFlutterに馴染むのもあり。

モバイルとはユーザーが期待する性質が異なるデスクトップに対応するために、マテリアルデザインガイドライン改訂しており、それをFlutterに実装する。

Desktopにも対応したレスポンシブデザインのFlutterアプリのサンプル。

Navigation Railのサンプル。Web Browserでも確認できる。

Flutter frameworkにcontributeする方法、IDE、DartのWASMへのコンパイルの可能性について。

DartのWASMコンパイルについては、WASMのGCサポートの問題があるため現時点ではできない。Skia (C++) のWASMへのコンパイルについては、そうすればパフォーマンスが著しく向上するため、そのオプションをFlutterに組み込んで実験中とのこと。https://skia.org/user/modules/canvaskit

Dart VMチームのエンジニアによる、Dart 1のOptional Type Systemとそれに対応したJIT Compiler、VMについての概説と、AOTコンパイルが必要になったためのDart 2のSemi-OptionalなSound Type Systemへの変更、AOT Compiler、VM、および今後の展望について。

IE11が、Dartのサポート対象ブラウザから外された。

(一部では、日本のIE11の使用率は未だに10%超という報告もあるらしい。サービスのターゲットユーザーによるだろうけど)

Rive(旧Flare)のYoutubeチャネルを発見

gskinnerも発見。どちらもFlutter Interact 19で特集されていたもの。

Webにも対応したローカルDBパッケージはまだ少ないけど、IndexedDBを直接操作するのはすこし辛いので、Flutter on the webが安定する頃にはもう少し増えていてほしい。

この方のブログやキータでは他のトピックでも丁寧な調査結果を書かれているので助かる。

SwiftUIのように、メソッドチェーンでWidgetを構築できるようにする試み。どうやって実現しているのかと調べたら、static extension methodでmethodを生やしてcopyWithを繰り返していた。メソッドの自動生成はしてなさそう。

このリポジトリの現在のサンプルだけでは、Named Parameterを使用したコンストラクタで構築する現在の方法と比較してパフォーマンスが劣化したものにしかならないと思うが、copyWithをうまく隠蔽しているので、スタイル適用済みのWidgetをこれで再利用したり、複数のスタイル適用をひとつのメソッドで拡張することで、CSSのようにスタイルを再利用する手法を確立できないかな。

流行りなんだろうか?私は半年は様子見する。

公式のWidget catalogを1ページで一覧できるようにしたとのこと。たしかに、ざっと確認できて便利。この日本語は機械翻訳かな。

NNDBのlate finalがあれば、Widgetのfieldをfinalにできる場合が増えて良さそう。

Game of LifeのFlutter実装。Game of Life、懐かしいですね。

Flutter Advocating第一人者のmonoさん。

Flutter実装版。package:dioを使用している。すこし見慣れない実装があるので、私とは文化が違うなあという印象。

package:hiveをDBに使用している。実装はなんというか、生真面目。アプリの挙動は快適だった。

素直で無難な実装。コード量が少ないので学習におすすめ。ファイル名命名規則はDartの規約に違反しているけど。

Flutterのプロマネによると、AngularDartはGoogle内部では使われ続けるが外部に広く受け入れられることはないだろうとのこと。

情報源

https://twitter.com/ntaoo が、followさせていただいている方々

最新の情報を中心にしますが、少し古めでも私が見つけた際に有益と判断した情報も載せていきます。情報の網羅性の高さは不明です。継続を重視して省力化しています。

  • 公式情報は優先順位最高にして載せます。
  • それら以外の情報は、私の関心に基づいて適当に間引きます。
  • 基礎は、https://dart.dev/codelabs , https://flutter.dev/docs , Udemyなどのオンラインビデオトレーニングコース、または書籍などで体系的に学んで習得しましょう。

--

--