実はしばらく前にTwitterのTLで流れてたのを見て触りだしてからはまっていたので、最近の盛り上がりは嬉しく思います。なんたって一時期は日本でTi mobile使ってるのは数人ぐらいしかいないんじゃないかとか思ってたぐらいなので。
へえまだアルファブロガーっているんだぁと思った次第。
実は既にそれなりにまともなiPhoneとAndroidアプリをTi mobileで作ってそれぞれAppStoreとAndroidマーケットで公開していたりします(本名で出してるからここでは紹介しない)。
ということで僕も別にそんな経験あるわけではないけど使っていて感じたこととかつらつらと書いてみますよ。
因みにTi mobileの日本での先駆者と言えばまとめサイトも作られてるdonayamaさんとかyuichi_katahiraさんとかですかね。また Yuichiro MASUIさんはAdMob用など幾つかiPhoneモジュールを公開されていらっしゃいます。
僕の経験で言うと一週間でiPhoneアプリは出来てしまったんですがそこからAndroidに対応させるのに二週間かかりました。原因はAndroidでのバグ?らしき挙動とiPhone版さの差異のためです。
iPhone版は非常に優秀でJavaScript好きの人ならさらさらと簡単にアプリを作れてしまうと思います。ただそれと同じつもりでAndroid版に拡張し始めると要領があまりに違っていてかなりはまりました。
例を挙げると、何故かiPhoneでは当たり前に取得できるresponseXMLがAndroidではRSSフィードによっては文字化けしたり(結局最後まで原因はわからず、responseDataを使ってパースした)、windowのxIndexがwindowのlayout指定によって順序が異なったり、WebViewで取得したHTMLは外部からは取得できなかったり、windowのblur/focusイベントは動作しなかったり・・などなど。
「iPhoneとAndroidでは画面サイズとかが異なるからコードを分けないといけなくなる」程度の話が流れていますがそれどころではないです。僕はかろうじて同一レポジトリに閉じ込められましたが、現時点ではコードの規模によっては別々に開発することも考えた方がいいこともあるでしょう。
Titanium Developer製品(Ti mobileはその一環)はOSSで開発が進められているのですが、チケットを見てもAndroidのissueは多いように見えます。
まだまだ開発途上の製品なのでそれにうまく付き合えるかどうかがポイントになります。
恐らく先のAppleによる「AppStoreからの開発ツールの締め出し」騒動に関係していると思われますがiPhone版ではコンパイル時にネイティブコードに変換します。対してAndroidではJSエンジン(恐らくGoogleのV8?)でリアルタイムにインタープリターもしくはJITで実行しているようです。つまり解釈されるエンジンが異なるのです。これが前項の原因でもあり、また両者での違いを経験から読み取っていく必要があるでしょう。
僕もTi mobileを一番気に入っているのはメモリ管理を気にしなくて良いと言うこと。特にiPhoneでは顕著ですよね。しかし一方ではそれはメモリリークなどの管理をできないということも意味します。
開発元のAppceleratorでは「メモリリークはうまく回避しているよ」と言い切っていますが 実際に試してみると細かなメモリリークは発生し得るようです(特にネットワーク周り)。
あまり問題にはならないレベルとは思うのですが、JavaScriptに書き慣れていないとGCを意識できずオブジェクトを残し続けてしまいがちです。ブラウザでもよく話題にはなるのですがかなり巨大なコードにならないとあまり気にしない部分かと思います。しかしTi mobileではGCを意識した変数設計をしておかないと簡単にメモリを食い潰すアプリができてしまいます。
こういう時は逆にGCに頼るのではなく自由にメモリ管理も出来る仕組みがあるといいですね。
これはAppceleratorが基本的にはOSSで無償で提供しつつビジネスとしてサポートを有償にしていることと関係していると思うのですが、ドキュメントがあまりに杜撰です。
そもそも返値とパラメータが全く異なっていたり(多分コピーミスなど)、ドキュメントだけではちょっと複雑な仕様を実装しようとすると悩むことが多いかも知れません。
他の方もおっしゃっているように、APIドキュメントよりもサンプルアプリであるKitchenSinkを最大限利用しましょう。特にiPhoneとAndroidの実機に実際インストールして動作を確認することをお勧めします。
またドキュメントはあまり参考になりませんが、ディスカッションフォーラムは割と参考になることが多いです。凄く盛り上がっているとは言えないけど みんな同じ事で悩んでいるのです。
Ti mobileでもiPhoneとAndroidのすべての機能に対応しているわけではありません。また世には様々な便利なライブラリが公開されていますが、当然それらはObjecive-CやJavaで書かれています。Ti mobileにはそれらネイティブコードを取り込むための「モジュール」という仕組みが用意されているのですがそのためにはObjective-CやJavaでもコードを書けなければなりません。更に言えばiPhoneやAndroidでどのようにアプリを開発するかの知識が必要です。
因みに僕は広告を掲載したかったのですが当然Objective-CやJavaのライブラリやサンプルしか提供されていないので、独自にiPhoneとAndroid用にモジュールを作成しました。広告程度なら表示するだけなのでそんなに難しくないです。但しiPhoneやAndroidの経験がないとかなり難しいと感じることでしょう。
なのでTi mobile自体は単に「Objective-CやJavaを知らなくてもJavaScriptを知っていればiPhone/Androidアプリを作れる」ツールなのではなくて、まずはやはりiPhoneやAndroid開発をある程度経験してからの方が相応しいツールなのではないかなぁと思います。
先に述べたようにTi mobileはOSSとしてすべてのコードが公開されています。実際現時点でのコードをgithubから取得して自分でコンパイルして使うことも出来ます(Androidの拡張モジュールはそのようにして開発します)。
なのでどうしてもバグなのか仕様なのか回避のしようがなかったら最後はコードを読んでみることをオススメします。
個人的な例では、どうしてもAndroidの実機で位置情報が取得できない問題がクリアできなかったのですが、コードを読んでみるとgetLastKnownLocation()のみで取得していることが分かりました。これは時々ディスカッションでも話題になっていますが初回には位置情報は取れないのです。
ということでプロバイダーをNETWORKにして回避したのですが(これはこれでどうかと思いますが)、こういう部分もOSSとして提供されている利点であり、活用しない手もないでしょう。
といったところでしょうか。
何やら文句と愚痴が多くなった気もしますが(笑)、個人的には大変気に入っています。特にJavaScript好きには堪らないツールとなることでしょう。
一方で「初心者でも簡単にiPhone/Androidアプリが作れる」風のイメージには疑問を感じていて、どちらかと言えば現時点でiPhone/Android開発をバリバリされてらっしゃる方にこそ効率を上げるためにぜひオススメしたいツールです。
まずは使ってもらって、少しでも日本で広まるといいなぁ。
以前からブログURLをrocaz.netドメインに統合したいと思っていたんですが、本日作業を行いまして、URLが変更されました。
また長らく「「旅行びと日記」日記」を名乗っていたのですが、開設から四年を経ていろいろ内容が変わってきたこともありましたので、同時にブログ名称も変更しました。
「[bROOM.LOG]」と名付けました。またURLはhttp://blog.rocaz.net/となりました。
bROOMというのはそもそもサイト名だったんですが、そのまま「魔法のほうき」を意図してまして、そんなツールとかサービスを提供できたらいいなぁとの意味を込めています。
そんなツールとかサービスや技術に関してのLOGをつらつらと書き連ねるぐらいに捉えて下さい。
ブログURLは変更されましたが、以前のURLも有効のままです。
RSS/フィードURLも同じく以前のものも有効なんですが、購読頂いている方は以下に変更して頂けると幸いです。
http://feedproxy.google.com/blog-rocaz-20
しばらくサイト全体も含めて調整を行う予定です。
ユーザーの皆さんにはほぼ気付かれないようなバックエンドの調整ですが、まだいろいろおかしなところが残るかも知れませんが、徐々に改修していく予定です。
四年も暮らしていたURLやブログ名だったので、突然変えると他人の家にいるような錯覚がしますね(笑
ついでにFeedやランキングツールを全て新しいURLに合わせて張り替えたんですが、今までの実績は全て無くなって、文字通り1からのスタートと言うことに。
でもこれはこれで気持ちいいですね。
今後とも変わらずどうぞ宜しくお願いします。
最近ニコポ以外のこと書いてなかったなー。
たまにはスマートフォン系のネタも上げてみよう。
ということで、個人的な超重要必須ツールを挙げてみる。
最近はかなり日常的にE90使いこんでます。
年末年始に海外行った時に持って行ったモバイルPC(SONY typeU)が諸事情によりあまり使えなかった時にもとっても重宝しました。
いやまじで、もうE90でいいじゃんてぐらい。
以下、リストです。
● Mail for Exchange
前にもかきましたが、多分PocketOutlookより使いやすくない?と思ってます。
サーバーのアドレス帳をリアルタイム参照できるのも便利だし、登録したアクセスポイントの場所へ戻ってくると勝手にシンクしてくれるのが直感的にとってもいいです。
基本的には会社メール用ですけど、個人用にも状況が許せば使えるんじゃないかな。
頻繁にバージョンアップしてくれるのも嬉しいですね。
● Opera Mini
普段からOpera使いってのもありますが、Nokiaでは基本ですよね。
特に3の頃に比べたら4は格段によくなりました。
とにかく他のモバイル用ブラウザにありがちな無理やりレイアウトを変えて表示するのではないレンダリングが秀逸です。とにかく細かいところまで行き届いているのがいいのです。
とは言え難点もあって、PC版のようにパスワード保存が欲しい気もするし、そのアーキテクチャ上ゴニョゴニョしてもY!ケータイには繋げられなかったり。
最新バージョンではMyOpera経由でPC版とブックマークを共有できるらしいけど、まだ試してないなぁ。
● GMailクライアント
Opera Miniでもアクセスできるけど、簡単にメールチェックするには便利だし、出先だと必須ですね。
ただ難点は、個人で幾つかのGmailアカウントを使い分けているので、これも簡単に切り替えられたらいいのになぁ。
因みにiPod Touchのメーラーでは可能なんですよね。
● Devicescape
実は結構最近知ったのですが、使い出したら便利すぎて手放せません。
これはサイトにアカウントを作ってそこによく使うWifiのアカウントや公衆アクセスポイントのアカウントを登録しておくと、Symbian機やWindows, WMその他のインストールする常駐アプリがアクセスポイントを自動検知して勝手に切り替えてくれるというもの。
つまり家の無線ルーターとか、契約している有料の公衆アクセスポイントとかのエリアに入れば勝手にオンライン状態になります。
Mail for Exchangeで使用するアクセスポイントをこのDevicescapeを指定しておくと、家にいようと会社にいようと、ほぼ常に最新に更新してくれるんです。
おかげでヨドバシの月額380円の公衆無線LANサービス(WIRELESS GATE)に入っちゃいました。
もちろんアカウントをどっかのサイトに登録するのは安全とは言い切れないんだけど、「ま、大丈夫じゃね?」って感じで使ってます。
因みにiPhone/iPod Touch版ってのもあって、何かと思ったら、Jail Hack版・・w。ただその根性は認めたい。
● emTube (おや、何故か403エラー。。)
登場と同時に一気に広まった感がありますが、やっぱの現時点では最高だと思います。
たとえOpera MiniがFlashに対応しても、emTubeでyouTube見るのが一番便利じゃないかな。
操作性とかがiPhone/iPod Touchそっくりだと思うんですが、やっぱりインスパイアされてるんですかね。ま、そこもいいとこなんですが。
旅行中はこれのおかげでいろいろ見逃さずにすみました(何を?)。
ニコニコ動画版も出ればいいのになぁ。
あ、実はローカルファイルも再生可能なので、ニコポと組み合わせると(ry
● +J for S60
まだ出てないけどw
でももうすぐ出れば、海外製Nokia機はもうキャリア版と差が無くなるんじゃないかなぁ。
とっても楽しみにwktkして発売を待ち望んでます。早く認証通って。
価格は5000円だそうで正直ちょっと高いけど、本体価格を考えれば、ね。
他にも細かく便利なのはいろいろありますが(ゴニョゴニョ系は内緒)、日常的に重宝しているのはこんなところかなぁ。
皆さんの必須ツールもぜひ教えてください!
Googleから「Ajaxアプリケーションを簡易に開発するツールキット」という謳い文句でGoogle Web Toolkit ベータ版 (GWT) がリリースされました。
何となく、Yahooが同様に出したライブラリの延長線上のようなものだと思っていて気楽に眺めてみたのですが、とんでもない。ぶっとびました。
GWT は言うなればJavaのSwing/AWTや一部のクラスを完全に置換する、一種のプラットフォームとして開発されています。
そこまでしてAjaxへコミットしたGoogleにやはり脱帽です。

: my Hatena-Bookmarks (^_^)
観測気球さん記事から
で、販売元の「パソコンソフト■新撰シリーズ■ ~どこでもブログ~」というページにたどり着きました。このページには、「発売元 株式会社ユビキャスト」という文字列が。
久しぶりのリリースです。まあ、これまでが頻繁過ぎだったのと、お盆休みだったということで。
今回の目玉はHTML入力ナビゲーション・ツールバーのカスタマイズ対応です。
単にカスタマイズというだけでなく、完全に外部の定義ファイルで自由にツールバーを定義可能としました。つまりデフォルトのツールバーに依存することなく、個々のユーザーで最も使いやすいツールバーをそれぞれ準備してもらうことが可能になった訳です。
従来のHTML作成ツールのようなHTMLタグ打ちツールという固定概念に固まらずに、自由な発想の機能も追加できると思うのですが、どうでしょうか。
半ばサンプル代わりでもあるのですがGoogleやWikiPedia検索などのボタンも付けてみました。例えばGoogleでは 旅行 日記 などといったリンクも簡単に付けられます。
このように単にタグだけではない目的特化したボタンがあっても、より使い易いものになり得るかと思っています。
その他いいアイデアがあったら教えて下さい。
また、遅まきながら日記内容の無制限Undo/Redo機能も追加しました。
付けていなかったのは以前から気づいていたのですが、なかなか実装が面倒臭く・・。ある程度機能が固まってしまうと後付けは難しく、あらためてソフトは初期設計思想が大事だなぁ、と実感した次第。。。
Recent Comments