Slide 1

Slide 1 text

MultiWindow あれこれ 2016.06.17 @umeda.apk

Slide 2

Slide 2 text

Who? Twitter: @masanori_msl vaguely: http://mslgt.hatenablog.com/ SearchWakayamaToilet: https://play.google.com/store/apps/details? id=jp.searchwakayamatoilet Name: Masui Masanori

Slide 3

Slide 3 text

MultiWindow  Android Nから正式に採用される予定の、1つの画面で 2つのアプリを同時に表示する機能。  MultiWindowで表示される両方のアプリが同時にアク ティブになることはなく、片方は表示されているがPause 状態となる。

Slide 4

Slide 4 text

Sample andCameraTest https://github.com/masanori840816/andCameraTest Android-MultiWindowPlayground - GoogleSamples https://github.com/googlesamples/android- MultiWindowPlayground ■参考

Slide 5

Slide 5 text

MultiWindowを有効にする AndroidManifest.xmlのapplicationまたはactivityに 「resizeableActivity」をTrueを指定して追加する。 ※この要素が無いとMultiWindowで開く時に 「App may not work with split-screen.」とToast が表示される。

Slide 6

Slide 6 text

MultiWindowを無効にする 1. 「resizeableActivity」をFalseで指定する。 2. 「screenOrientation」を縦横どちらかに固定する。 3. 「immersive」をTrueで指定する。 ※startActivityによって他のアプリから起動したい場合は、MultiWindowに 対応させる必要がある。

Slide 7

Slide 7 text

Lifecycle  基本的に端末を回転させた時と同じで、MultiWindow モードのOn/OffやWindowサイズを変更した場合 は、Activityが破棄される。  ConfigrationChangedを設定している場合は破棄さ れない。  MultiWindowモードに切り替わった場合に、 「onMultiWindowChanged」が呼ばれる。  「isInMultiWindowMode」で、MultiWindowモード かどうかの確認ができる。

Slide 8

Slide 8 text

Size 16:9 1:1 34.15%

Slide 9

Slide 9 text

 Phone、TabletともにPortraitモードでは3種類のサイズ に変更可能。  Landscapeモードでは、Phoneは1種類(1:1)、Tablet はPortraitモードと同じく3種類のサイズに変更可能。  Tabletを34.15%サイズに変更した時、ウインドウのアス ペクト比はディスプレイのアスペクト比によって変化する。 Size

Slide 10

Slide 10 text

Layout  Windowのサイズによって表示上の画面の向きが変わっ てしまうため、以下の値 (端末・画面の向き) が異なる場 合がある。 // 例: 端末が縦向きならWindowサイズによらず0°となる. int displayOrientation = getWindowManager().getDefaultDisplay().getRotation(); // 例: 端末が縦向きでもWindowサイズによって // Landscape、Portraitの値が変わる. Configuration config = getResources().getConfiguration(); int configOrientation = config.orientation;

Slide 11

Slide 11 text

Layout Windowが横長の場合 Windowが縦長の場合

Slide 12

Slide 12 text

Testについて  現状ではコードからMultiWindowモードを開始できない らしく、自動Testに組み込むのは難しそう (GoogleSamplesのEspressoにMultiWindowと名 付けられたプロジェクトがあるが、別物)。  MultiWindowモードの確認はエミュレータ上でも可能。  Testでは以下のような点に注意する。 1. MultiWindowモードのOn/Offやリサイズでクラッシュしないか 2. ボタンなどが画面外にはみ出て押せなくなっていないか 3. 特に動画再生中にバックグラウンドにまわったときの表示が正しいか

Slide 13

Slide 13 text

正直一般ユーザーにどの程度使われるかは不明。 PCと違ってユーザーが意識的にMultiWindowモードを開 始する必要があるため、存在に気づかれない恐れも。 ただ、同時に発表されたDrag&Dropと合わせると便利 そうで、これらを組み合わせて、新しく便利なデザインが現 れることに期待。 最後に

Slide 14

Slide 14 text

参考 android-MultiWindowPlayground - googlesamples - GitHub マルチ ウィンドウに対応したデザイン - Google Developers Japan Multi-Window Support - Android Developers 5 tips for preparing for Multi-window in Android N - Google Developers - Medium https://developer.android.com/preview/features/multi- window.html https://github.com/googlesamples/android- MultiWindowPlayground http://googledevjp.blogspot.jp/2016/06/blog-post.html https://medium.com/google-developers/5-tips-for-preparing-for- multi-window-in-android-n-7bed803dda64

Slide 15

Slide 15 text

参考 Android N で注意すること その3 (Multi Window その1) - Qiita Android N のマルチウインドウ対応について調べて驚いたところ - Qiita Android N で注意すること その4 (Multi Window その2) - Qiita http://qiita.com/takahirom/items/6efc39a7bfe00144ff32 http://qiita.com/hidenorly/items/456b4dd725875b776d9a http://qiita.com/hidenorly/items/72a659438126a8457715 [AndroidN] Multi-Window で対応しなければいけないところ - Qiita http://qiita.com/ozyozyo/items/66106a2be92dd66c26f3

Slide 16

Slide 16 text

Credit Google Noto Fonts  Main Page:  License: Material icons  Main Page:  License: https://www.google.com/get/noto/ SIL Open Font License (OFL) https://design.google.com/icons/ CC-BY License

Slide 17

Slide 17 text

Thank you.