Flex、AIR、Java、Androidなど

Archive for 4月, 2009

Ajaxでちょっとした地図系のアプリを作っているのですが、イライラさせられっぱなしです。
もともと全てをjavascriptで書こうとするとイライラで発狂してしまうのは分かっているのでここまで流行っているのに手をつけていなかったのですが、今読んでいる本「独習Java サーバーサイド編」の最後の方にJava言語でjavascriptを触ることの出来るDWRライブラリというのが乗っていましたのでやってみました。
通信は非同期で行われますのでGmailのようなローディングメッセージを表示するべきとあったのでその通りに書いてみたのですが、嵌ったのでメモを残しておきます。
恐らく出版された時とdwr.jarが違うのが原因なのでしょうが、私の場合
DWRUtil.useLoadingMessage();
でDWRUtilが宣言されていません、というような内容が出てしまっていました。
ので、dwr.jarをほぐして、org\directwebremoting\ui\servlet\util.jsを開いてみたところ該当する行がコメントアウトされていました。
/**
* Declare an object to which we can add real functions.
*/
if (window['dojo']) dojo.provide(‘dwr.util’);
if (typeof window['dwr'] == ‘undefined’) window.dwr = {};
if (typeof dwr['util'] == ‘undefined’) dwr.util = {};
//if (typeof window['DWRUtil'] == ‘undefined’) window.DWRUtil = dwr.util;

/** @private The flag we use to decide if we should escape html */
dwr.util._escapeHtml = true;

この
//if (typeof window['DWRUtil'] == [...]

コメントは受け付けていません。
Tags:

Google App EngineがJavaに対応したらしいのでお試し感覚で一つWebアプリケーションを作ってみました。
私は寝るときに音楽やテレビをつけたままの人間なのですが、ここ最近はPS3のブラウザでVeohの動画を表示したまま寝ることが多いです。ただVeohのサイトはAjaxを使っているような感じでPCでは便利でいいのですが相当にメモリを食います。PS3はメモリが貧弱なのか、動画を見ている最中でも「メモリ不足です」と表示されウィンドウが勝手に閉じたり、最悪フリーズしたりということもあります。
そこでメモリをなるべく食わないような簡単なWebアプリでも作ろうかなあと思っていたので良い機会だと思い作ってみました。
Veoh for PS3
※パラメータにoffsetを使用した時のAPIの挙動がちょっとおかしいのであまり件数が多い結果だと後の方が表示できないことがあります。
メモリの使用量は半分くらいになったのでとりあえず今のところはメモリ不足エラーは出ていません。様子を見ながらusernameやタグもクリックできるようにするかもしれません。
私はJSPは初めて触ったのですがすぐに慣れました。Javaの基本的なことが分かっている方ならテキストの出力は直ぐにできるでしょうからあとはHTMLが分かるかどうかでしょうね。
しかし、Google App Engineで検索して引っかかる方は以前Androidで検索して見かけたことのある方が多いような気がします。Androidに興味を持つ方はGoogle App Engineにも興味をもちやすいのでしょうか。かく言う私もその一人なのですが(笑)
詳しいことは書きませんが、eclipseにプラグインを入れればHelloWorldは既にできています。私はGoogle App Engine用に新しいeclipseを入れたのですがそのままではjspが使えないとか何とかというエラーが表示されたのでJDKを入れたら動くようになりました。あとはサーブレットを作るなりなんなり自由にできます。
今回私が作ったのは動画共有サイトであるVeohの動画を検索するだけの簡単なアプリですが、サーバーの準備がいらないのでJSP/サーブレットに慣れた方なら半日もあれば公開までできるのではないでしょうか。
トラフィックに制限はあるらしいですが基本的に無料でここまでできるのは手軽でいいと思いますね。

コメントは受け付けていません。

ここ最近タスク関連を触ることが多かったので色々調べることができました。後々の自分用にまとめとくことにします。
1) 最近起動されたタスクリストを取得
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RecentTaskInfo> recentTaskList = am.getRecentTasks(30, ActivityManager.RECENT_WITH_EXCLUDED);
2) ComponentNameからアプリケーションを起動
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setComponent(recentTaskList.get(currentIndex).baseIntent.getComponent());
3) 文字列からアプリケーションを起動(SharedPreferenceなどに記憶させておきたい時など)
Intent app = new Intent(Intent.ACTION_MAIN);
app.addCategory(Intent.CATEGORY_LAUNCHER);
app.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
app.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);

String[] ta = taskArray[i].split("/"); // taskArray[i] == "com.hoge/com.hoge.Hoge"
app.setComponent(new ComponentName(ta[0], ta[1]));

try
{
context.startActivity(app);
}
catch(ActivityNotFoundException e)
[...]

Motion Task Switcerですが、そこそこダウンロードされ、色々と意見も寄せられていたのでとりあえず2点機能を追加したバージョン1.0.1を公開します。

どのアプリケーションをMotion Task Swithcerから起動するかをセットできるようになりました。セッティング画面へ進むとこれまでに認識したアプリが表示されていますのでリストの右側の星をタップすることで設定できます。
センサーの精度を若干ですが高めました。キーボードの開閉でタスクが変わるのが一番イライラするのでそこにギリギリ近づけました。

ご意見等ありましたらコメントかメール、Marketへのフィードバック等でお寄せ下さい。

コメントは受け付けていません。
Tags: ,

Motion Task Switcher helps switching task by shaking-twice-quickly.
If a shaking may switch task, putting your device somewhere or opening/closing keyboard on g1 unexpectedly switch task as well as shaking to switch task, so I implement service that switch task only by shaking-twice-quickly to prevent unexpected task switching.
In case of 3 apps are running, shaken [...]

コメントは受け付けていません。
Tags: ,

Categories

 

2009年4月
« 3月   5月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

About

Author: tachibana

  • ちょっとしたことはTwitterに書いています。こっちはアプリの公開等の時に更新されます。
  • 最近はもっぱらJavaとObjective Cです。AS3は飽きました。
  • スクリプト言語ではPerlが好きでしたが最近はGAE/Jで何でもやってます。
  • Linuxは自宅サーバー建てるのがやっとのレベルです。前の会社で何日も徹夜してやったのはいい思い出です。
  • アプリへのご要望などご意見等ありましたらお気軽にご連絡下さい。

Alternative content here