Titaniumのインクルードパスを指定する方法私案

(2011-06-07 21:29:06追記)この記事で書かれている現象はTitanium Mobile SDK 1.7で修正されます。しかも、予測とは違う仕様になったので、この記事に書かれているサンプルコードは動かなくなります。詳しくはTi.includeの不具合が1.7で修正される模様 – もぎゃろぐを見てくださいませ。
(追記終わり)

 TitaniumMobileでとっても困っていることが一つあって、Ti.include(‘lib/a.js’) って書いた時、iPhoneだと Resources/lib/a.js を見に行ってくれるんだけど、Androidだと Resources/lib/lib/a.js を見に行ってしまう。

#2585 Include paths for iphone and android are not based on the same starting point – Titanium Mobile – appcelerator

 
かなり困る問題なのに1.6.0でも直らないそうで、みんな困った末にこんな黒魔術が発見されました。

以下のように指定するとどの場所にあるファイルでTi.includeしても確実にファイルをインクルードできる。
Ti.include(“../../../../../../../../../lib/bookmark.js”)
TitaniumのインクルードパスをResourcesからの相対パスで指定する方法 | ひげろぐ

sxc.hu.657889.jpg

さすがにこれはちょっと(汗) ひげろぐの人が考えた訳じゃないし、考えた人だって困った末に編み出したのだとは思いますが、なんか鼻から悪魔とか出てきそうでムズムズします。

いろいろ試した末にたどり着いた別案。

var path_lib = 'lib/';
if (Ti.Platform==null || Ti.Platform.osname=='android'){
path_lib = '';
}
Ti.include(path_lib+'a.js');

Ti.Platformを確認しているのは、Android環境でTi.Platform環境がnullになることがあるから。

Appcelerator Developer Center – continuous 1.5.0 on android … ti.Platform.name crash

黒魔術よりはすっきりすると思うのですが、将来的に不具合が修正されたり、Andoirod以外の環境が出てきた場合にはコードを修正しないといけなくなる可能性が高いので、これはこれで問題があります。なんかもっといい案があればぜひ教えてください。

任意の書類をShotNoteで取り込めるクリアファイル

2012-11-28 追記
キングジムさんからちゃんとした商品が発売されました。
新製品チェック:クリアファイルの書類をスマホでデジタル化──キングジム「ショットドックス」 – ITmedia ニュース
クリアーファイルに収納した書類をスマホで簡単に持ち出し!「ショットドックス」発売 | ニュース | 「ファイル」と「テプラ」のキングジム

(追記終わり)


ShotNoteというデジタル&アナログな商品がキングジムさんから発売されました。

SHOT NOTE - KING JIM CO., LTD.

手書きメモをスッキリデジタル化「ショットノート」 | KINGJIM
ASCII.jp:デジタル&アナログの新感覚文具「ショットノート」

メモ用紙の四隅にマーカーが印刷されているので、専用アプリで取ると自動的に台形補正&日付のOCRをしてくれる、というものです。EverNoteに送れるのも嬉しい。

クリアファイルで作る薄くて軽いホワイトボードの人としては、これはクリアファイルで作るべきじゃないかと思いました。

・・・できた。
P1000661.JPG

こういうふうにして使います。
P1000662.JPG

これさえあれば、任意の紙に書いたメモをShotNoteで撮影して取り込むことが出来ます。超便利。