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