Google Search URL Filterを更新しました

しばらく前から動かなくなっていたFirefox用GreasemonkeyのGoogle Search Instants Filterを更新し、名前も「Google Search URL Filter」に変えて、(サイトが消えたuserscripts.orgに替わって)GitHubで公開しました。

0-oo/google-search-url-filter

Githubのしきたりが分からないので、README.mdとスクリプトの2ファイルのみ(Gitを使うのが面倒なので、両方オンラインで登録…)という最低限の構成になりました。

FeedlyやFlipboardから、はてなブックマークのコメントを見られるAndroidアプリ

Androidで、FeedlyやFlipboardなどのアプリからの「共有」で はてなブックマークのAndroidアプリの「コメントを見る」をしようとすると、下記のエラーが表示されてコメントを見らないという問題があり、不便です。

URLが正しくありません
共有されたURLが正しくないため、はてなブックマークを開くことができません。

そこで、これを回避して「共有」で はてなブックマークのコメントを見られるようにするアプリを作りました。Google Play(下記)からインストールできます。

ブコメ! – Google Play の Android アプリ

Feedly等のアプリから「共有」する時に、はてなブックマークの代わりにこのアプリ(「!ブコメ」)を選べば、はてなブックマークアプリが起動して該当記事について見られます。
はてなブックマークのAndroidアプリがインストールされていない場合はブラウザではてなブックマークのページが表示されます。

なお、このアプリは「共有」から呼び出すだけなので、メニュー等から普通に起動することはできません。

技術的には、本当はmonacaで手軽に作りたかったのですが、monacaで受け取ったインテントのデータを取り出す方法が分からなかったので、Android Studioで作りました。
(気軽にAndroid Studioを立ちあげられるよう、パワーのあるPCを買わないと…)


ブコメ! – Google Play の Android アプリ

個人的には、今まで作ったAndroidアプリの中で、一番頻繁に使っています…。

GCalendar HolidaysのGoogle Calendar API V3対応

(追記)
Wikiの方も更新しました → GoogleカレンダーからJSONPで日本の祝日一覧を取得 – GCalendar Holidays [ゼロと無限の間に]
(追記終わり)

GCalendar Holidaysで使っていたGoogle Calendar API V2が遂に廃止になってしまいました。(かなり前からDeprecatedになっていて、廃止日も告知されていたのですが、気がついたらもう過ぎていました。)

APIのV3はGoogleのAPI KEYが必須になるため、公開されるJavaScriptからのアクセスは難しいです。(API KEY側にIPアドレス制限が設けられるようですが、それはそれで面倒…)

そこで、とりあえずGoogle AppEngine経由で、Google Calendar API V3から取ったにほんの祝日情報をJSONPで返すようにしました。一部の機能(Googleカレンダー公式版の祝日以外の取得、ブラウザ側のキャッシュ)は未実装ですが、とりあえずGoogle Codeにはあげました。自分のサイトの方も、ぼちぼち更新したいとは思います。

Google AppEngine for PHPは便利ですね。使い慣れないPythonで調べながら作るのもそれはそれで楽しいですが、必要に迫られた時は勝手知ったるPHPでできるのが便利です。
Google Cloud SDKなんてのもできたんですね。AppEngine使うだけなら、今までと変わりませんが…

Greasmonkeyの Google search date limiterを更新

Google側の変更で表示位置と動きがおかしくなっていたので更新しました。ずっとUserscripts.orgで公開していたのですが、Userscripts.orgがアクセスできないので、久し振りに自分のサイトに載せました。

Google検索で手軽に日付範囲を指定できるようにするGreasemonkey – Google Search Date Limiter [ゼロと無限の間に]

「Google検索 日本語のみボタン」もこっちに移さないとですね。

ただ、最近はChromeがメインなので、Chromeアプリに移植したいです…。

Androidアプリの”買い物ランチャー”を作りました

欲しいものがある時に、Amazon・楽天などのショッピングサイトでまとめて検索したい時ってありませんか?それを簡単に実現できるAndroidアプリです。下記リンク先(Google Play)からインストールできます。

買い物ランチャー – Google Play の Android アプリ

いわゆる横断検索サイトのアプリ版みたいなものですね。ショッピングサイト横断検索補助アプリでしょうか。

技術的には、monaca (+ PhoneGap/cordova) + pure.css + jQueryで作っています。monacaで何か作ってみたかったので、とにかく手軽にできるものを作ってみました。開発は実質1時間くらいでしょうか。(外部サイトで開く処理で手間取りました…monaca.invokeBrowser()が動かない?)

