moxt

Just another Blog site

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をシンプルに捌いてる。

ここのonReceiveでプッシュ通知を受けて『○○する』部分になる。
ReceiverHandlerはインタフェースになってるので、自分のアプリで実現したい挙動をReceiverHandlerをインプリメントしたクラスに実装してゆく感じだ。

https://github.com/SIROK/growthpush-android/tree/master/source/src/com/growthpush/handler

最初はいくつかのReceiverHandlerの実装が用意されてるので、用途が合うなら使う。
合わないなら自分用のReceiversHandlerを作る。

 - プログラミング

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

  関連記事

no image
単語の出現頻度をlinuxコマンドだけで調べたい

無駄にpythonとか使おうとしてた。。 楽にできて良かった。 …

no image
Docker導入したらどうするの?

Dockerを導入したけど、nginxが入った環境がどこでも使えるようになった!程度だったらあんま意味ないよね。 Web開発をする上でDockerをどのように使うのが効果的か考えてみる。 …

no image
意識低いRuby on Rails再入門4

下記の内容を読んでテスト系の処理をすっ飛ばしたメモ。 http://railstutorial.jp/chapters/sign-in-sign-out?version=4.0#top …

no image
ファイルとかのパーミッションを再帰的に変更したい

あるディレクトリ以下全ファイルのパーミッションを再帰的に変更 chmod …

no image
『Tutorial & Hackathon #1』をやってみる

https://pydata.tokyo/news/pydata.tokyo-tutorial-hackathon-1 タイタニックの乗客データから生存者の推定モデルを作成してる。 …

no image
RDSの特定のデータベースをダンプする

Publicly Accessibleがyesならどこからでも下記が実行可能。 …

no image
SeleniumでChromeを自動操作したい

Seleniumという便利なソフトウェアがあります。 これはブラウザ上の操作をスクリプト化し自動化することを目的としています。 …

large_v
MacでDockerした感想文

Contents1 前提:DockerはLinux上でしか動かない1.1 …

300px-Ruby_logo
nokogiriでスクレイピングするときによく忘れるヤツ集

書くことで記憶を定着させる施術。 class,id以外の属性を指定してタグを探したい …

300px-Ruby_logo
Ruby,Railsのチートシート

こういうのブログ形式じゃなくてwikiの方が良いのでは。。 と、遠い目をしつつ。 …