2010年3月26日金曜日

AndroidとGAEの同期に関する講演資料を公開します

先日第4回日本Androidの会北海道支部勉強会で講演したんですが、その時のプレゼン資料を公開します。

内容は、データってクラウドに「も」持たせた方が何かと便利だよねーって話と、じゃーライブラリ作って定型化したらみんな使いやすいかもねーって話と、具体的な使い方の話です。

次のような使い方を前提としています。

  • ユーザはAndroid端末1台と、GAE上のサービスを同期できる。(複数台と同期できる方が楽だけど、同期方法が複雑になるので断念)
  • アクセス元のAndroid端末は、電話番号やシリアルを使って自動認識させる。(これはポン付けで動く)
  • Android内のSQLiteに保存されたデータを、そのままの形でGAE上のDataStoreにも入れておき、必要であればリカバリもできる。(データ構造によりカスタマイズが必要)
  • 基本的にHTTPリクエスト(実際にはhttps)を使ってデータを送り、そのレスポンスに対してコールバックを使って制御する。
  • RESTっぽい使い方で、CRUDあたりまでは簡単に使えそう。
  • 詳しい使い方はサンプルアプリのソースを読むべし。たった300行強(SyncTestActivity)だし。

ライブラリとサンプルアプリはオープンソースとして公開しています。

SyncTester

2010年2月14日日曜日

LDD'10 WinterのLTに飛び込んできた

前日に「まだ枠が余っているから話してみたら?」と言われたので、LT開始3時間前から資料を作り、開始直前に会場入りして、LT終わったらすぐ帰ってきた(娘の迎えがあった)。

LT自体は途中で時間切れだったので残念だったけど、せっかくなので資料晒します。

「Ajaxなサイトでもスクレイピングできるのがイイ!」で締めたかったんだけど、そこまで伝えられなかったかも。

2010年2月12日金曜日

WebViewを使ったスクレイピングの使い道

Android MLで WebViewとJavaScriptを使ったスクレイピング ってゆートピックを見つけたんだけど、現在進行形で正しくこのアーキテクチャを使ってプログラムを書いているところだったので、フォロー入れます。つーか入れずに居られない。

なんのこっちゃという方は、こちらを見てください。

WebViewを使ったスクレイピング / scraping a page using the WebView in a Service

スクレイピングにあたっての問題点

まず、自分の場合は特定ページのHTMLを定点観測するためにパーサーを書く必要があったんだけど、Javaに慣れてないので以下のような問題をどう超えようか悩んでいました。

  1. PullParserなどよりXPathを使いたい(使用されるリソース量よりコーディング手間の方が優先。とりあえず形にするにはコレ重要)
  2. 対象のページで使用される文字コードがなんだか分からない場合でも、なんとかしたい。(特にHTTPヘッダーで示される文字コードと、HTMLヘッダーで示される文字コードと、実際に使われている文字コードが違うような変態ページにも対処したい)
  3. XHTMLに準拠してないページでも、なんとかしたい。準拠してなくてもXMLパーサがなんとか使える程度ならいいんだけど。
  4. 壊れているHTML(閉じ忘れ)などでも、なんとかしたい。

ぶっちゃけ、対象ページが固定されていればあまり問題にはならないのですが、今後のため汎用的に作れないかなぁと思っていました。

解決策

んで、まぁいろいろ悩んだのですが、Android向けのアプリを書いていたのでWebView(WebKitをJNI経由でコントロールするためのGUI部品)を使えば、ほぼクリア出来るということがわかりました。

思い起こせば、昔Rubyでスクレイパーを書いていたとき、もじらのHTMLパーサ使おうかなぁと悩んだことがありまして、 理由は全く同じでした。特にHTMLが壊れていても、なんとかなるのが大きい!

特に上記2・3・4なんかはJavaでやってたら死ねたと思います。(単なる知識不足ですが)

補足

一応補足しておくと、上記1ですが、結局XPathは見送りになりました。上記2・3・4のメリットとの天秤でしたが、XPathを使うためには、Javaの外部ライブラリを使うか、JavaScriptの外部ライブラリを使うか、HTML5対応ブラウザの標準関数を使う必要があり、Androidに載っているブラウザはHTML5にはまだ対応出来ていないため、どれもちょっと微妙でした。自分の場合はDOMを使ってパースすることにしました。(DOMを使う場合でも、他の手段と比べてかなりコード量は減るはずです)

