「Node学園 34時限目 jsconf.eu 報告会」に参加してきました

  • Node学園 34時限目 jsconf.eu 報告会に参加してきました。

nodejs.connpass.com

2019.jsconf.eu

タイトル 登壇者
JavaScript Package Manager 2019 yosuke_furukawa
Cloudflare Workersの紹介 dorayakikun
Node.jsとWebAPIのこれまで、現在、これから Leko
jsconf.eu 報告会 Performance Empathy 編 tomonari-takahashi
TypeScriptでコマンドラインパーサー Akito0107

JavaScript Package Manager 2019

  • yosuke_furukawaさん

JSのPackageManager

  • npm
    • npm inc
    • npm cli
    • npm reistry
  • yarn

npm

  • npmの仕組み
    1. ローカル依存ファイルを読む(package-lock.jsonとか)
    2. 存在しないpackageのメタデータをfetch
    3. 木構造を計算して実行
    4. packageのtarをダウンロード
    5. インストールスクリプト実行
  • ダウンロードが高負荷
    • fetchしてgunzipしてコピーする
    • Network負荷
    • CPU負荷
    • FileIO負荷

tink

  • 新しいパッケージマネージャー
  • npm cliをもとにして作られてるもの
    • ゆくゆくはnpmに統合
  • npm iの処理を実行時にやればいいのでは
    • node_modulesを仮想上のフォルダにする
    • ランタイムでモジュール解決するからnpm iがいらない
      • コピーしないからFileIO改善
      • cloneして実行するだけでよくなる
  • zero install
  • node main.jsではなくtink sh main.jsとするtinkで実行できる
  • prepareとunwind
    • prepareは事前にmoduleをfetch(本番はこれでやるとよい)
    • unwindは事前にnode_modulesを実体化

loadmap

  • npm v8でtinkがnpmに統合される

yarn

  • yarnのv2でも同じzero installに取り組んでいる

今後

  • npmもyarnもzero installになっていく
  • npmとyarnどちらも有意差はまだない
  • まだexperimentalな段階

JavaScript Registryの今後

  • JavaScript Registryとは
    • Packageをバックで管理するサービス
  • JavaScriptのRegistryをビジネス的に成功させるのは難しい
    • public moduleは無償で提供
    • アクセスコントロールするなら有償
  • npmは100万モジュールある
    • rubyのgemは30万
  • Entropic
    • 中央集権ではなく分散管理していこう
    • npmにつながる新しいregistry
    • みんなで治験を高めて分散管理できる状態を目指す

Cloudflare Workersの紹介

  • dorayakikunさん

wasm

  • ここ1~2年盛り上がってきた
  • JSConf EUでのwasmのセッション3つ

Webの現状

  • JSのbyteサイズが年々上昇している
    • この3年でモバイルは50%増加
  • Time To Interactive
    • TTIの平均値9秒以上

既存の戦略

  • SSR + Cache
    • Time to First Byteが遅い
  • CSR + Cache
    • FCPからTTIまでラグがある
  • どれもトレードオフがある
  • => Edge Side Rendering

Edge Side Rendering

  • エッジサーバでhtmlをrendering
  • SSRCSRのいいとこ取り

Cloudflare Workers

  • エッジサーバ上でserverlessアプリを動かせるサービス
  • 言語はjsかwasm
  • デプロイはwebかwrangler
  • 要素技術
    • V8のIsolate

Edge Side Renderingは有効か

  • グローバルなサービスだと旨味がありそう
  • エッジサーバで何させるかは議論の余地ある

Terrarium

  • Fastlyが提供するEdge Computing Platform
  • wasmのみ

Node.jsとWebAPIのこれまで、現在、これから

  • Lekoさん

NodeとWebAPIのこれまで

  • ブラウザのJSの仕様/NodeのJSの仕様
  • 片方にあったやつをもう片方でも実装されたりとか
    • 同じようなことなのに微妙に違うとか
  • NodeとWebAPIを近づけようとしてる
    • URLSearchParams
    • TextEncoder
    • Wrker Threads
    • Performance Timing API
  • 議論中
    • StreamsAPI
    • FetchAPI
      • 仕様がとても複雑
      • Nodeで全部再現できるのか、再現する必要があるのか

まとめ

  • 多くのWebAPIがNodeに取り入れられている
  • ワークフローを改善してより改善されていく

