2016年6月23日木曜日

potatotips #30 (iOS/Android開発Tips共有会)6月23日に参加レポート

potatotips #30 (iOS/Android開発Tips共有会)6月23日に参加してきました。 

変更履歴
2016/06/25 RxJavaを活用する3つのユースケースのプレゼンテーション追加


http://potatotips.connpass.com/event/32665/

基本は発表者間の懇親が中心なので、オーディエンス枠は15名のみだけで、オーディエンス枠に50名の応募がある人気勉強会です(オーディエンス枠は抽選で決定)。今回は、ブログ枠で参加です。Androidの発表についてまとめてみます。

プレゼンテーションが公開されたら適宜リンクしていきます。

 1. VOYAGE GROUPの紹介 

今回の会場提供のVOYAGE GROUPさんの紹介。無料会議室貸出やピザの差し入れをしているそうで、使ってみたい方はコンタクトすると良いと思います。

 2. KENさん CDD(コンポーネント駆動開発) Android

サンプルプログラム
https://github.com/KEN0331/cdd

急遽代打発表のKENさんによる「Fragmentの再利用性とAPI通信」について。Timeline表示について。例えば、Profile表示ありと、Profile表示なしのでTimeline表示する方法。Timelineの共通のFragmentを設計方法。一つのTimelineFragmentを作って、onLoadTimeline(callback)を定義して画面に依存しないFragmentを作る。 通信モジュールは、表示したい内容を通信して、Fragmentに通信した内容を返す。Timeline型のアプリは作ったことないのですが、機会があったら参考にして作ってみたいです。

3. @hkusu_さん Androidアプリ開発でRxJavaを活用する3つのユースケース


プレゼンテーション


RxJavaをAndroidで使う話。今回は特にイベントをどのように扱うかを整理してみたお話。1つめは、結果の受け取り方。2. メモできず..3. 値の監視の作り方。特に、データ保持クラスと、それを表示に反映するのは、別々に実装できる。

ActivityのonPauseで購読を止める場合には、unsubscribeする。

でも、まだプロダクトにRxJavaは使っていないそうです....

サンプルアプリ
https://github.com/hkusu/android-mvc-sample

お勧めの構成
Activity/Fragment
     ^
     |
UseCase層
     ^
     |
Repository層
     ^
     |
Service層

4. ねこえさん   プッシュ通知の「開封」を検知する方法

プッシュ通知をなんで検知したいかは、プッシュ通知の効果計測(アトリビューション分析)したいので検討してみた。今回の「開封」の定義は、「Notificationがタップされたこと」。

PendingIntentが発火するかどうかで、計測したいが...普通は計測できない。しかし、Activity側ではどのIntentから起動されたか分からない!!

IntentをBroadcastReceiverで受け取ってから、Activityに渡す実装で検知を実現する。BroadcastReceiverでどのPush通知から呼ばれたかを判断した。

上記の制限1)、Notificationせずに、直接アプリ起動した場合は計測もれとなる。そのため、みなし開封テクニックも必要。

上記の制限2)、FLAG_ACTIVITY_NEW_TASKフラグが必要。

5. しろやまさん     Realm for Android Tips  Android

参加者へのアンケートでRealmのプロダクションで使っている人もそこそこいらっしゃる。(実際にproductionレベルで使える)

Nikkei新聞アプリは、RealmにデータをdownloadしてofflineではRealmのデータを使って表示しています。

Callback式の更新時に通知してもらって対応することが可能。

パフォーマンスも良いです!!、いろいろな制限事項も減ってきているので使いやすいです!!

Realm Browserもあって、中身を見れる。

紹介したいポイント2つ
1) RealmRecycleViewAdapter便利です。2) RxJavaにNativeで対応している。

日本語のドキュメントも充実しているので見てみてください


6. しょーんかわのさん   Introduction to AutoValue

プレゼンテーション

Googleが作っているJavaのlibraryの話。

まず、Article.classをベースに説明。最初はシンプルなclassが要件が増えてくるとだんだん複雑になっていく...

それを解決するのが、AutoValue。これで自動的に生成される。(@AutoValue, @AutoValue.Builder, AutoValue Extensionもいろいろある)例えば、Parcelableも自動生成。

7. やまくらふとさん     FirebaseのAuth機能
詳細は、Firebaseの勉強会で!!神泉Firebase勉強会 #1

Otemachi Firebase #1

Twitter/Github/Facebook/Googleログインに対応して、Auth系のtoken取得/管理をうまくやってくれる機能です。他にもemail, 匿名アカウントも取得・管理可能。

基本は、token管理のみなので、SNSログイン自体の仕組みは、それぞれのSDKで実装する必要がある...

8.magiepoohさん How to detect phone call

プレゼンテーション
AbemaTV Appで着信時に音を止めたい要望があり対応したときのTipを発表します。

1. TelephonyManagerを使う場合。
   READ_PHONE_STATE permissionの追加が必要で対応大変

2. AudioManagerを使う場合
   API Level8からで対応。Audio fouceの変更を検知して対応。
   permission不要です。以外に良い感じで動く。音楽再生ソフトによい。



今回は、qiitaのプレゼンがいくつかありました。自分の社内からはspeakerdeckはブロックされているので、qiitaかslideshareが良いんですよね... なぜ最近はspeakerdeckの利用が多いんだろうか??

茨城県取手からの参加なので、発表終了で帰りました。金曜日開催ならば、居残れたのですが。

0 件のコメント: