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系だけを気にすれば良いスマホアプリには相性が良さそうです。

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

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

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

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

Titanium MobileにSQLヘルパーを!

Titanium Mobile用のライブラリPrometheus.jsに、DB(SQLite)を簡単に扱えるSQLヘルパーを追加しました。バージョン0.2.0です。

SQLヘルパーのオブジェクトは、Pr.db(dbName) で取得できます。後はselect()したりinsert()したり、update()、remove()したりしてください。Ti.Database#execute()と同様に、execute()することもできます。
しかも、DatabaseやResutsetのclose()は勝手にやってくれます。(execute()した場合は除く。)

DBアクセサですが、O/RマッパーではなくSQLヘルパーです。

WHERE句の生成は今のところイコール条件しかできませんが、そのうち必要に迫られたら追加します。

jQuery Mobile 1.1RCを東京通勤道中に適用してみた

jQuery Mobile 1.1.0のRC1が出たので、さっそく東京+通勤+道中に導入してみました。(ついでにFlic 100Kにも。)

jQuery Mobile 1.0.xではスクロールすると明滅してぎこちなく付いてくる奥ゆかしさが不評だったStickyなヘッダーが普通に固定になっていい感じですね。

IE8(IE9の互換モードで確認)ではレイアウトが思いっきり崩れたり、そもそも表示されなかったりしますが、もう気にしないことにしましょう…(IE7-9もAグレード扱いだから、きっとRC2で治るはず…だといいな。)

Titanium Mobile用のライブラリ、Prometheus.jsを公開しました

iPhoneアプリもAndroidアプリもJavaScriptで手軽に作れるTitanium Mobileをさらに手軽にするライブラリ、Prometheus.jsを公開しました。

Ti.UI.createXxxx()の冗長さが嫌だった(Titaniujm Studioのコード補完を使うことを考えると、子要素のさらに子関数を呼び出すより、直接子関数を呼び出せる方が楽なのです)のと、後々のことを考えて各UIのデザイン設定を一括して変えられるようにしたかったのが主な作成の動機です。

これからもTitanium Mobileを使って行くなら、秘伝の鰻屋のタレのように、このPrometheus.jsに便利機能や備忘録的なTipsや手癖のようなスニペット等々を加えていく、かもしれません。

 

ちなみに、Titanium Mobileに神の火を! – Prometheus.jsのアイキャッチの画像は、無料素材・フリー素材|BEIZ Graphics Webで配布されているものです。カッコイイですね!よく見ていると、そこに人の顔でも浮かんできそうな、不思議な画像です。

Google Mapper V3に現在位置取得機能を追加しました

Google Mapper V3をバージョンアップしました。バージョン0.7.0です。

変更点は、Geolocation APIを使って現在位置を取得できるようにしたことです。
要するにnavigator.geolocation.getCurrentPosition()を呼び出すというのが主な処理なのですが、その前後の面倒そうなことも合わせてやるので、呼び出す側は楽になります。
まあ、どちらかと言えば、Geolocation APIの使い方の覚え書きという側面が強いかも…

主にスマートフォンで使われる機能ですが、PCでも無線LANのあるノートPC等ならまあまあ使えます。(古いIEは使えません。新しいIEは…使えるのですが…残念です。)

でもiPhoneだとgetCurrentPosition()だけでなく、watchPosition()とか使ったりしないとうまく取得できなくてタイムアウトしているようですが、とりあえず今回はそこまで追ってません。

+東京+通勤+道中+をAndroid Marketで公開しました

東京近郊の電車の路線に関するつぶやきをTwitterからリアルタイム検索する+東京+通勤+道中+を、Androidアプリ化して、Android Marketで公開しました。

こちらです → 東京+通勤+道中 – Android マーケット

インストールしてみると分かりますが、アプリを起動するとWebブラウザを立ち上げて東京+通勤+道中のWebサイトを表示するだけです。(よくあるなんちゃってネイティブアプリです…。)
まあブラウザを起動してお気に入りから選ぶよりはちょっと楽ですね。

余談ですが、アプリの詳細(アクセス許可)を見ると、アプリでは使っていないはずのSDカードやUSBストレージやWi-Fi状態の表示にアクセスする場合があるとなぜかなっています。
Manifestあたりをもう少しきちんといじらないとダメなんでしょうね。もしバージョンアップすることがあったら調べてみます。

ということで、よかったらインストールしてみてください!

東京+通勤+道中 – Android マーケット

 

Google Mapper V3をちょっとバージョンアップ(0.6.1)

Google Mapper V3を微修正したました。IEで動かないバグの修正と、load()でGoolge Maps APIのJavaScriptを読み込む場合に位置情報使用有無のパラメータであるsensorを指定できるようにしました。

で、このsensorとtrueにすると、ブラウザが対応していればユーザーの位置情報が取得できます。(Firefoxはデフォルトでは許可を求めてきます。Androidでは設定で位置情報を使えるようにしておく必要があります。)
スマートフォン向けの地図表示などでは需要があるのではないでしょうか。

で、試しに、Google Mapper V3で現在地を取得する動作サンプルを作ってみました。
スマートフォンでGPSを使えばもちろんかなり正確な場所が分かりますが、GPSを使わなくてもGeolocation APIは無線LAN等からある程度場所を特定できます。ノートPCとFirefoxの組み合わせでも、意外に正確な場所が取得できました。興味のある方は上記のサンプルで試してみてください。
(無線LANの使えないPCなどではかなり残念な結果になります…。)

追記:IE(9)では無線LANが使える環境でも残念な結果になってしまいました…

東京通勤道中を少しバージョンアップしました

スマートフォン向けに電車の路線に関するつぶやきをリアルタイム検索できる+東京+通勤+道中+をパワーアップしました。

主な変更点は、

  • 東京の電車の路線名だけでなく、他の路線名や駅名、その他どんなキーワードでも検索できるように検索BOXを追加
  • 不動産の広告のTweetが表示されにくいようにフィルターをかけるようにした
  • Tweetの内容が二重にHTMLエスケープされていた問題を解消

といったところです。

検索窓はjQuery Mobileのおかげで簡単にそれらしいものができました。jQuery Mobileすごいですね。

苦労したのはjQuery MobileによるAjax遷移で、検索BOXから検索してからHomeに戻ると、なぜか次の遷移がおかしくなるという謎の現象が起きて、対症療法的に結局該当ケースのみJavaScriptで動的にAjax遷移をさせないようにしました。(原因は深く追ってません…)

Ajax遷移はキャッシュが効けばサーバアクセスが無いので、モバイルで電波状況が不安定な場合などには効果的にサクサク動かすことができていいんですけどね。これからの改善に期待です。