2についてはWebKit側で自動的に推定してくれます。精度はレガシーなページ(EUCやShiftJISなページ)をブラウザで開いてもまぁまぁきちんと表示されることから、まぁまぁ良いぐらいでしょうか。

3についてはブラウザ内のJavaScriptを使うことで解決しています。DOMでもXPathでも使えるはずです。個人的にはJavaでパーサを書くより好きです。

4については、WebKitが対象のHTMLを取得し、レンダリングのためWebKitのHTMLパーサーに渡した時点で、文法的に明らかにおかしい(trを閉じてないのにtableを閉じたなど)は、自動的に修正してくれます。ブラウザ内のJavaScriptからアクセス可能なのは、このパース後(修正後)のHTMLなので、スクレイピングに支障をきたすほど壊れたHTMLに出会う確率はぐっと減ります。

使いどころ

ざっと思いつくのはこんな感じでしょうか。

  • レガシーなページを含む場合のスクレイピング。最近のHTMLはXHTMLに対応しているこが多いけど、昔からある個人運営のページや、携帯向けページは未だにスクレイピングしづらいものがある。
  • 上記の発展として、「(単純にタグを除くだけの全文検索タイプではなく)タグ構造を考慮に入れたサーチエンジン」のためのクローラ&パーサ。まともにHTML解析機を作ってると死ねると思うので。
  • オートパイロット。例えばヤフオクなどで、ログインしてなかったら(特定文字を検出したら)オートパイロットモードになってログインし、指定されたページに入札を行うなど。同様のことはHTTPリクエストだけでも行えるが、今何が起こっているのか見えるのでユーザは安心かと。
  • Ajax前提のサイトなど、JavaScriptが動いてくれないと必要なデータを取得できないような場合。これが今まで出来なかった! Androidエライ!!
  • HTTP的なお作法に厳しいページへのスクレイパー。Railsなどはリダイレクトを多用するけど、自分でリダイレクト対応のコードを書くのは面倒だよね。Cookieも自動的に処理してくれるから、セッション管理が楽。Basic認証とかSSLとか数え上げれば切りが無いほど、「フツウ」にHTMLに触れるのはメリット。

で、デメリット

といいつつAndroidのWebViewも万能ではない。

  • WebViewはViewクラスを継承しているので、いわゆるUIスレッドでなければ正常に動かないかも。(下記Tips参照)
  • Javaのメリットって、比較的簡単にマルチスレッドを使えるってのがあるだろうけど、上記理由によりマルチスレッドでは動かない(可能性が高い。やり方によるのかも)
  • 上記理由により、意味不明に落ちることがある。そんときのバックトレースから、Looperの仕組みなどをきちんと理解する必要があるのかもしれない。ハマると抜け出すのに苦労する。
  • リソース大食い。ServiceからWebViewを使うことにした場合、これは頻繁に虐殺されることを指す。殺されないための手当と、殺された場合にシームレスに復活するための手当を要す。これはこれで結構面倒(かつノウハウがあまりWeb上に蓄積されていない)。また、このせい(リソース食い過ぎ)で他のServiceがまともに動かない可能性も。
  • (PCを含めた)スクレイパーとしては致命的に重い。Android内に限っても、、、やっぱり重いかも。特にHT03AのCPUではそう感じる。1GHzぐらいあればあまり気にならないかも。
  • 2つのWebViewを同時に動かすと落ちる? 不安定になる?(調査中)  JNI使う場合は、行儀良くしないとアプリではなくOSが落ちます。
  • Androidに載ってるJavaScriptエンジンって、V8じゃなかったような。。。感覚的にはJavaでXMLパーサを使うより、ブラウザ内でJavaScriptを使ってパースする方が、2〜3倍遅い気がする。(あくまで感覚値)
  • UTF8でXMLやXHTMLを返すとわかっている場合は、JavaでHTTP叩いてXMLパーサを通した方がきっと早くてリソース消費も少なくてマルチスレッドで動く。なんでもばっちこいな場合のみ、WebViewが使えるのかも。特にAndroid上で動かす必要が無いならば、他の方法とよく比較検討した方がいいかも。

Tipsというかバッドノウハウ