参考

blog.leko.jp

jsconf.eu 報告会 Performance Empathy 編

  • tomonari-takahashiさん

パフォーマンスに関して大切なこと

  • デフォルト/デファクトツールを使う
    • ブラウザデフォルトでできるようになってることも多い
    • lazy loading
    • virtual-scroller
  • パフォーマンスをマネジメント
    • Performance budget

TypeScriptでコマンドラインパーサー

  • Akito0107さん

コマンドラインパーサーを作る

  • 有名なライブラリがいろいろある
    • minimist
    • commander
  • オプションが複雑だとどれもつらい
    • 型がほしい
    • => 作った

github.com

「PORT Firebase × Flutter」に参加してきました

  • PORT Firebase × Flutterに参加してきました。

stamp.connpass.com

タイトル 発表者
Flutterで使うCloud Firestore Shogo Yamada
Flutter × Firebase Crashlytics 菊池 紘
Firestoreのトランザクション 村本 章憲

Flutterで使うCloud Firestore

FlutterとFirebase

  • FlutterでFirebaseを使うプラグインが豊富
    • 基本的に全部ある
    • Firestoreのincrementも最近対応
  • 使い心地はWeb版Firebaseっぽい
  • Flutterだから使えないみたいな話は基本的になし
  • ネイティブでドキュメント通り実装されたものをFlutterから呼んでるだけ

開発スピード

  • Flitterはホットリロードあるし快適
  • Firebase使えばサーバサイドメンテ必要なし
  • Flutterの知識やFirestoreの知識は必要

今後の動き

  • Firestoreに新機能がでるとFlutter側にissue立ってすぐ対応される
  • Flutter × Firestoreではやってる実績はまだ見ない

Flutter × Firebase Crashlytics

  • 菊池 紘さん(Diverse)

youbrideというアプリ

  • 既存アプリをFlutterに置き換えている
  • ScopedModelアーキテクチャ
  • gRPCでサーバと通信

Flutterをproductionで運用

  • クラッシュレポートどう取得する
    • firebase_clashlyticsという公式のプラグイン(まだ開発段階のもの)
    • 導入面倒だけどマニュアル通りやればよい
  • 端末で発生した例外を記録してサーバに送ってくれる
  • Dartの例外のでかたがまだ微妙
    • 全部非致命的エラーになる
    • 拡張子が.javaになる
    • 例外の種別不明
    • 難読化マップ非対応

競合サービス

  • Fabric Crashlytics
    • Firebase Clashlyticsとほぼ同じ
    • 2020/3/31に終了予定
  • Sentry
    • 有料
    • 難読化マップ非対応?

Firestoreのトランザクション

  • 村本 章憲さん(Stamp)

FireStoreでtransaction

  • 同時に更新しようとしたときに問題が起きる
  • update time
    • 1/sec
    • 一秒に一回しか更新できない
  • runTransaction()
    • read/write/observe/commit/rollback
    • read -> write -> commit
    • observerがwriteを監視してる
    • 他でwriteされてたらrollbackしてretry
    • 5回retryしてだめだとそこで終わる
    • 1秒間に100更新が来たら95は失敗する
  • Distributed counter
    • shardingする
    • 増やせばいいというものでもないのでどれくらいshard数にするかは設計しだい

firebase.google.com

メモ

  • FlutterでCI

www.bitrise.io

codemagic.io

「Ginza.js#2」に参加してきました

  • Ginza.js#2に参加してきました。

ginzajs.connpass.com

タイトル 発表者
Vue初心者はVuetifyで遊んでみよう きり丸
Jestを使ってVueコンポーネントとVuexストアのテストコードを書いてみよう! karamage
vue×firebase製のなんちゃってCMSで、仕様決めから開発まで使い倒してる話@受託 MacotoChitose
TOEIC400点のRubistがセブのオフショアでReactNativeでアプリ開発した話 DYoko0701
Ionic/Vueを紹介してみる 果物リン
Figma Pluginを作ろう! takanorip
/f(ig|usu)ma/の話 Quramy

Vue初心者はVuetifyで遊んでみよう

  • きり丸さん

対象

Vuetify

vuetifyjs.com

Jestを使ってVueコンポーネントとVuexストアのテストコードを書いてみよう!

  • karamageさん

