- Android Bazaar and Conference 2019 Springに参加してきました。
- 今回はAndroidのハンズオンに参加してみましたが、初心者でもわかりやすく且つHelloWorldの2歩3歩先くらいまでの内容でとても満足度の高いハンズオンでした。
- 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 | JavaでAndroidを始めた人のための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
機械学習/AI
ML Kit
- TensorFlow Liteと比べて
- そのままだとapkサイズ大きくなってしまうがML Kitだと解消できる
- ML Kitなら一部のユーザだけに提供とかできる
- ML Kit on device translation
- オフラインで翻訳
- 全てデバイス上で完結
- Object Detection & Tracking
- APIで提供
- AutoML Vision Edge
- モデルを作ること自体もAIにやらせる
- 写真をたくさんあげたらかってに学習してくれる
- 一度おとせばオフラインでも
TensorFlow
- TensorFlow.js
- Web/Android/iOS/Raspberry PI
- ML Kit
Android Q
- プライバシーに関する機能が多い
- 表面上は変更少ないけどアクセスのしかたなど変わるので改修必要
Kotlin first
- Googleが作るサンプルなどはまずKotlinで提供
- Googleのアプリの多くはKotlinだけで書かれている
- Top 1000の内44%はKotlin
- 新しい機能はあJavaはBest Effortだったり提供なかったりする
- JetCompose
CameraX
Android Studio
- Project Marble
- 新しい機能追加より既存のものの改善重視
Google Play
- latingの仕組みが変わる(今年の夏から)
- 今までは全ての期間のLatingを平均していた
- 直近の数字を使ったものに変わる
Design
- Dark Theme
- Android Qから強制的にダークモードにできる
- アプリ作る人も対応が推奨
- ダークモードでは彩度下げるとよい
- バッテリー
- Accessibility
- Material Designも対応
Web & Chrome
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
- 後方互換性を保ってくれるActivity
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
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
Beyond Mobile
- Flutter for Desktop
- hoverとかキーボードの操作も実装できる
- Flutter for Web
- JSに変換できる
Flutter 1.5
- Material & Cupertino Widgetのアップデート
- Flutter for Web
- Dart2.3