GrowthPushのAndroid-SDK(?)のコードを読んでみる
2015/07/10
できること、できないことを知るために。
GrowthPush.java
https://github.com/SIROK/growthpush-android/blob/master/source/src/com/growthpush/GrowthPush.java
総合窓口。基本アプリ開発者はこいつを介してGrowthPush側とコミュニケーションする。
シングルトンなオブジェクト。
初期登録やらイベント、タグの送信はこのオブジェクトに対して依頼する。
依頼される処理はほぼネットワーク通信が発生するため、メインスレッド上で実行せずThreadをして別スレッド上で処理を捌くようになってる。
イベントの送信はEventというオブジェクトに、タグの送信はTagというオブジェクトに委譲してる。
Clientというオブジェクトがちょくちょく出てくる。
GrowthPush内ではClientオブジェクトの生成・更新・削除といった状態管理をしているくらいで、特に何か処理を依頼してる感じはない。
ClientはModelというクラスを継承している。
Modelはpost,putというメソッドを公開している。
ModelはAPIとの通信を担当するクラスのようだ。
Event,TagもModelのサブクラス。
Clientについてはアプリ開発者はあまり意識しなくて良いオブジェクトなのかな。
BroadcastReceiver.java
GrowthPush側から送られてくる(GCMだけど)プッシュ通知を捌く人。
https://github.com/SIROK/growthpush-android/blob/master/source/src/com/growthpush/BroadcastReceiver.java
BroadcastReceiverを継承したBroadcastReceiverクラス。
プッシュ通知を受けた時に飛んでくるIntentをシンプルに捌いてる。
1 2 3 4 5 6 7 8 9 |
private void handleReceive(Context context, Intent intent) { String messageType = GoogleCloudMessaging.getInstance(context).getMessageType(intent); if (messageType != null && messageType.equals(GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE)) GrowthPush.getInstance().getReceiveHandler().onReceive(context, intent); } |
ここのonReceiveでプッシュ通知を受けて『○○する』部分になる。
ReceiverHandlerはインタフェースになってるので、自分のアプリで実現したい挙動をReceiverHandlerをインプリメントしたクラスに実装してゆく感じだ。
https://github.com/SIROK/growthpush-android/tree/master/source/src/com/growthpush/handler
最初はいくつかのReceiverHandlerの実装が用意されてるので、用途が合うなら使う。
合わないなら自分用のReceiversHandlerを作る。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package com.growthpush.handler; import android.content.Context; import android.content.Intent; public interface ReceiveHandler { public void onReceive(Context context, Intent intent); } |
336px
336px
関連記事
- PREV
- 失敗しないファッション
- NEXT
- ディープラーニングで本田翼を見分けたい。初歩編