VueアプリでJestのセットアップ

  • jestとvue-test-utilsをインストール
  • Jest
    • JSのテストシェアNo1
    • テスト周り全部入り(他のテストツールだといろいろ組み合わせたりする必要あった)
    • カバレッジも取れる
    • スナップショットテストもできる
  • Nuxtアプリに入れるときはbabel周りでハマることもある
    • バージョンいじったら解消された

vue×firebase製のなんちゃってCMSで、仕様決めから開発まで使い倒してる話@受託

  • MacotoChitoseさん

VueとFirebase

  • 仕様決めの段階からコンポーネントを作って見せていく
    • 早めにフィードバックもらって軌道修正できる
  • Firebaseに仮データ入れて動作確認できる

TOEIC400点のRubistがセブのオフショアでReactNativeでアプリ開発した話

  • DYoko0701さん

ReactNativeでのアプリ開発

  • アプリ
    • ReactNative
  • サーバ

オフショア

  • なぜセブ?
    • 中国とかインドとかは単価上がってきてる
    • 公用語英語
  • ネットワークとても遅い(オフィスでも10M/bps)
  • 新しい技術より枯れたものの方が得意なことが多い
  • 既存の改修だと説明しないといけないので大変

Ionic/Vueを紹介してみる

  • 果物リンさん

Vueでネイティブアプリ

  • Weex
  • VueNative
  • どちらもあまり使われてない

Ionic

  • Web技術でネイティブアプリを作れる
    • Cordovaベース
  • v3まではAngularだった
  • v4からはVueやReactも使える

qiita.com

Making Figma Plugins with TypeScript

  • takanoripさん

Figma

  • Figma Designで検索
  • Web版とアプリ版がある

medium.com

Figma Plugin

  • 今まではPlugin作れなかった
  • 6/11にFigma Plugins betaが発表された
  • API経由で自由に機能にアクセスできる
  • TypeScriptで書ける(公式がおしてる)
  • WebWorker上のSandboxで任意のコードを動かせる

/f(ig|usu)ma/の話

  • Quramyさん

fusuma

hiroppy.github.io

github.com

  • markdown(mdx)でスライドが書ける
  • コードも貼れる(ハイライトついてくれる)

fusumaとfigma

  • .mdをスライドにするツールは過去にもいろいろあった
    • 図を入れるのがめんどくさかった
  • figmaならiframeでembedできる
  • mdxにiframeを入れたらよさそう
  • iframeの読み込みが遅かったのでgulpタスクでimgタグに置き換えた

「#portals_study」に参加してきました

  • portals_studyに参加してきました。

web-study.connpass.com

タイトル 発表者
Hands-on with Portals uskay
はてなにおけるPortals pastak
hitode909

Hands-on with Portals -seamless navigations on the web-

  • uskayさん

web.dev

Webのパフォーマンス

  • Lighthouseは最初のページがでるまでの速さをはかる
  • ページ遷移を快適にしたい
    • SPAにする?
    • SPA覚えてなくても使えるものはないか?
    • => Portals

iframeと似ている

  • portalsはiframeのようなもの
  • portalsは埋め込んだページにそのまま遷移できる

Portals

  • Canaryでflugをたてると使える
  • Portals自体がアニメーションを持つわけではない
    • 遷移するタイミングでアニメーションをあてるいい
    • transitionが終わったタイミングでportsl.activate()
  • activateすると前のページのportalオブジェクトを取得できる
  • portalで表示しているページはユーザのインプットを受け付けない(セキュリティの都合、将来変わるかも)
  • portalで表示しているページとはメッセージでやりとりできる
  • activateするとhistoryが消えてしまう(直してる)
  • portalのネストはできるけどactivateできるのは手前のものだけ
  • ホワイトリストしたページでしか表示できないとかは検討中
  • WICGで仕様が議論されている

wicg.github.io

github.com

はてなにおけるPortals

  • pastakさん
  • hitode909さん

マンガビューワ

  • Webで快適にマンガを読む
    • URLを開くとすぐ読める
    • スマホでもPCでも
  • 画像の先読み
  • 次のエピソードの先読み
  • フルスクリーンで読み続けたい

Portals

  • 使用感
    • 簡単に埋め込める
    • 簡単に遷移させられる
  • portalsとして埋め込んでもらえるようにすることも考えてる
    • 今はiframeで提供している

