週刊 Dart & Flutter インプット 1

ntaoo
10 min readJan 17, 2020

--

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

Flutter Clock Challenge

締め切り迫る(January 20, 2020 at 11:59pm PST)。

Flutter Widget of the Week

Image

FlutterのWidgetはimage loading中のアニメーション表示等の典型的なユースケースを考慮して、named constructor他の覚えやすい手法で提供してくれるところが素晴らしい。

着々と進むFlutterのPWA対応

さっそくPWA対応Flutterのデプロイをやってみた記事がでた。

Text in Flutter: Building a fancy chat bubble at GDD China

Textの制御方法のデモがとても勉強になった。Strutで行間を統一したり、画像をWidgetSpanを用いてインライン化して、まるで絵文字のような文字の連なりの一部に見えるように表示したり等々。

この能力を支えるのはLibText (C++)で、以前はChromiumのBlinkを使っていたが、Webのレガシー依存やライセンス問題を回避するため、LibTextを開発して切り替えたそうだ。

package:get_it, service locator patternの解説

解説の質が高い。

Packages

Lantern

Firestoreのスキーマ用DSLを定義して、多言語(Swift, Dart, TypeScript)のFirestore modelコードとsecurity ruleの生成をするライブラリ。100%Dart製。(私はまだ試していません)

qrscan

package:qrscanをそれを用いたQRコードリーディングアプリのサンプル

DShell

シェルスクリプトの代わりにDartでスクリプトを書く際の書きやすさを上げる試み。

コードの雰囲気を掴むにはこれを参照。https://github.com/bsutton/dshell#our-first-real-script

基本的なコマンドはビルトインされている。https://github.com/bsutton/dshell#what-commands-does-dshell-support

Static extension methodをうまく使って、従来のDartコードよりもなめらかにシェルスクリプトの実行結果をDartコードで引き継いで書ける。まだ若いので、もうすこし成熟したら採用を再検討。Dart中心のプロジェクトでは、DShellを採用するかは別として、シェルスクリプトやPythonスクリプトよりもDartでスクリプトを書くほうが概して生産性が高い。

関連: Grinder

こちらは成熟しており安定。

GetFlutter (オープンソースUIライブラリ)

バッジやカルーセルなどのコードがオープンソースになっているので、これをそのまま使うなり実装の参考にするなりできる。

Ionicと同一の組織?

サンプルアプリ

仮想通貨コンバートアプリとメトロノームアプリ

どちらも学習に適したコードサイズ。

FlutterでSQLiteにbase64でimageを保存する方法の説明とサンプルコード

ソーティングアルゴリズムのVisualization

ソーティングの経過をStreamでUIに通知してCustomPaintで描画している。ソースコードつきのビデオ解説。

How to Fetch preview of link in flutter

OGPなどの情報を表示するコーディングの解説。htmlをparseして必要な情報を表示するだけ。

Off-JTで縫合の出来を評価するAngularDart製クライアントアプリ

Paperとともに公開されている。現役医師という経歴もアプリの用途もとてもユニーク。

その他

Flutter採用のリスク分析

私も、GoogleAdsクライアント等の第一級のミッションクリティカルなアプリがFlutterで開発されている事実をもって、今度は本物だと思う。

情報源

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

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

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

--

--