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

  関連記事

images
scrapy実行時のエラー対処

Macで発生した。 scrapyを実行したら下記のようなエラーを吐いた。 …

no image
RubyMine(OSX)でGit操作するときのコマンド集

GITを操作系のポップアップを表示したい

no image
Toolbarで表示する矢印アイコンの色を変えたい

http://stackoverflow.com/questions/26788464/how-to-change-color-of-the-back-arrow-in-the-new-material-theme 動的に色を変えるイイカンジな方法が分からず困っていた。 …

logo_og
ReduxのMiddlewareについて理解したいマン

ReduxのMiddlewareの仕組みがよく分からない。 具体的な処理過程を追いかけて理解に至るまでのメモ。 …

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

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

no image
Androidアプリを作るために最低限必要な知識と未知の部分を列挙

作りたいアプリによって必要な知識は変わるかもしれないが。。 個人的過ぎて役に立たないが、整理がてら羅列してみる。 …

no image
Macでdocker系のコマンドが使えなくなったら確認すること

OSXではdockerは使えないため、別にVMを立ち上げ、そこでdockerを動かしてる。 macからdockerコマンドを使うためにboot2dockerというコマンドを使う。 …

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

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

no image
フロントエンド開発のメモ

最近のフロントエンド開発ではビルドランナーを使うのが常識になってきてるみたいなので。 jspm的なもっと進んだやり方でも良いんだけど、pluginが少ない、文献が少ない、自身の技術力不足、ということでビルドランナーなやり方でやる。 …

no image
MecabをPythonから使いたい

ベイズ分類器を自分で作りたかった。 そのためには、文書を単語の集合に変換する必要がある。 …