「ABC 2019 Spring」に参加してきました

  • Android Bazaar and Conference 2019 Springに参加してきました。

abc.android-group.jp

  • 今回はAndroidのハンズオンに参加してみましたが、初心者でもわかりやすく且つHelloWorldの2歩3歩先くらいまでの内容でとても満足度の高いハンズオンでした。

teampansaru.connpass.com

  • ARのハンズオンも気になっていましたが、資料公開されているようなので個人的にやってみたいと思います。

japan-android-group.connpass.com

タイムテーブル

10:10~11:10

会場 タイトル 発表者
大講義室 Google I/O 2019 Recap! 鈴木拓生/Google

11:10~11:55

会場 タイトル 発表者
大講義室 円周率世界記録31.4兆桁への道 岩尾エマはるか/Google

13:00~13:45

会場 タイトル 発表者
大講義室 IBM CloudではじめるNative Android Application開発 萩野たいじ/IBM
4101 Google I/O 2019 Recap MLセッション(入門からアプリ化まで) 足立昌彦/株式会社カブク
4103 Service WorkerではじめるオフラインWebアプリの実装 堀正斉/PWA Beginners
4103 Background Sync APIを使った実装について 平田智子/PWA Beginners
4104 準天頂衛星受信機の動向について 松岡繁/(一財)衛星測位利用推進センター
4105 45分で作れるかCPU 今岡通博/日本Androidの会FPGA
4201 アプリとゲームのセキュリティーを高めよう ロドリゲス オスカル/グーグル合同会社
4202 Google I/O 2019 アプリの裏側 萩倉健支/Google

14:00~14:45

会場 タイトル 発表者
大講義室 プロダクトは歳を重ねるととどうなってしまうの 矢野りん/バイドゥ株式会社
4101 スマホ業界とエンジニアキャリア形成 里山南人/株式会社ビデオマーケット
4103 Nuxt.jsとFirebaseを使ったPWA開発事例 菅家大地/株式会社TAM
4104 産業用組込み機器へAndroid搭載の可能性 片山健久/ルネサスエレクトロニクス(株)
4105 最低限機能・格安・長持ちスマホのためのOS「SUNBLAZE OS」 常盤瑛祐/株式会社アメグミ
4201 〜初心者歓迎〜みんなで 東京公共交通オープンデータチャレンジしよう! イボギョン/GMOペパボ株式会社 ちーむパンサル
4202 Googleアシスタント最新情報と他プラットフォームへの拡張方法 一円真治/ヤフー株式会社
4304 TensorFlowで趣味の画像収集サーバーを作る 2019年5月号 Keiji ARIYAMA/めがねをかけるんだ / C-LIS CO., LTD.

15:00~15:45

会場 タイトル 発表者
大講義室 AI世代のデジタル教育―これからの時代を生きる子どもたちや私たちに必要なチカラ― 五十嵐悠紀/明治大学総合数理学部
4101 いざ就活!〜議事録係がAndroidエンジニアになるまで〜 林田守加/ちーむパンサル
4103 「5分で作れる!Glideappsではじめる超簡単PWA(プログレッシブ・ウェブ・アプリ)」 kinneko/JAG金沢支部
4103 PWA+TWA 進藤龍之介/日本Androidの会 Web Working Group
4104 OSAWGの近況と注目のRISC-VをFPGAで動かそう 鈴木直康/株式会社芳和システムデザイン 日本Androidの会運営委員
4105 電子立国再生への思いと、今挑戦していること 大橋太郎/株式会社電波新聞社 編集本部/出版部
4201 JavaAndroidを始めた人のためのJava -> Kotlinライブコーディング 中川幸哉/ウォーターセル株式会社
4202 Android Qのセキュリティ/プライバシー概要 木村隼人/日本Androidの会学生部
4304 食農を支えるプラットフォーム「みどりクラウド」と今後の展開 持田宏平/株式会社セラク

16:00~16:45

