potatotips#44に参加しました!(Android編)

遅くなりましたが先月株式会社エウレカさんで開催されたpotatotips#44にAndroidブログ枠として参加させていただきました。

potatotips.connpass.com

自分はiOSのアプリしか開発したことがなく知識不足なので、間違っている部分がありましたらご指摘をお願いいたします。

Danger for Android

@wasabeef_jpさん

speakerdeck.com

Danger自体は聞いたことがあったのですが、実際どのようなものなのかは知りませんでした。
今回の発表ではCIを使用してGithub上でコードレビューを自動化させるというお話でした。

Gemfileで必要なGemをインストール

Dangerfileにレビューの項目とAndroid lintの設定

CIに組み込む

という流れでした。

警告が出たコードに関して直接PRに提示してくれるのは便利だと感じました。
また空白は行数チェックなどは人の目でチェックするのではなく自動化して任せる方が良いですね。

AndroidKiosk端末化 ~ダイジェスト版~

@tomoya0x00さん

qiita.com

Kioskと聞いて駅のあれだと思ってしまいました(笑)
スライドにも書いてあるのですが、wikiで調べたところKiosk端末下記のようなもののことらしいです。

インタラクティブなキオスクは、通信、商取引、エンターテイメント、または教育のための情報およびアプリケーションへのアクセスを提供する特殊なハードウェアおよびソフトウェアを特徴とするコンピュータ端末である。

ref.) https://en.wikipedia.org/wiki/Interactive_kiosk

今回の発表の内容は下記の内容を実現するため実装方法のお話でした。

  • 通常操作では、専用アプリ(Kioskアプリ)以外の画面には遷移できない
  • 端末を再起動しても、強制的にKioskアプリが立ち上がる
  • 特定の手順を踏むと、Kioskアプリ以外の画面に遷移できる

最近見かけるようになった飲食店の注文するためのタブレットようなものでしょうか。

実装はAndroid 5.0で追加されたDevice Owner、Screen Pinningを使用するという方法でした。
またDevice Ownerを使用する場合は端末の初期化が必要のようです。

今回発表されたソースについてはこちらに上げてくださっています。

github.com

VectorDrawable導入しようと思ったけど断念した話

TakuSemba(仙波拓 (@takusemba) | Twitter)さん

(資料は上げられていませんでした。)

今回はAbemaTVでVectorDrawableを導入しようしたが、制限やバグで導入を断念したお話でした。

まずVectorDrawableはpathが800文字までという制限があるらしいです。
AbemaTVでは100個ほどの画像があるらしく、pathが超えてしまったsvgを手作業で修正していったというお話しをしていました。

また下記のURLのような「VectorDrawableのfillType="evenOdds"が5.0~6.0でうまく表示されない問題」の影響があり断念せざる終えなかったとおっしゃっていました。

https://issuetracker.google.com/issues/67754527

vector画像を使用出来れば複数のサイズの画像を用意する必要が無くなるのでかなり楽になりますが、まだまだ導入は辛いようでした。
iOSでもvector画像を使用出来るので試してみたいと思います。

Color blending on Android

@shaunkawanoさん

speakerdeck.com

2つの色を混ぜたい時にどうやるのか、というお話でした。
方法としてAndroidのsupport.v4.graphicsで提供している ColorUtilsblendARGB を使用して変更していくというものでした。

ColorUtils  |  Android Developers

ColorUtils.blendARGB(color1, color2, ratio)

だけで色同士を混ぜられるのは便利ですね。
また ViewPager#onPageScrolled との相性が良いかもとのことでした。
スクロールなどで徐々に色を変更したい時に ratio を動的に変更すれば良いのでiOSに比べて楽に実装ができるのではないのかなと思いました。

Twitterでは「RGB」を使用するより「HSB(色相、彩度、明度)」の方が良いという意見もありました。

発表のソースはこちらに上げてくださっています。

github.com

REPLACE WITH DAGGER.ANDROID

@kettsun0123さん

speakerdeck.com

Android開発はしたことがないので、発表中のコードの内容はよく理解できませんでした。
DaggerはDIライブラリで、iOSでいうSwinjectなどみたいなものでしょうか。

Dagger2からdagger.androidにすることでシンプルに書けるようようです。

終わりに

ブログにまとめるにあたって、もっとAndroidの知識が分かっていればと思いました。
iOS開発も楽しいですが、Androidでは自由がきいていろいろな実装が出来るんだな感じたので触れてみたいなと思いました。

次のpotetotipsではiOSで発表させていただくので、とても楽しみです!
今後ともよろしくお願いします。