試行錯誤から得たノウハウをちょっとだけ。(出し惜しみではなく、もうハマリポイントを忘れたため)

  • 自分の場合、Serviceクラス(の派生)からWebViewクラス(の派生)を呼んでも、正常に動きました。WebViewを使ったスクレイピングのようにレンダリングやパラメータは調整しましたけど。この状態でActivityにバインドして毎分リクエストして24時間ぐらいは平気で連続取得に耐えていますので、お作法的にはよろしく無いかもしれないけど、実際には使えると思っています。まぁ、少なくともアプリが自分のコントロール下にある(ソースをいじれる)うちは、ServiceでWebView使ってもいいかなぁとか。
  • JavaからWebView.loadUrl("javascript:ごにょごにょ;");で、今開いているページに対して追加でJavaScriptを動かせることができる。ブックマークレットみたいな感じ。ちなみに、ここで渡すJavaScriptは相当長くても動いてくれる。
  • WebKitのHTMLパーサーにかけた後の、修正済みHTMLをJavaScript経由でJavaに取り込むこともできる・・・ハズ。JavaScriptでHTMLタグのinnerHTMLを取得するなど。ハズっつーのは、実際にやってみたけど尻切れになっちゃうから。HTMLタグの子供をループしてのinnerHTML取得だと、もう少し取れるけど、完全に取れたか確認出来ないし。。。うまくいった方はやり方教えてください。
  • ってか、NDK使って、WebKitの文字コード推定&コンバートとHTMLパーサ部分だけを使うJNI作っちゃえばいいのかも。ってか、コレAndroidの標準ライブラリに入れてくれないかなぁ。

まとめ

長くなったので、まとめてみる。

  • やんちゃなページを相手にスクレイピングを仕掛けたいならWebViewに限る
  • とくにAjaxなヤツを相手にするなら現状WebView以外の選択肢は無いように思える
  • でもこいつはクセが強いぞ。心して掛かれ

2009年6月2日火曜日

OSC2009北海道の歩き方(Webプログラマな方編)

オープンソースとして公開されているソフトウェアを一堂に集め、セミナー形式で理解を深めたり、出品ブースなどでソフトウェアに触れてみたりなどなど、オープンソース関係のお祭りであるオープンソースカンファレンス2009北海道(以下OSC2009北海道)が今年も開催されます。

日程:2009年6月20日(土)10:00-18:45

会場:札幌市産業振興センター 産業振興棟2F&技能訓練棟3F

費用:無料

OSC2009北海道には、さまざまな立場で参加する方がいらっしゃいます。OSC運営側でもそれは認識しており、どんな人が来場しても楽しめるようにオススメコースというコンテンツを用意したりしています。

これに倣って、Webプログラマコースを考えてみました。

どんな人にオススメか

まず、自分の立ち位置をまとめてみましょう。これと同じような人だと結構良い感じにオススメできると思うのです。

  • Webアプリのプログラマ。開発言語はRubyとかPHPとかJavaScriptとかActionScriptなど。Flexも使う。AndroidやiPhoneも手を出している。
  • 必要なサーバは自分でセットアップする。昔はネットワークとかサーバの構成から設計を始めたけど、技術の進化スピードが速くて数年で陳腐化したり、以外と管理に手間が掛かったり、納期まで時間が掛かる事に嫌気がさしている。
  • サーバ仮想化の技術や、クラウド(Amazon EC2/Google App Engineなど)に切り替えを実行中。
  • 一般的なWebアプリなら、自分一人で構築することができる。ソースコードのバージョン管理や、バグトラッキングシステムなどは既に業務フローに組み込まれている。
  • Webアプリに関する興味対象は、カスタマイズ可能な全文検索エンジン、集合知・レコメンドエンジン、地理情報系、自然言語解析・統計・画像認識系、少額決済系、アプリケーションレベルの負荷分散系、クラウド環境での効率的なプログラミング、Webアプリのフレームワーク(RailsとかCakePHP系)などなど
  • デザインに関してはデザイナ任せであるものの、最近のWebアプリはブラウザ互換性や、設計段階でデザインなHTML/CSSの知識を必要とするため、フォローが必要だなぁと思っている
  • なんだかんだ言っても、ソフトの世界だけで完結するモノだけじゃなく、電流を流してモーターを駆動させたり、センサーの値を読み取ってイベントを派生させるようなものが、実業務ではまだまだ必要だなぁと思っている

どんなコース?