会場 タイトル 発表者
大講義室 クロスするリアルと仮想ー経済の視点 伊藤洋一/三井トラスト基礎研究所
4101 Androidにおけるパフォーマンスチューニング実践II 南里勇気/株式会社FiNC Technologies
4103 ServiceWorkerの実装 宮本将/日本経済新聞社
4104 空飛ぶクルマ「SkyDrive」の開発について 柳村将平/株式会社SkyDrive
4105 つらいと評判のAndroid BLEをまだまだ使い倒す話 原田賢太/JapanTaxi株式会社
4201 古から最新までのAndroidアンチパターン あんざいゆき/株式会社ウフィカ
4202 Flutter Recap from I/O 2019 + α 神原健一/NTTテクノクロス株式会社
4304 2019年春の技術であのARアプリを再現する 高橋憲一/株式会社カブク

Google I/O 2019 Recap!

Google I/O 2019

  • テーマ
    • Building a more helpful for Google everyone
    • privacy

Building more helpful for Google everyone

  • 全ての人々のためにより役立つGoogle
  • Duplex on Web
  • 検索結果をARで表示
  • Google Assistant
    • 30言語80カ国
    • 音声だけでスマホが操作できちゃう
      • OK Google言わなくていい
      • 個別のアプリの操作もできちゃう

機械学習/AI

  • Googleが提供する機械学習/AI
    • ML Kit
      • Firebase
      • モバイル
    • Google Cloud
      • Auto ML
      • スケーラブルに
    • TensorFlow
      • フレキシブルに
      • 自分でモデルを作る

ML Kit

  • TensorFlow Liteと比べて
    • そのままだとapkサイズ大きくなってしまうがML Kitだと解消できる
    • ML Kitなら一部のユーザだけに提供とかできる
  • ML Kit on device translation
    • オフラインで翻訳
    • 全てデバイス上で完結
  • Object Detection & Tracking
  • AutoML Vision Edge
    • モデルを作ること自体もAIにやらせる
    • 写真をたくさんあげたらかってに学習してくれる
    • 一度おとせばオフラインでも

TensorFlow

Android Q

  • プライバシーに関する機能が多い
  • 表面上は変更少ないけどアクセスのしかたなど変わるので改修必要

Kotlin first

  • Googleが作るサンプルなどはまずKotlinで提供
  • Googleのアプリの多くはKotlinだけで書かれている
  • Top 1000の内44%はKotlin
  • 新しい機能はあJavaはBest Effortだったり提供なかったりする
    • JetCompose

CameraX

  • Jetpackライブラリ
  • Camera2 APIを更に進化
  • Android L以降をサポート
  • ML Kitとの連携しやすい

Android Studio

  • Project Marble
  • 新しい機能追加より既存のものの改善重視

Google Play

  • latingの仕組みが変わる(今年の夏から)
  • 今までは全ての期間のLatingを平均していた
    • 直近の数字を使ったものに変わる

Design

  • Dark Theme
    • Android Qから強制的にダークモードにできる
    • アプリ作る人も対応が推奨
    • ダークモードでは彩度下げるとよい
  • バッテリー
  • Accessibility
  • Material Designも対応

Web & Chrome

  • Chrome 10年, Google 20年, Web 30年
  • Lazy Loadingをブラウザ側で
  • Flutter for Web

Privacy

  • Incognito mode
    • シークレットモードをyoutubeやmapでも
  • Live Caption
    • 動画に自動で字幕を付ける機能
    • 全てon device
  • 機械学習
    • on deviceで
    • Federated Learning
    • AIによるバイアスの発生を防ぐ仕組み

円周率世界記録31.4兆桁への道

  • 岩尾エマはるかさん(Google)

円周率と計算機の歴史

  • なぜ円周率を計算するのか
    • 人間の計算に関する進歩は円周率をどれくらい計算できるか
  • 紀元前で3.1まで分かっていた
  • なぜ円周率計算が難しいか
    • 桁数が多くメモリ要件が厳しい
    • 計算性能そのものは重要でない

今回の記録

  • 31兆1592億6535万....桁計算した
  • クラウドを使ったはじめての記録
  • 121日かかった

クラウドを使う利点

  • 数分でクラスタ作成できる
  • ハードウェア障害が少ない
  • スナップショットでバックアップできる

振り返り

  • 既存プログラムを4ヶ月走らせただけでは?
  • 始める前は誰も
    • ネットワークドライブで31兆桁計算できると思ってなかった
    • 単一VMを4ヶ月ヘビーに使えると思ってなかった
  • あとから見れば簡単に見えるのがクラウドのすごいところ

あんざいゆきPresents!理解が深まるビンゴアプリ feat.Nkzn

ハンズオン

