2012年1月27日金曜日

Macbook Airを買って一週間でインストールしたアプリ

Macbook Air 11in.を購入しました。
今までWindowsのデスクトップしかなかったのですが、今年は勉強会等にも積極的に参加しようと思い、手軽に持ち出せる開発環境を用意しよう、という意図です。
後はMacを使ってみたかった、というのもありますね。
メインPCはWindows7なので使い勝手の比較が楽しいです。

なにはともあれ本題。
購入後一週間でインストールし、常用しているアプリを列挙します。
色々なブロガーさんがやっているのを見て、私もMacbook Airを買ったら書こうと思っていたのです^^

  • Alfred

    コマンドラインランチャーです。
    キーボードのみでアプリケーション起動やら検索やら、なんでもできるので便利です。
    QuickSilverというアプリが有名なようですが、とりあえずこちらを試してます。

  • AppCleaner

    Macはアプリをアンインストールしても、設定ファイルやらが一部残ってしまうそうです。
    ですが、これを使ってアンインストールするとその設定ファイルやらなんやらも良きに計らってくれるとか。

  • Dropbox

    オンラインストレージです。
    Windowsとのファイル共有とか、バックアップとか、色々便利です。

  • Eclipse

    Androidアプリの開発もあるため必須です。
    日本語化プラグイン「Pleiades」を使う際は、eclipse.iniにpleiades.jarのフルパスを記入する必要があります。 相対パスではダメなようです。
    日本語化するとメモリを大量に消費するので、出来る人は英語で使うことをオススメします。

  • Evernote

    言わずと知れたオンラインメモサービス。
    色々な情報を貯めこんで、ライフログと化してます。
    整理できてませんけどねー…

  • Google Chrome

    メインで使っているWebブラウザなので、これがないと始まりません。

  • Google Japanese Input

    標準のことえりがおバカさんなのと、Windowsでもメインで使ってるため変更。
    これがフリーっていうのはすごいです。
    後はPC間でのユーザ辞書同期があれば…

  • iTerm2

    ターミナルエミュレータ。せっかくユニックス系のOSなのでターミナル使いこなせるようになりたいですね。

  • MarsEdit

    ブログエディタです。
    まだあまり使っていませんが、良い感じです。Wordpressの管理画面から書くよりは数倍いいですね。

  • XCode

    主にiPhone Simulator用にインストール。
    スマートフォン向けサイトの動作確認によく使います。

  • 夜フクロウ

    Twitterクライアント。
    Tweenみたいのがあればいいんですけどねー。

とりあえずはこんな感じで。
テキストエディタはまだ色々試している状態なので、そのうちまとめて書きたい。
そのうちiTerm2の設定とかも書けたらいいなあ

2012年1月18日水曜日

[Android] WebViewのJavaScriptとJavaを連携する時に注意したこと

Asus Transformer TF101 Android 3.2.1でWebView使って詰まったことの覚え書き

・console.logの出力
そのままでもlogcatに出力されるはずが出力されず。
調べてみたら、WebChromeClientのonConsoleMessageをオーバーライドすればできるらしい。
こんな感じ。

WebView wv = (WebView)v.findViewById(R.id.webview);
wv.loadUrl("file:///android_asset/www/index.html");
wv.setWebChromeClient(new WebChromeClient(){
    @Override
    public boolean onConsoleMessage(ConsoleMessage cm){
        log.d("hogeActivity", cm.message() + "--From line " + cm.lineNumber() + " of " + cm.sourceId());
        return true;
    }
});

html上でconsole.logが呼ばれたタイミングでこのonConsoleMessageが呼ばれ、logcatにlogを出力してくれる。
cm.message():ログの内容
cm.lineNumber():console.logの呼ばれたhtml上の行番号
cm.sourceId():console.logの呼ばれたファイルパス

・JavaScriptのfunctionをJavaから呼ぶ

wv.loadUrl("javascript:hoge()");

hoge()はhtml上で定義してあるJavaScriptのfunction。

・jQueryのfunctionをJavaから呼ぶ
基本は上と同じ。でも、下のhoge()は呼べない。

$(document).ready(function() {
    function hoge() {
        $(document).text("hello world");
    }
});

どうやら、$(document).ready(function() {}); で囲われた部分のfunctionは呼べないらしい。
まあグローバルメソッドじゃないから当たり前といえば当たり前か…
だから、下記のように囲わないで記述すれば呼ぶことができる。
function hoge() {
    $(document).text("hello world");
}

ていうか、$(document).ready(function() {}); で囲わなくても動くんですね…
EDIT: なんかうまく追加したプラグインがロードできてない…ログを見るかぎりではロードの順序がおかしいみたいだけど。

あ、WebViewのJavaScriptを有効にし忘れないようにー。
wv.getSettings().setJavaScriptEnabled(true);