こんな自分が自分で見たいなぁと思うOSC北海道のオススメコースとその理由を考えてみました。ただし、自分の知識レベルと興味範囲でのチョイスです。

  • 9:50 会場に到着して「ほへ〜」と言う。1FのETロボコンを見て「すげ〜」と言う。そういやGainerボードが埃被ってるけど、久々になんか作ってみるかなぁとか思う。とりあえず始まるまでパンフをふむふむ読む。
  • 10:15〜11:00 「システム監視の画期的コストダウン、今、新概念のオープンソースZABBIX/ZABICOMが課題を解決」というセミナーに参加。root貰えるレンサバやEC2などでも、システム監視は必要なので、最新動向を追う必要はあるかなと。どれくらい画期的コストダウンなのかタイトルに釣られてみる。
  • 11:15〜12:00 「textsearch_jaで全文検索」というセミナーに参加。これってPostgreSQL 8.3から標準で使えるのかな? 個人的に地理情報を扱う場合などはPostgreSQL+PostGISの独壇場だと思っているので、この組み合わせに耐えうる情報はフォローと。
  • 12:00〜13:00 昼休み。隣のイーアス札幌であんかけやきそばか、インドカレー+ナンを食う。どっちにするかは当日の気分次第。早く飯食ってブースでもゆっくり見ようかな。昼休みにミニセミナーあるかも知れないし?
  • 13:00〜13:45 「エンタープライズCMS「TYPO3」の機能紹介」というセミナーに参加。なんかあちこちで良い評判を聞くんだけど、実際には触ったことがないTYPO3。でも、知識だけあれば打ち合わせの席で「それTYPO3でやりませんか?」と言えるかも?
  • 14:00〜14:45 迷う時間帯。Git使ってなければまずそこを狙うべきだけど、もう実業務で使っているので興味なし。メール関係もノウハウの蓄積が必要な分野だと思うけど、いちいちメルサバのチューニングするより、Google Appsとかレンサバの機能を使うようにしないと、保守に手間取るしなぁ。ブースでもゆっくり見ようか?
  • 15:15〜16:00 「ホスティング徹底比較」というセミナーに参加。EC2は最低1万円/月ぐらいコストがかかるので、root要らないような案件ならレンサバの方がいいかも。国外レンサバは激安が多いけど、国内のレンサバ事情も押さえておかないと。
  • 16:15〜17:00 「[企画セッション/断絶を越えて] 技術者も覚えておくべきクロスブラウザ対応コーディングのポイント」というセミナーに参加。実は結構迷う時間帯で、Redmineを使ったこと無ければソレを、Google App Engineを使いたければDjangoを取りに行くのが良いかも。個人的にはGoogle App Engineは見送ったのでPythonを追う必要性を感じず、Redmineはワークフローに入っているので、クロスブラウザの情報を追う方が良いかなぁと。
  • 17:15〜18:45 閉会式でジャンケンして商品ゲットぉ
  • 20:00〜懇親会で飲んだくれる。実際去年の懇親会で隣だった人って、今勉強会に行ったら良く顔を見る人だったりするので、知り合い増やしたいなら参加するべき。

妄想の世界だとこんな感じだけど、実際はOSCスタッフ&Androidの会スタッフとして動かなければいけないので、セミナーに参加はできないのさぁ;-)

OSC2009北海道に参加したい方は

セミナーは予約制です。

もう既に定員近いセミナーもありますので、興味ある方は早めに申し込みどうぞ。

オープンソースカンファレンス2009 Hokkaido - 行くしかないっしょ?!

2009年3月4日水曜日

技術系勉強会に非プログラマを取り込む方法について考えてみた

非プログラマにリーチしたいというのは、技術系イベント主催者にとっての目標の一つでもあると思うので、デザイナとスーツを呼び込むためのキーワードとして、デザイナとスーツについて個人的に思っていることをまとめてみました。

例えば、技術的に濃い話をする場合でも、以下のような切り口で語れば、非プログラマにもリーチするのではないでしょうか。

何か企画をするときの参考になればと思います。

デザイナが興味ありそうなこと(とその理由)

ここでは、デザイナの定義は、Webデザイナとします。

  • メールやFTPなどの基本的なサービスのざっくりとした動作原理。目に見えるインフラ(プログラムと連動するときの考え方の基礎となるので)
  • Webシステムを構築するとき、どういう点に注意すれば効率が良く開発を進めることが出来るか(システム構築フローと、それぞれのプロセスのコスト感覚が把握できていないので)
  • 自分の能力の伸ばし方。将来構想。将来設計。自分ブランド(絵を描いたりデザインすることは人間しかできない特殊な能力なのに、その商業的な価値についてあまり深く考えてないので)
  • 使いやすいUIに対する知識(本来はUIデザインはデザイナの仕事のハズなのに、現状その知識を持っている人は僅かなので)
  • GPL系、MIT系、CCライセンスの要点とビジネス的な存在意義(基本的にはスーツと同じ理由だが、現場に近い割にライセンスに対する知識がないので)
  • CCライセンスの素材の使いどころ(ライブラリ化してうまく使えば仕事が楽になるはずなのに、うまく取り込めていないので)
  • jQueryなど、ブラウザ上でJavaScriptを使った何かを作る上で、HTMLやCSSコーディングにおいて注意した方が良い点(各種JavaScriptライブラリに対する知識が足りないので、どうやって動くのかが理解できていない)
  • 純HTMLなWebアプリ、AjaxなWebアプリ、Flashなアプリ、Windows上のGUIアプリ、モバイルアプリなどの限界と使いどころ(それぞれの知識が足りないので)