これまでAndroidアプリをTitanium、Android Studioで作ってきましたが、それらに比べてmonacaは非常に手軽で良いです。
まずオンラインのIDEの起動が早い。Webアプリなのでインストールもアップデートも不要です。(Android Studioは進化が早くて、何ヶ月か触らないと色々変わってしまうので苦労しました。)
機能は限られているので、仕事でがっつり使いたい場合には足りないかもしれません。でもその分必要な機能が見つけやすいので、日曜プログラマには最適です。
また、デバッガをAndoridにインストールすれば、動作確認も簡単です。この手軽さは他のIDEも追随して欲しいです。
最初はonsen uiを使おうとも思ったのですが、習得に時間がかかりモチベーションが落ちるのを避けるため、使い慣れたHTML/jQuqeryにしました。

monacaの特徴の1つはAndroidアプリとiOSアプリ(とWindowsあぷりとChromeアプリ)が同時に作れてしまうことですが、実際には、Titaniumの時もそうだったのですが、細かい部分や、あるいはデザインなどで条件分岐が必要になり、別々に作った方がメンテナンス性が良い、ということになりそうです。

また、今回やっとpure.cssが使えたのですが、bootstrapよりも手軽でいいですね。Webkit/blink系だけを気にすれば良いスマホアプリには相性が良さそうです。

ということで、買い物ランチャー、使ってみてください。

Google検索用のGreasemonkeyを微修正

Google検索用の3つのGreasemonkeyを少し修正しました。

Firefoxのシェアも地に落ちて、自分もChromeに乗り換えようかと思うのですが、面倒なんですよね…

東京通勤道中のAdSenseをレスポンシブにしてみた

Google AdSenseにレスポンシブなサイズがあると聞き、試しに+東京+通勤+道中+の広告をレスポンシブにしてみました。PCで見ると横長でちょうどいいんですが、幅を狭めたら正方形の大きな広告になり、コンテンツがファーストビューに入らないかも…。

AdSenseをいじったのは久しぶりですが、コードもだいぶかわってたんですねー。

Androidアプリの3分タイマーをアップデートしました

いくつかバグを修正しました。詳細は下記でご確認ください。

3分タイマー – Google Play の Android アプリ

こんな単純なアプリでも、下記のような携帯ならではの対応が必要な状態変化方法が次々に見つかって、奥の深さを感じます。

  • スリープ
  • サスペンド(=deep sleep、画面が消えるだけではなくて電力消費抑制のために一部を除いてアプリの動きを止める)
  • 端末の回転による画面の縦⇔横の変換
  • バックボタンによる終了
  • ホームボタンによるバックグラウンドへの移行

中には状況が一致する日本語情報がほとんどない(検索ワードの知識不足のせいですが)ものもあり、調べては解決して進めていく作業が初々しくて良いです。

サスペンド対策についてはAlermManagerを使うのが根本的な対策だとは思いますが、シンプルなアプリには大げさな気もするのでWakeLockで対応しました。
WakeLockはリリースしないようなパスがあるとバッテリー浪費アプリになってしまうのが怖いですが。onDestroy()でリリースしたので、大丈夫なはずです…。

Androidアプリ「3分タイマー」を作りました

とにかく簡単に使える3分タイマーのAndroidアプリ、その名も「3分タイマー」を作りました。自分自身が欲しかったので。

3分タイマー – Google Play の Android アプリ

上記リンク先にも書きましたが、できることは

  1. アプリを起動する(と同時に自動でタイマーがスタートする)
  2. 3分たつと、ブルブル震えて報せてくれる

あとは終了ボタンでアプリを終了するだけ。
(起動後のスタートボタンをタップするのさえ面倒だったのです。)
Androidに入れておけば、いつか役に立つと思います。1台に1つ、ぜひどうぞ。

 

技術的な話

ここからは技術的な話。
前作の+東京+通勤+道中+Androidアプリ版はTitanium Mobileで作りましたが、今回は普通にJavaで作りました。
きっかけはAndroid Studioの公開です。Android StudioはまだBeta版ですが、なかなか使いやすいと思います。Eclipseよりも、Titanium Studioよりも、Androidアプリを作るには適していると思いました。
Titaniumで原因不明の異常終了に悩むより、参考情報の多いJavaで作った方が精神衛生上良い気がします。

Javaを使うのはかなり久しぶりなので、頭がぎゅっぎゅっと締められる感じがしてなかなか良かったです。少し文法も変わったみたいです。
今後もAndroidアプリを作っていくなら、素のJavaというよりはオレオレライブラリ(フレームワーク?)を少しずつ作っていくと思います。きっともう定番処理詰め合わせのライブラリがあるんでしょうが、今はまだそれよりも小さな頭で悩みつつ進めるのが心地よさそうです。

また、今回は多国語化として英語にも対応しました。(アイコンのみ言語による切り替えが無いですが。)Android StudioもGoogle Playも、多国語化しやすいよう便利にできてます。Javaがもっと簡単に多国語化する方法をサポートしてればもっと良かったのですが。
ただ、一番の問題は、英語を書く力が足りないことでした…。