53. 53
Power-up your Flutter app with Google APIs
今日のアプリは、サービスとの連携が必須でしょう。
Google API パッケージ を使えば、2カテゴリ(①②)かつ、
180個を超えるサービス が利用ができます。
① ユーザアカウントデータ用 API(GMail, Youtube等)
② クラウドサービス用 API (BigQuery, Compute Engine等)
①を使うには、GCP プロジェクトを作り、
使いたいサービスを提供する API を有効にして、
データアクセスのスコープを限定する設定を行います。
ユーザデータにアクセスするため OAuth 認証を行い、
認証済クライアントを取得してアクセスします。
②を使うには、上記にサービス側のサービスアカウントの作成
を追加して、サービスの認証情報を使ったサービスアカウント
を介したバックエンド API の操作を行います。
ユーザーに、バックエンドサービスを直接アクセスさせません。
55. 55
Power-up your Flutter app with Google APIs | Session
https://www.youtube.com/watch?v=z4MsuZiEezY&list=PLjxrf2q8roU19JGviPyeWc-SpDzou8Ug8&index=4&t=1s
Using Google Cloud
https://dart.dev/server/google-cloud
動画内では、具体的な googleapi パッケージのコード例や、
Firestore 設定や gcloud コマンド例が紹介され、
Google API パッケージによる、
Google が提供するサービス(GMail や Youtube等) や
Google Cloud の優れたバックエンドAPI を使った
Dart ベースのサーバサイド・バックエンドサービス構築
の検討を勧めています。
デモ画面
function.dart
Google APIs
https://flutter.dev/docs/development/data-and-backend/goog
le-apis
shelf 1.1.4
https://pub.dev/packages/shelf
56. 56
C interoperability with Dart FFI
FFIは、foreign function interface の略で、
Dartコードから 直接 Cライブラリ関数コール…、
つまり、プラットフォームOS の Cライブラリ(Windows の
Win32 API等)や、既存プロジェクトのC プログラムやライ
ブラリを呼び出せます。
C言語の呼出規約に従ってコンパイルすれば、
C++、Rust、Go など、他のプログラミング言語で書かれ
たコードもコールできます。
C ソースコードの関数を呼び出すには、
関数を含むダイナミックライブラリを開いて検索すれば、
Dartでのシグニチャ(関数名や引数と返値の型)に対応させてコー
ルできます。
チューンアップや既存資産の再利用に活用できます。
57. 57
C interoperability with Dart FFI | Session
https://www.youtube.com/watch?v=2MMK7YoFgaA&list=PLjxrf2q8roU19JGviPyeWc-SpDzou8Ug8&index=6
mit-mit/ffi-talk (Sample code from this taik)
https://github.com/mit-mit/ffi-talk
C interop using dart:ffi
https://dart.dev/guides/libraries/c-interop
構造体や参照渡し、Cから Dartへのコールバック、
Dart オブジェクトに ネイティブのファイナライザをアタッ
チすることもできます。
(これらの機能の詳細は、ドキュメントを参照)
動画では、SQLite をラップするサンプルも紹介していま
す。
デモ画面
function.dart
58. 58
Building a desktop design language with Flutter
Flutterは、
クロスプラットフォーム・フレームワークなので、
デスクトップアプリも作成できます。
ですがデスクトップの UIは、操作作法や外観が決まっている
ので、アプリがネイティブウィジェットを 使用しているように見
せるには、通常の Widget でなく raw レベルの カスタムウィ
ジェットの作成が必要です。
Widget は、Widget Tree(表示設定), Elemnt Tree(更新検知),
Render Tree(レイアウト/ペイント/ヒットテスト) で構成されるので、カ
スタムウィジェットは StatelessWidget でなく、
RenderObjectWidget, RenderObjectElement, RenderBox
などを使って作成する必要があります。
さらに Mouse Input、Keyboard Input、Focus Management、
Key Handling、Accessbility 対応も必要です
カスタムウィジェットを作るには、
Widget 以上を独自パッケージに置換する
必要がある。
59. 59
Building a desktop design language with Flutter | Session
https://www.youtube.com/watch?v=z6PpxO7R0gM&list=PLjxrf2q8roU19JGviPyeWc-SpDzou8Ug8&index=6&t=1s
Chicago widget デモアプリは、
古い 32bit デスクトップ UI を模した Flutter カスタムウィ
ジェットのサンプルです。Flutterは、デスクトップにもウェ
ブにも高い適応性を持っています。
デモ画面
function.dart
The Mahogany Staircase - Flutter's Layered Design
https://www.youtube.com/watch?v=dkyY9WCGMi0
tvolkert/chicago
https://github.com/tvolkert/chicago
Flutter's Rendering Pipeline
https://www.youtube.com/watch?v=UUfXWzp0-DU
tvolkert - interactive demo
https://tvolkert.github.io/#/
chicago 0.1.0-dev
https://pub.dev/packages/chicago
64. 64
Go full-stack with Kotlin or Dart on Google Cloud
Google Cloud Tech のセッションです。
Kotlin と Dart は、フロントエンドだけでなく、
バックエンドサービスの両方の開発ができます。
Cloud Runは、高度にスケーラブルでコンテナ化された
アプリケーションの開発やデプロイができる
フルマネージドなサーバーレス・プラットフォーム です。
Eventarc は、異なるサービスからのメッセージやCloud
Storage のバケット追加などをトリガーに指定して、何ら
かの CloudEvent が発生するたびに Cloud Run サー
ビスに送信することができます。
65. 65
Go full-stack with Kotlin or Dart on Google Cloud | Session
https://www.youtube.com/watch?v=JwCmu_INnCg&list=PLOU2XLYxmsIInpx6VfDxsRQS52JRYxbgO&index=70&t=1s
Full stack demo with Flutter and Cloud Run
https://github.com/GoogleCloudPlatform/functions-framework-dart/tree/m
ain/examples/fullstack
functions_framework 0.4.1
https://pub.dev/packages/functions_framework
また公式サポートではありませんが、
アプリケーションを関数として記述できるように
する Functions Frameworks ライブラリもあるそうで、
セッション後半では、
Flull Stack demo With Flutter and Cloud Run を使い、
Dart 言語で Cloud Run サービスのデプロイや実行を
行うデモを行っています。
デモ画面
function.dart
84. 84
Top 7 Flutter things to know from Google I/O 2021
https://www.youtube.com/watch?v=S5aK3TIOnIw
Google I/O Flutter Top 7 +α (トピックス)
1. Flutter 2.2
2. Null Safe by default
3. Desktop improvements
4. DevTools
5. Payments & monetization
6. Flutter in production
7. Flutter + Google
+. I/O Photo Booth
ダイジェスト(要約報告) なので、
トピックの詳細説明はありません。
ここで取り上げられたトピックが、
重要な理由や、どの様に利用するのかは
各セッションやURL 先のドキュメントを
確認する必要があります。
- Adaptive Design, Dart ffi
デスクトップとの親和性
UP
- Null 安全
バグを未然に防いで開発速度
UP
- デバッグ+チューンアップ力向上
- Google mobile広告, アプリ内課金
公式のプラグイン製品版を公開
- 30以上の Googleプロダクトが、
Flutterを採用
- Google API 運用サービスも、
Cloud Run 上の Dartで運用
- Flutter for Web 実用アプリ
写真撮影+Firebase連携アプリ
プロジェクトリポジトリも公開
- Flutter 2.2
Flutterの 品質と生産性の向上
85. 85
What’s new in Flutter 2.2
https://medium.com/flutter/whats-new-in-flutter-2-2-fd00c65e2039
Announcing Flutter 2.2 at Google I/O 2021
https://medium.com/flutter/announcing-flutter-2-2-at-google-i-o-2021-92f0fcbd7ef9
Announcing Dart 2.13
https://medium.com/dartlang/announcing-dart-2-13-c6d547b57067
Flutter 2.2
Why nullable types?
https://medium.com/dartlang/why-nullable-types-7dd93c28c87a
Sound null safety
https://dart.dev/null-safety
null safety
関連資料
86. 86
Creating responsive and adaptive apps
https://flutter.dev/docs/development/ui/layout/adaptive-responsive
C interop using dart:ffi
https://dart.dev/guides/libraries/c-interop
関連資料
DevTools
https://flutter.dev/docs/development/tools/devtools/overview
DevTools - Adding user custom events to the timeline
https://flutter.dev/docs/development/tools/devtools/memory#adding-u
ser-custom-events-to-the-timeline
Desktop improvements
DevTools