スーツが興味ありそうなこと(とその理由)

ここでは、スーツの定義は、経営者・キャピタリスト類・営業企画・OSSを使っていない企業プログラマとします。

  • どんな技術が今後伸びてくるか。その市場規模と確度(ビジネスモデル立案のヒントとするため)
  • どんな技術/OSSを使うと、どんな分野にどういう効果があるか。どういう分野に向いているか(特定技術/OSSの意味をちゃんと理解していないので)
  • OSSでどこまでできるか。どんなことはプロプライエタリ製品を使った方がよいか。その境界線についての具体例(OSSに対する経験がないので)
  • OSSを使っていて、サポートの提供が無いために困ったことの具体例。その回避策(OSSに対するリスクの把握)
  • GPL系、MIT系、CCライセンスの要点とビジネス的な存在意義(メリットやリスクを含め、ライセンスに対する知識が足りないので)
  • 自社開発OSSを使ったビジネスモデルの事例(OSSの開発が有効な自社広告となりえるという可能性は理解できるが、実際の成功可能性が想像できないので)
  • 日本以外の国でのIT事情と最新動向(ビジネスモデル立案のヒントとするため。特に相手を東京に限定しない分、道民にとってはメリットが高いように思う)
  • 市場調査やプロモーション活動や効果計測についての実際。特にコスト方面(ディレクションする上での基礎資料として)
  • IT以外での広告活動におけるコスト感覚と使い分け(テレビ・ラジオ・新聞・チラシ・勧誘員などなど。コンサルティング基礎資料として)
  • 各用途においてオススメのOSS(比較検討するコストやスキルがないため)

デザイナ・スーツ共通

  • 技術寄りの話はデザイナやスーツには届かない。同じ内容のセッションでも、非技術用語だけを使ってタイトルを付けて、その流れを使った切り口で語れば、デザイナやスーツにも届くのでは?
  • 中・長期的な技術変化の予想(リスク把握。舵切り)

使用上の注意

元々オープンソースソフトウェア(OSS)のイベントに、どうやってデザイナなどを呼び込むか、といった議論用にまとめたものです。上記「OSS」と限定している部分は、他の固有名詞(Androidとか)に置き換えても成立するかも知れません。

色々反論あるでしょうが、あくまで個人的なイメージです。何かあればコメントにどうぞ。

2009年2月26日木曜日

仕事が忙しくても好きなもの作って発散させたらいいと思いますです

年度末で何かと忙しい時期かとは思いますが、このブログを読んでいるような人は仕事がプログラマで、趣味がプログラミングという特殊な方が多いと思いますので、仕事が忙しくても好きなもの作って発散させたらいいと思いますです。

そのきっかけになりそうなイベントをさっくりご紹介しますので、興味ある方はご一緒どうでしょうか? (Androidに偏ってるのは趣味です)

第7回北海道開発オフ

いわゆる開発集会です。おのおの好きなお題を立てて、もくもく作ってます。自分の知らない分野も覗けるので、何気に楽しいかも。

まいむぞうがAndroidでAR関係のアプリを作ってたり、SladjReaderな方と一緒したり、組み込みでAndroid触ってる方が居たりと、何気にAndroid関係者が多いのも、おいら的には居心地良いです。Rubyistが多かったりね。

何か作りたい気持ちはあるけど、家に居ると邪魔する人や誘惑が多くてダメだと思ってるような人は、ちょうど良いイベントだと思います。

日時 / DATE : 2009/02/28 10:00 to 18:00

定員 / LIMIT : 20 人

会場 / PLACE :   有限会社オープンソース (札幌市中央区南3条西8丁目2番1号)

URL / URL :   http://groups.google.co.jp/group/DevDo/

