読者です 読者をやめる 読者になる 読者になる

Celeste Engineer

Androidとか自転車とか

potatotips #30 Android まとめ

potatotips #30 の Android まとめブログです。

potatotips.connpass.com

発表内容

1. ken0331 - CDD(コンポーネント駆動開発)

コンポーネント駆動開発ということで、共通で使えるコンポーネントを用意して再利用性を高める、というお話でした。 Fragment をコンポーネントとして、ドメインに近い部分は Activity がもっておき、コールバックでやり取りをするというのが大筋の方針のようです。 個人的には、クリーンアーキテクチャのような"プレゼンテーション"、"ドメイン"、"データ"の3層構造が分かりやすくてよいなと思っているのですが、プレゼンテーションの部分の作り方に関しては、それはそれで色々なパターンがあるようです。コンポーネント駆動開発、というのはそのうちのひとつとしてとらえたほうが良いかなと思いました。

2. hkusu - RxJavaを活用する3つのユースケース

www.slideshare.net

RxJava の活用法として、とくに Subject を使った pub/sub の構造の作り方にフォーカスしていました Otto や EventBus などもありますが、これを RxJava でも行う、というものです。まだまだ知らないオペレータがあって、なるほどそうやって実現するのか!という知見であふれていました。 やはり、関心の分離とデータの流れがシンプルになるという点がよいですね。

3. nekoe - プッシュ通知の「開封」を検知する方法

プッシュ通知の効果測定はとても気になっていた話題です。 個人的には、プッシュ通知を配信しても通知経由ではなく通常のランチャー経由でアプリを開く「みなし開封」の技術が面白かったです。

4. Fumihiko Shiroyama - Realm for Android Tips

最近正式リリースとなった Realm の Tips です。transient なフィールドのための @Ignore をはじめ、RealmObject が POJO を作る際にも使えるようになっていたりと、ドンドン進化しています。 RealmRecyclerViewAdapter はかなり便利にみえました。RxJava にも対応しているので、トレンドにも乗っていて使い勝手の良さが伺えます。

5. shaunkawano - Introduction to AutoValue

Google が出しているコードの自動生成プロジェクトです。 POJO なエンティティクラスのフィールドを用意しておいて、アノテーションを付けることで apt で必要なコードを自動生成します。Parcelable の実装はいつもボイラプレートになるので、非常に便利ですね。 Gson や Moshi などのシリアライズフレームワークとも相性が良いというのは重要ですね。

6. yamacraft - FirebaseのAuth機能

Firebase での Auth 機能の解説です。非常に強力なバックエンドとして進化を遂げた Firebase ですが、もちろんアカウント管理も強力です。確認メールまでおくれるのは流石だと言う感じでした。 メールアドレスとパスワードによる通常のサインアップのほか、SNS 等のアカウントシステムとの連携もとれるので、Firebase を使わない手はないですね。 ただし、Goole Play が使えないと Firebase も使えなくなるのはちょっとした弱点かなという気がします。

7. magiepooh - How to detect phone call

speakerdeck.com

音楽や動画などのコンテンツを扱うとき、アプリ外で何が起きているかを把握し適切にハンドリングすることはとても大切です。今回は、電話を例にとって、再生中に電話が来た時のハンドリングの仕方のお話でした。 TelephonyManager で判別することも出来ますが、再生コントロールとしては AudioManager も使うことが出来ます。AudioManager をつかった AudioFocus の管理をすると、電話以外にも使えて便利です。