HatenaNotifyのモバイル版を我が手中からリリースしました



GPLv3に基づく自由なソフトウェアとしてソースコードを以下で公開しています。

https://github.com/laiso/Ti-HatenaNotify/

もともと「あなたへのお知らせ」っていう、はてなワイドのノティフィケーション機能みたいなものがあって、それの新着をチェックしたり閲覧するブラウザ拡張を公開していて


それのモバイル向けアプリにあたるもの。

はてな社が公式でつくるかなーと思ってたけど特に需要がないのか出てこないので自分で作りはじめていた。

モバイルクロスプラットフォームツールの評価がてら最初はPhoneGapで作りはじめてたんだけどWebViewの読み込みを中断したりハンドリングするデフォルトの方法が用意されてなくて正直こんなんの為にネイティブエクステンション作りたくもないのでTitanium Mobileに移行した。JavaScript部分から手をかけていたのですんなり移行できた。

先週アプリが一応できたのでApp Storeで配布できるようAppleにレビュー申請してみたんだけど

という結果になってしまったのでレビュー通す為だけに機能増やすのもやりたくないので一旦ソースごと配布ウェアにすることにした。

Androidサポート

Titanium Mobile製なのでAndroidでも動くように作ってあるんだけどいくつか不完全な部分がある

  • Android 2.3系の動作がぁゃしぃ
    • 4.0以上なら動くと思う
  • Service の開始のタイミング
    • バックグランドに入った(pause)時に開始するんだけどOS起動時になるようにしたい
    • またその際にシステム与える負荷は問題ないのか確認したい
  • Androidアプリの仕組みがよくわかってないのでできないこと
    • 通知欄をタップしたらアプリに復帰したい
    • 外部ブラウザでリンクを開きたい

FAQ

どうやってインストールするの?
iOS Developer Program契約している開発者向け。
App Storeリリースは無理?
有用な機能増やせばレビュー通るかもしれないけど、とくに思いつかない。なんか思い付いたら https://github.com/laiso/Ti-HatenaNotify/issues へ投稿しといて。Androidの方は完成すればリリースできそう。
プッシュ通知機能ないの?
半分はい。iOSはアプリがバックグラウンドに入ってから10分ぐらい新着を監視してる。その後にOSに停止される。Androidも同じくバックグラウンドでずっと監視してるはずなんだけど安定してない、iOSより制限ないので本当はOSの起動時に常駐で監視したいんだけどまだやってない。
なんでサーバーからプッシュしないの?
あなたへのお知らせ」は外部の開発者が使えようAPIが公開されてない。ログインした本人のセッションで取得してるのでパスワードでも預らない限り無理だし預りたくない。
どうしたらプッシュ通知機能が提供できるの?
欲しい人が「あなたへのお知らせ」を外部の開発者が取得できるようはてな社へリクエストする→はてな社がAPI公開する→アプリが対応する。という感。もしくははてな社がこれと同じようなアプリをリリースするなら可能だと思う。
公開されてるソースコードを使って勝手にリリースしていい?
GPLv3に基づく自由なソフトウェもごもご――

簡単なソースコード解説

以下は興味ある人ように…

全体の構成にAlloy Framework を使ってる。

これはTitanium Mobile SDKの上のレイヤーのアプリケーションフレームワークといった感じでRailsとかBackboneとかFlex/Java GUIプログラミングとかのフレイバーが元ネタ不明だけどいいとこどりな感じで提供されてる。

といっても今回のアプリは1画面しかないの全然MVC構造化支援の仕組みを使っていない。

プレゼンテーションレイヤー(XML)とスクリプト(コントローラーということになってる)を切り離せただけ。

上記の3ファイルでほとんど実装されてる。太ってきたらモデル・コントローラーの整理はすればいいかとか考えてる。あとテストも書いてない。