参加費 : 無料(食事などは各自手配、持込も外食も可

集合方法 : 当日現地集合

開催にあたって:

  • PC(+開発環境)は持ち込みオンリー。 しょぼいデスクトップはあります、使用は可ですが、インストールは不可。
  • ネット環境は,有線があります。無線ハブを繋ぎます。
  • 室内飲食可、自販機もあります。

※詳しくは、こちらをご覧ください。

Sapporo Java Days 2009 Winter

日本Androidの会北海道支部が活動の拠点としている、札幌Javaコミュニティのイベントです。

浅海さんとひがさんとをお招きして、モデリングやSeasar関連のセッションを予定しています。

Android関連では、コミュニティトークとテクニカルショートセッションとして、それぞれ10分づつぐらい話すことになってます。(アプリ紹介と10分ライブコーディングを予定)

まいむぞうはスタッフとして参加する予定です。

開催要項

日時  3月7日(土)10:00~(受付9:30)

会場  札幌コンベンションセンター 201-202会議室

参加費 1,000円

最寄り駅 地下鉄東札幌駅(徒歩10分)

主催 札幌Javaコミュニティ

セッション概要 マインドマップ・モデリング、Agile Modegramming for Cloud、Slim3のすべて、Seasar2のすべて

※詳しくは、こちらをご覧ください。

2009年1月31日土曜日

ガラパゴスケータイにできてandroidにできない事

おいらはauのW51Hを持っていて、androidが出たら買い換えようと思っています。

・・・が、冷静になってみると、iPhoneの時のように、ガラパゴスケータイに出来て、androidに出来ない事って結構あって、しかも結構致命的なモノもあるんじゃないのかな?と思ってきました。

まぁ、当然日本のキャリアさんもちゃんと考えているとは思うのですが、一応心構え+ビジネスチャンス的な意味も含めて、整理してみます。

なおケータイ使いこなしている訳じゃないので、比較対象に上がってないモノもありますし、下記は自分のケータイに付いてる機能の比較なので、キャリアや機種が違う場合は抜けがあるかも。まぁ、キャリアが違っても機能は横並びでしょうから、ガラパゴスキャリア vs Androidの構図には変わりないかと。

てか、Androidで通話してるわけじゃないし、設定画面の全メニュー調べた訳じゃないから、勘違い含んでると思うので注意!!(汗)

EZアプリから

  • EZメール読み上げ(使ったこと無いけど。まだandroidでは日本語読み上げは出来ない)
  • デコメール相当のHTMLメールの表示(いや、emailアプリでは出来るのかも知れないが、使ったこと無いので。Gmailアプリだけで十分じゃん。ケータイにおけるそれは金儲けの手段だったんだろうし、これに意味があるかどうかはわからない)
  • EZニュースフラッシュ(待ち受け画面にプッシュでニュースを流すティッカー。標準で付いてるアナログ時計アプリのようにティッカーも作れると思うんだけど、まだ待ち受けアプリ相当のモノは出てない。コレ何気によく使う)
  • EZナビウォーク(これが無いとおいら東京出張できない。androidのマップアプリと比較すると、完成度が段違いに良い)
  • EZ助手席ナビ(EZナビウォークの車載版。走行可能な道のみルート選定に使ったり、ナビ音声のタイミングやマップがコンビニやGSなど車用にチューニングされている。ロジックは同じでデータやパラメータは全部差し替えてある感じ)
  • EZテレビ(androidはまだワンセグ視聴できない)
  • EZFM(androidはまだラジオを聴けない。ただ、あんまり必要性も感じない)
  • EZ安心ナビ(ケータイを落としたときなどに場所を特定し、遠隔ロックなどの操作を行う。この機構はまだandroidには無い。これ必須だと思うんだけど・・・)
  • バーコードリーダー&メーカー(androidは標準状態ではQRコードを読み書きできない。Android Marketからアプリを入れれば対応可能)
  • live earth(地球儀アプリ。使ったこと無いけど。必要性も感じないけど。まだandroidにはgoogle earthは無い)

ブラウザ方面から

  • Flashが動かない(必死に対応中という話は聞こえてきた。PC版と同じ規格で動かないと意味がないので、大きな山と言える)
  • FlashLiteも動かない(そもそも必要ない気はする)
  • Javaアプレットも動かない(最近は動かなくてもあまり困らないけど)
  • PCサイトを見れるとはいえ、FlashもJavaアプレットも動かないので、実用にならない場合もあるかも
  • てかニコニコ動画見れないのは死活問題
  • 機種固有番号に相当するモノがない(WebKitを拡張しちゃえばいいのに)
  • まとめて支払い系の少額決済サービスが無い(結構致命的。いや、キャリアさんは頑張ってくれるハズ)
  • ブラウザから位置情報を扱えない(ケータイの位置情報付きリンクのような機能が無い→Webアプリベースでは不利。どこかのキャリアとタグ仕様を合わせて、WebKitを拡張しちゃえばいいのに)
  • モバイルバンキング関係はPCから使えないところもあるのかも(PCサイトがあればいいけど。機種固有番号やIP縛りをしているケータイサイトもあるので)
  • iKnowモバイルアプリがまだ無い(androidアプリのスペック的にはPC版iKnowが作れそうではある)
  • 日本の情報がちゃんと出る地図付き乗り換えアプリがない(時間の問題だと思う)

メール方面から

  • 絵文字がない(必須。女の子は「特定キャリアの絵文字がカワイイ」という理由で乗り換えません)
  • 厳密ではプッシュ配信ではない(Gmailアプリなどはバックグラウンドでプルするのであまり実害は無い。けど頻繁にやりとりするには辛いかも)
  • メールフィルターがない(Gmailならスパムフィルターはついてるけど、PCが無いと実用的な設定はできない。まぁ、近く解決するだろうけど)
  • メールアドレスの変更が出来ない(必須!! Gmailをメインに使うことを考えれば、複数のメールアドレスを切り替える機能が欲しい。POP3/IMAPなら現状で良いのかも。使い勝手知らないけど)
  • 何かにつけてPCで設定してAndroidは使うだけ、という思想が見える(ので、android単体で買うと痛い目に遭う。現状振り分けもPCからのみ設定できる)
  • メールの分類や検索やソートがイマイチ弱い(基本的にGmailのタグと検索で行けるはずだけど、まだ使い勝手が悪い。ソートは対応して欲しいなぁ)
  • 宛先入力時にアドレス帳から選択できない(ただし先頭文字からの補完機能はある。けどやっぱりアドレス帳から選ぶという選択肢も欲しいよねぇ)
  • 宛先入力時に送信履歴や受信履歴から選択できない(やっぱこれ欲しいよね)
  • 顔文字(普通の文字だけで顔やアクションを示したやつ)の辞書機能がない(やっぱこれ欲しいよね)
  • メール→添付から新規写真や新規ムービー・新規録音などへ連動できない(やっぱこれ欲しいよね)
  • GPS情報付加機能がない(個人的にはすごく痛い。auに慣れたせいだろうけど。現在地をgoogleマップのURLで表現したモノを出力できるようになればいいのかな。naviウォークやnavi time連動・PC向けgoogleマップ連動・ガラパゴスケータイ向けgoogleマップ連動などを選べるようになってればOK。てかそんなアプリ作ればいいのか)
  • アドレス帳の内容貼り付け機能がない(これも痛い。よく使うよね)
  • 送受信履歴からのアドレス貼り付け機能が無い(これも痛い。よく使うよね)

標準機能から

  • モバイル辞書機能がない(Android Marketだとたぶん有料)
  • そもそもまだ標準機能では日本語入力できない(近く対応予定ではある)
  • 日本語入力できないので、変換用辞書という概念も無い(将来的には必須だと思う)
  • キャリア側のサーバへのデータお預かりサービス的なモノがない(これは微妙。androidの仕組み上、アプリ個別ではなく、全体を通してのバックアップは難しいかも知れない。なので対応するならシステム側に仕組みが必要。バックアップは出来た方がいいよね)
  • アラームはまだ機能が弱い(アプリの問題。じきに解決すると思う)
  • 日本の休日・祝日に対応してない(これ大問題。主にカレンダーアプリの話だけど、アラームなど他の機能にも影響するので)
  • タスクリストがない(標準搭載のToDoアプリのこと。Android Marketには腐るほどある)
  • テレビの番組ガイドがない(アプリがないというだけ。たぶんすぐに解決する)
  • 標準ではテキスト編集アプリがない(Android Marketには腐るほどある。googleDocs互換のアプリでも標準で付ければいいのに)
  • 単語登録・定型文登録・顔文字登録ができない(まぁ近く解決する気はする。特に定型文は忘れやすいID/パスワードを登録したりするので、この機能が無いとかなり不便)
  • エニーキーアンサーが無い(受話ボタン以外のキーを押しても受話させることが出来る機能。これぞガラパゴスの心配り)
  • エクステンションモードが無い(電池が残り少ないときに音やバイブを停止するバッテリ温存モード。これぞガラパゴスの心配り)
  • 防犯ブザー(アプリがないだけ。でもまだAndroid Marketにも無い気がする・・・)
  • ホットダイアル(特定番号へのショートカットキーでの発信する機能。緊急時用。これぞガラパゴスの心配り。いやまて、androidのショートカット+それ用アプリ作ればできるかも)
  • 時刻補正機能がない(G1には付いてないと思う。未確認だけど。ntpを使うのが正しい解決法かな?)
  • 番号付加設定がない(発信時において自動的に先頭に特定の番号を付加して発信する機能。国際番号とかサービスとか? これぞガラパゴスの心配り)
  • オート着信がない(正しくは未確認。イヤホン使用時に自動的に着信する機能)
  • 着信転送サービスが無い(正しくは未確認。あんまり使わないけどね)
  • 番号通知リクエスト(非通知番号時に番号通知で書けて欲しい旨の自動応答をする機能。まぁ欲しいよね)
  • 割り込み通話サービス(いわゆるキャッチホン。どうすんだろね、これ)
  • プロフィール機能がない(必須!! よく使う機能なのに、なんで無いんだ?)
  • ガイドがない(いわゆるヘルプアプリ。取説見合いのテキスト+検索ができる。何気に使うかも)

設定画面から

  • 現時点での通話料金照会などができない(キャリアさんに期待)
  • キャリアと契約したプランごとの料金目安やシュミレーション機能がない(キャリアさんに期待)
  • オンラインでの各種申し込み・変更ができない(キャリアさんに期待)
  • Cメールが多分送受信できない(SMSに相当。androidにはSMSアプリはあるんだけど、ホントどうするんだろう?)
  • 音/バイブ/LEDに関しては、全体を一括設定することはできない(androidでは完全に個々のアプリごとの設定となる。ので統一感的なモノは少ないかも。理想としてはUI的にはマスターセッティングがあって、個々のアプリごとにオーバライドするのがいいんだろうけど)
  • 全体を通してのフォントサイズ変更(androidではこういう全体的な設定変更は難しい)
  • メニューなどの多言語対応(今は英語だけだけど、近く色々な言語に対応予定ではある)
  • 着信拒否やメール受信拒否など(必須だけど、どうするんだろう? アプリ側で対応?)

ハード方面

  • サブディスプレイが付いてない(時間や留守電/メールは見れた方が便利)
  • 二つ折りじゃないので、ディスプレイに傷が付きやすい。落としたとき死ねる(まぁしょうがないのかも)
  • FeliCaに対応してない(明らかな弱点だけど、日本独自の問題だからなぁ・・・)
  • ケータイクーポンに対応してない(FeliCa応用の一種。使ったこと無いけど・・・)
  • 指紋認証がない(W51Hの独自機能。なんだかんだで使わなくなるんだけどね)
  • 赤外線送受信できない(大問題。名刺交換代わりに自分のプロフィールを目の前と人と交換するよね)
  • メディアスタンドがない(大問題。G1やDevPhoneはUSB刺さないと充電さえ出来ない。不便すぎる)
  • キー照明がない(暗闇ではキーボードは操作できない)
  • 物理キーでマナーモードに切り替えできない(ポケットに手を突っ込んでマナーモードにしたいよね)

どのレイヤーでサポートすべきか解らない機能

  • 留守電って必須機能だけど、ソフト側で対応?キャリア側で対応?(これホントどうするんだろうね?)
  • androidはまだ動画を撮れない(近く対応予定ではある)
  • インデックスプリント指定や部数設定など、写真印刷のサポート機能がない(アプリがないだけの話か・・・)

はい、まとめ

ええと、予想通り、ガラパゴスケータイはすごいです。

なんつーか、揉まれて育ってきてるので使い勝手がよいのです。その点androidは筋は良いけど荒削りなのが目立つかな。

上記は勘違いも含むでしょうし、au独自の話もあるでしょうけど、それにしてもガラパゴスケータイに出来てandroidに出来ない事の数が多すぎです。

まぁ、それを補完するandroidアプリを用意できれば済む話も多いので、1/3ぐらいまで減らすのは簡単でしょうけどね。

逆に言うと、ここがビジネスチャンスなのかも。こういう風に書き出さないと、みなさん気づかない事も多いですよね。日本のケータイは進んでて、そのユーザの目も肥えていると自覚し、そこに追いつき追い越せが目下の目標かもね。ビジネスになりそうなネタも含んでいることだし、日本でのandroid端末発売時点までに、上記問題点のリストが半分になってればいいですね。(androidの強みを生かせるようにインテントで連動できるようにうまーく設計してくださいね)