ticktakclockの日記

技術ポエムを綴ったりします。GitHub idも同じです (@ticktakclock)

DroidKaigi2019 1日目に行ってみた感想とか

こんにちは、tkyです。

DroidKaigi2019に行ってきました。1日目のレポです。

droidkaigi.jp

2日目のレポはこちらをご覧ください。

ticktakclock.hatenablog.com

行ってきた講演は以下です。お昼後、yanzmさんの講演見たかったのですが、満席御礼で入れず・・・

  • マテリアルデザインの起源とベースとなる哲学(13:50~)
  • 辛いと評判のAndroid BLEを頑張って使い続けた話(14:00~)
  • Chrome Custom Tabsの仕組みから学ぶプロセス間通信(14:50~)
  • Understanding Kotlin Coroutines コルーチンで進化するアプリケーション開発(15:40~)
  • Chrome + WebAuthnで実現できるパスワードレスなユーザ認証体験と開発者の課題(17:10~)

お昼に到着

いざ! f:id:ticktakclock:20190209134738j:plain

yanzmさんの「LiveData と Coroutines で実装する DDD の戦術的設計」を見たかったのですが、なんと満員!さすがというべきか入れませんでした・・・あとで配信見ます!

会場の様子です。

f:id:ticktakclock:20190209130852j:plain

そして急遽見たかったもう一つの講演に向かいました。

マテリアルデザインの起源とベースとなる哲学

speakerdeck.com

www.youtube.com

ちょうどマテリアルデザインを取り入れたUIを作っているプロダクトの最中だったので、興味アリアリの内容です。

そもそも誰がマテリアルデザインを作ったのかさえ知らなかったので恐縮ですが、すごい面白い講演でした。

そもそも誰が作ったのか・・・・ googleのデザイン責任者であるマティアス・デュアルテさんが作ったそうですね。昔のですが記事が出てました。

https://www.gizmodo.jp/2014/07/_android.html

この方の歴史的背景や知識を見ることでマテリアルデザインの思想と哲学を見ていく、という内容でした。

マテリアルデザインについては私は根本的なところで理解がかけていたようで、本講演を受けて改めてマテリアルデザインガイドを査読していきたいです。

辛いと評判のAndroid BLEを頑張って使い続けた話

www.slideshare.net

www.youtube.com

BLEつらいねーーー!!!!wBLEを多少触ったことがある身分としては皆さん同じようなところにつらみを感じているらしく、共感でしたww

BLEは接続のためには数ステップやることがありますが、AndroidではそれらすべてのAPIが非同期のコールバックとして返ってきます。今であればRxやKotlinコルーチンを使うことで被害を最小限に抑えられそうです。

突然切断される現象やサービス接続からいきなり通信するとエラーになる現象などはタイマーやリトライ処理をしてあげることでできる限り救う。

つらみのなかでやりようを見出していくそのスタイルに共感です。

Android バージョン x BTチップ x BTプロトコル・スタック x 独自省電力 x デバイス側のチップ相性 =可能性無限大ですね!!!!😇

RxAndrodiBleというライブラリでBLEの処理をRxで書くことができるのですが、昔なかなかRx2に対応されなくてRx2にラップする処理を自前で書いていたりしました。。 しかし今はRx2対応されているようなのでまた見てみても良いかもですね!

Chrome Custom Tabsの仕組みから学ぶプロセス間通信

www.slideshare.net

www.youtube.com

Chrome Custom Tabsの仕組みにおいては別にGoogleChromeだけが保つ機能ではなく、CustomTabsと呼ばれるサービスに対応したアプリが提供できる機能となっているようです。

こういった仕組みを提供、実現するためにはAIDLという他のアプリケーション(サービス、=別プロセス)とやり取りするためのインターフェースを定義・実装することで実現できます。

実装面でいうとCustomTabsServiceっていうAbstractクラスがあって、それを継承したクラスを作ればとりあえずCustomTabsを提供するサービスが作れるみたいです、こう聞くと少しハードルが下がる・・・?😅

最近モダンな開発にフォーカスが当たる中、Androidフレームワークに関する機能にふれる機会が減ってきていたので非常に勉強になる講演でした。

Understanding Kotlin Coroutines コルーチンで進化するアプリケーション開発

speakerdeck.com

www.youtube.com

リリースされて間もない機能なので要チェケです。

  • どのようにコルーチンを使うか、学ぶか
  • どのようにコルーチンを適用するか
  • コルーチンをいつ使うか

という点にフォーカスを当てた講演でした。

Concurrency and Parallels(平行性と並列性)というワードが印象に残っています。 コルーチンスコープについては基本的にアプリ内のライフサイクルに基づいてスコープを定義して動作させるのが良さそうです。

また、ほかアーキテクチャへの適用として重要になる考え方としてモジュール間の関心に着目するという点です。 データフローが統一するならRx、独立性の高い開発モデルを主眼とするならモジュール間でコルーチンを適用することを検討しても良さそうです。

このあたり私も初見の類に入るので自分の中でしっかりと理解して行きたいです。

小休憩

少し疲れたので休憩がてらにコーヒーを飲みに来ました。 このアルファベッティカフェさんがDroidKaigiに出張に来てくださり、プロのバリスタさんによるコーヒーを飲むことができてよかったです。普通にお店に行きたい・・・

f:id:ticktakclock:20190209135302j:plain

yahoo japanブースにてTRILLグッズを頂いたり、その他様々なブースを覗いたりしました。

f:id:ticktakclock:20190209135135j:plain

Chrome + WebAuthnで実現できるパスワードレスなユーザ認証体験と開発者の課題

speakerdeck.com

www.youtube.com

本日ラスト講演です。

パスワードについての現状の課題、コストを考え人間が適用できる認証方式を考えた結果のWeb Authentication APIという1つの選択肢のようですね。

正直なところ私が無知すぎて単語を追うのが精一杯でした・・・ 😇

パスワードの方式として「忘れた、パスワード再設定フローもない」はいわゆる詰んだ状態になりますが、web authnの仕組み(要はデバイスを使った指紋認証と組み合わせたもの)だと「スマホをなくした/壊れた」ら詰んだ状態になる、ということなので、詰んだ状態からどのように回避するかが課題になりそうです。

アフターパーティー

いよいよアフターパーティです 🕺

f:id:ticktakclock:20190209133619j:plain

f:id:ticktakclock:20190209134334j:plain

なお写真はpixel3で撮影したものです。ポートレートめっちゃよく撮れる😎

お食事も美味しかったし、登壇者のかたと会話できましたし良い体験ができました。

終わりに

2日目は朝ご飯食べに早めに行こうと思います!引き続き2日目のレポートもどうぞ!

頂いたものたち f:id:ticktakclock:20190209134402j:plain