セットアップ

  • packageの値は公開するとき一意にしないといけない
  • androidx.*
    • 3rd partyのライブラリ
    • チェック入れないと古いやつが入っちゃう

UI

  • match_constraint
    • maxまで幅をとる
  • wrap_content
    • 必要としてる最小の幅
  • スパナつきText
    • Preview用の値
    • 値を動的に変えたいとき用
  • 文字列は別ファイルで管理
  • dp
    • 解像度によらず同じ大きさ
  • sp
    • ユーザのフォントサイズの影響を受ける

Java

  • Activityという単位でページを作る
  • AppCompatActivity
  • onCreate
    • 初期化できるタイミングで呼ばれる
  • 画面を回転すると表示内容が消えてしまう
    • Activityを破棄して作り直すから
    • Activityを作り直す時でも値を保持しておきたい
      • => ViewModelを使うとActivityとは別で値を管理できるので保持できる
    • ViewModelはライブラリが管理してくれる
      • ViewModelProviders
  • LiveData
    • observeして値が更新されたら通知できる
    • Activityが作り直されるときにonStartというのが呼ばれる
    • そのタイミングでViewModelのデータを反映するようにする
    • Activityの方がViewModelより寿命が短いからobserverしたままにしておくとメモリリークしてしまう
    • Activityが破棄されるときにobserveが消されるようにしておく必要がある

「5分で作れる!Glideappsではじめる超簡単PWA(プログレッシブ・ウェブ・アプリ)」

  • kinnekoさん(JAG金沢支部)

Glide

  • Googleスプレットシートを使って簡単にPWAが作れる
  • Xamarin開発者が作ったもの
  • 何もしなくてもそれなりに綺麗なUIができる
    • UIの変更はGUIでできる
  • ログイン機能も簡単に設定できる
    • メールアドレス入力させてPINを送るとかも
  • Glideを使ってみて
    • 思ったほど複雑なことはできない
    • パフォーマンスイマイチ
      • PWAのメリットが・・・
    • deep linkできない(対応予定らしい)

PWA+TWA

  • 進藤龍之介さん(日本Androidの会Web Working Group)

TWA

  • Trusted Web Activity
  • PWAをPlayストアにあげられるようになった
  • ただしそんなにサクッとできるわけではない
  • ChromeのタブをActivityとして表示できるようにする
  • セッション、ストレージ、キャッシュなどChromeと共有

なぜわざわざアプリ化?

  • まだアプリでしかできないこともある
    • ウィジェット
    • 機種変更時に再インストールできる
    • マネタイズ
    • PWAとネイティブコンテンツの混在化
    • 同一ホストから複数のPWAが作れる

Digital Asset Links

  • アプリとWeb間の信頼の確保
  • intentの紐づけ

Flutter Recap from I/O 2019 + α

  • 神原健一さん(NTTテクノクロス株式会社)

Flutter

  • iOS/Androidのアプリを1ソースで作れる

Google I/O 2019

  • Flutter for Web
  • Flutterのセッション5つ

Material Design

  • MaterialDesignの問題点
    • どれもそっくりで似たようなものができてしまう
    • material theming発表(I/O 2018)
    • 独自のブランドイメージを出す
  • DarkTheme
    • flutterでも簡単に定義できる
  • Widget
    • もともとのwidgetをoverrideしてカスタマイズできる
  • Accessibility
    • semanticsLabelで読み上げ用の文字列を設定できる
    • 読み上げる順序の指定が可能に

For Multi Platform

  • Adaptive Components
    • いろいろなデバイスサイズでの表示に対応する
    • パターンをグルーピングして考える
  • Interactive/Passive
    • 手元で操作しながら画面を見る
    • 遠くにあって見るだけ
    • バイスによって画面までの距離が違うから文字のサイズも変えていかないといけない
    • バイスの画面サイズはとれるのでそれで出し分ける
  • iOS/Androidのデザイン
    • iOSのデザインはCupertinoというのがある
    • iOSだったら分岐して書くのでコードが複雑
    • Flutterの良さは1ソースでかけることなので、、

Beyond Mobile

  • Flutter for Desktop
    • hoverとかキーボードの操作も実装できる
  • Flutter for Web
    • JSに変換できる

Flutter 1.5

  • Material & Cupertino Widgetのアップデート
  • Flutter for Web
  • Dart2.3