刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

anちゃん2用メモ

50,000DL行ったら、って書いたけど、どうせ近いうちに行くし、ちょっと気になるから軽く調べてみた。
まずはjs -> nativeのブリッジについて。

http://developer.android.com/intl/ja/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object, java.lang.String)

これでJSからJavaのコードを叩ける。普通に色々サンプルがあるから、呼び出しは余り困らなさそう。
問題は、通信周りの非同期処理が必要なケースで、JavaからJSの関数を呼び出す方法が非常にえぐい。

http://www.mail-archive.com/android-developers@googlegroups.com/msg13782.html
http://code.google.com/p/apps-for-android/source/browse/trunk/Samples/WebViewDemo/src/com/google/android/webviewdemo/WebViewDemo.java

文字列渡したいだけだと楽だけど、そうじゃないとjsonに変換しないといけないから面倒くさい。
いくつか回避策は思い浮かぶけど、どれが一番高速化わからん。大雑把にはタイマーでやるか、javascript:でやるかになって、値を引っ張らせるか渡すか、って感じだと思う。

Javascript/HTMLの実装はClosureとsoyでいいかね。
http://code.google.com/intl/ja/closure/templates/docs/helloworld_js.html

何かしらヘッダとかフッタとか固定でおきたいけど、どうすべきかね?Froyoじゃないとposition:fixedできん。iScrollみたいなの使ってもいいけど、うんこみたいに電池使いそうだからやだ。

あと、何よりも重要なポイントなんだけど、何のために書き直す?今のものより、何かがすごいものが作れる?作りたいから作ってみる、でいいの?

その他色々実装にあたっての疑問点:

  • ターゲットとしてAndroid以外のデバイスはどう考える?
    • 個人的には割とどうでもいいけど、ちょっと面白い。
  • ストレージはどうする?local storageは明らかに目的に向いていない。
  • クローラーもデータを保存する必要があるから、local storageではなく、nativeのほうで保存しなくてはいけない
    • android版にはweb databaseベースのストレージ実装を書けばいい?
  • webview - app - remote processの三段構えでデータのやりとりしなくちゃいけないから、糞遅くなる予感がする
  • 書き込みはどうする?
  • 結局nativeコードで書かないといけないところが多いから、UIだけHTMLで、っていうことになりそう。
  • HTML+JS+CSSにすると何が嬉しいかというと、開発が楽、というわけで、じゃあ今まで作ってきたのを捨てる価値があるの?というと特にない。多分。
    • 逆にいうと、今後何か新しいViewを作る必要が発生した場合は、Webviewで作るべき

よく考えてみると、あまりいいアイディアではない気がしてきた。
何も実装していない状態から作らないといけないとすれば、正しいアプローチだと思うんだけど、すでにここまで作ってしまったことを考えると、あまりにも遠回りすぎる。面白そうなんだけどね。