2009年09月06日

Hackathon行ってきました

土曜に初めてのHackathon行ってきました!

Hackathonとは「ハック」と「マラソン」を掛け合わせた言葉で、簡単に言うと朝から開発を始めて夜までに完成させてその場で発表みたいな感じのイベントです。


何を作るかというと、ハイテクなスマートフォン上で動作する昔ながらの黒電話アプリ。
ジーコジーコとダイヤルして電話をかけるアレだ。
電話に保存されている連絡帳を選択しても、ダイヤル時にメモとして表示されるだけで最後は自分でダイヤルしないといけないという無駄アプリ。
この一週間は先週出したアイデアを具現化するため、各画面の設計や画面間のインターフェイス、技術的な調査なんかをしてました。


で、当日。
朝10時に会場に集合し説明等を受け、開発開始。参加チームが多いため発表時間を長くせねばならず、その結果夕方4時までに開発と言うことに。実質5時間半しか開発時間は取れないという厳しさ。
6人もいれば何とかなるだろと思ったけど、一人は無断欠席で後3人はジャンル違いの開発者のためちょっとメイン開発は厳しい。もちろんジャンル違いの開発者こそ来てもらってAndroidとはどんな感じかを勉強してもらうのがイベントの目的なので、これは問題なしだ。


で、いろいろ合った末、時間切れとなり黒電話アプリなのにダイヤル機能が完成せずタイムアップ。
俺がアプリ全体の設計、メインの画面開発、他の人のサポートなんかを担当。もう一人がダイヤル機能の実装を担当。
ダイヤル機能が完成しなかったのは、ダイヤル位置の補足や画面上をドラッグしたときの回転角の補足などが難しかったんだろうか。
直行座標系を極座標系に変換してやれば比較的に簡単にできるかな。
暇なときに極座標系で実装してみるか。


発表では笑いも取れたし良い感じなんだけど、肝心のダイヤル機能をデモすることが出来ず中途半端な結果に。それが原因か残念ながら2位でした。1位を狙っていたのでかなり残念。
まぁアプリを完成させることが出来れば言うこと無しだけど、Hackathonの一番の目的は技術者の交流なのでこの点では満点でした。やっぱプログラミングが好きな人と話すと楽しいね。


残念ながら2位だったけど、1位の賞品の余り物としてGoogle社員しか持ってないというスタッフTシャツもらってきました!
2009-09-05 23.37.22.jpg
このKINESISキーボードは会場でも話題になり、二次会の会場でこのキーボードを店に忘れて出ても「こんなキーボード使うのは君だけだろ」と言うことでオートで手元に戻ってくるすばらしさ。


二次会ではGoogle社員を囲みAndroidのいろいろな情報を聞き出す。
やっぱGoogle社員は頭の回転早いねー。すらすらと自分の考えをまとめて言葉に出来るのはすごい。それも的確に。
しかし相当なガチオタなので親近感がわくw
スライド発表で「自分が好きなキャラだから」と無駄にひぐらしの羽生の紹介を入れるとか尋常じゃねーw
頭のいい人は変な人が多いというのは正しいな。統計的に。


二次会では飲みながらニコニコ生放送をしてましたw
初生放送に出演。作ったアプリのデモをしましたw
リアルタイムで反応が返ってくるのは面白いね。


Hackathonはなんだかんだ言ってかなり面白かったのでまた行こう。
興味のある方も是非。
次回のHackathonはGoogle Waveだそうです。

2009年05月30日

Bettik 0.4.2をリリースしました

Androidの2chブラウザBettikのバグ修正版をリリースしました。

3G回線でスレの読み込みに失敗するのを対応・・・したつもり。
3G回線を使える環境がないから問題の再現も出来ず、原因が不明のためこれで解決するかは不明。
2chサーバは通常HTTP通信にZIP圧縮を使うのだけれど、3G回線を使うとプロキシ経由となって、プロキシと端末間はZIP圧縮されたHTTP通信にならず、ZIPの展開に失敗しているのではないかと予想してコレの対策。

後は画面回転時にエラーが発生することがあるので、このバグを修正。

Androidアプリ配布時に、配布対象国一覧の中に日本があることを発見。
DocomoのAndroid携帯発売が近いからかな。
Docomoのヤツが発売されてもDev Phone1ユーザがそれなりにいると思われるので、半年ぐらいはすべての国を対象に配布しよう。


さて、次の機能追加は何にしよう。
過去に見たスレの新着レス数表示が欲しいからそれを追加するか。

まぁぼちぼち作っていきます。

2009年05月15日

ドコモからAndroid携帯来月発売

グーグルフォン来月発売 ドコモ、iPhone追撃へ

ついに日本でも発売に。
でもドコモかぁ。
WillcomはAndroid搭載携帯だしてくれるかな。

発売までにBettikをまともに使えるレベルまで完成度を高めないと。
今はiPhoneでBB2Cを2chブラウザとして使っているけど、BB2Cのほうがはるかに使いやすいw
履歴や板一覧をタブで切り替えられるのはBettikのほうが便利だとは思うが。
後は画面の縦横切り替えたら再リロードが走るのがうんこなのでそれも直さないと。

日本でもAndroid携帯が流行ってくれたらうれしいな。

2009年05月12日

Bettik 0.4.1リリース

Androidの2chブラウザのBettikをバージョンアップしておきました。

板リストの取得ができない件を修正しておきました。
Android Marketから最新版を取得してくださいな。

2009年02月03日

いろいろアップデート

Bettik Version 0.4.0をリリースしました。
bettik20090202.png

スレ検索機能、メッセージ検索機能、URLリンク機能を追加しました。
それと最後に書き込んだ名前とE-Mailアドレスを保存するようにしました。

>>1などのアンカーに対応してからリリースしようかと思ったけど、検索機能を待っている人がいるようなので先にリリース。
Linkifyに正規表現を使うことでアンカーに対応できそうなんだけど、カスタムLinkifyのAddがなぜかうまくいかない。設定しているのにちゃんとリンクにならない。謎だ。

検索機能を追加したことでちょっとはマシなツールに近づいたかな。
次はアンカー対応だな。


そしてNiconico Live Checkerもうp。
最小化したときにタスクバーから消えるように修正。
それとコメ数、来場者数、作成日時でソートできるよう修正。

2009年01月20日

Bettikアップデートしました

Androidの2chブラウザ、BettikをVer0.3にアップデートしました。

新機能
・書き込み機能
・スレッドの非同期読み込み
  スレッドのダウンロードの完了を待たずにダウンロード途中のメッセージを表示します。
・スレッド内のスクロールバー
  スレッド表示画面で画面下部をタッチすることでスクロールバーが表示されます。


ふー、最近仕事が忙しくて電車の中で寝ることが多く、開発時間が取れなかったけどようやく書き込み機能を実装完了。
しかしまだまだ2ちゃんねるブラウザとしては機能が少ないのでもっと開発を進めなければ。


DATファイルの保存や毎回DATファイルを全部ダウンロードしているのを修正するなど地味だけどレスポンスが早くなる修正が必要だな。

2009年01月06日

Bettikバグ修正

ようやくAndroid Marketにまともな感想が!ということで日本人の方の感想が書かれていました。

そして指摘されていたバグと要望点を最新のVer.0.1.1に反映。

修正点は以下の通り
・いくつかの実体参照 などの正しいパース
・スレ表示位置の記憶。(ただ仕様上の理由で微妙にずれます)
・スレをスクロールしていると落ちるバグの修正
・アプリケーションアイコンの追加
・UIを英語で統一

番外編
・RDBのテーブルのカラム名にスペルミスを発見したが、もうすでにそのレイアウトで作成してしまっているのでそのまま見逃す・・・。はずい。

現在はスレッドデータをキャッシュせず、毎回全部リロードしているので、データのキャッシュをしなければ。
さらに回線の速度が遅い場合のことを考えて、別スレッドでデータの取得をしつつ、取得できたところまでを画面表示などの機能も必要だな。


あと外人の感想としては「このゴミアプリが!! 4chanのアプリなら5つ星やるよ。」という意見が多い。
4chanというのは海外版ふたばちゃんねるといったところの掲示板だ。
日本でもふたばブラウザが存在するなら需要はあるかもしれない。

後は>>1などの引用をどう処理するかだなぁ。
コメント長押したら引用先などが表示されるなどでも良いか。

Ver.1への道のりは長い。


エミュレータで動作させる人のためにapkファイルをおいておきます。
Download file
adb install A.Bettik_Ver0.1.1.apk
などとしてインスコしてください。

2009年01月05日

2ちゃんねるブラウザBettikをAndroid Marketに登録しました

冬休み中に登録しようと思ったら、登録直前に実機だと壮絶に遅くなる問題が発覚して時間かかっちまったぜ・・・。明日仕事なのにもう4時前だよ・・・。
昨日のバージョンにお気に入り機能などを追加。

Android Marketはアプリをアップロードしたらほぼリアルタイムに反映されるんだな。なかなかすばらしい。

BettikはAndroid Marketのapplicationのcommunicationからダウンロードできます。

起動後、メニューから「Upload Board List」を選択し、最新板リストを取得してください。
ちなみにこの更新はめっちゃ遅くて、システムから「こいつ死ぬほど遅くてレスポンス無いけど殺して良いか?」と聞かれますが殺さないでください。裏でめっちゃがんばってます。

あー、明日仕事やべぇ。


ちなみに妖々夢ノーマルクリアしましたw


-------------------------
追記

アップロードして10分もたたないうちにもう評価が10件もついてる!!と思って評価を見たら
「1げと!!」
「イィヤッホーーゥ!!1ゲットだぜ!!11111俺様スゲーーーー!!」
「おおお?1ゲットか?」

・・・・死ねよ (#^ω^)ビキビキ


でもファッキンにおせぇぞクソが!!とか言われてるのでやっぱ速度は何とかしないとな。一覧取得の最初だけだけど。デフォルトの板一覧も内部に持っておくか・・・。

つかおめーら2ちゃんみても意味ねーだろw
初回起動時に「このアプリは日本人以外には意味ねーよ」と一応書いてあるんだが。


と言うことで初回起動時にはテスト的に5個ほどの板を見れるようにしておいた。
これで外人にも「なんぞこれ?」と言われなくて済みそうだ。

2009年01月03日

Androidの2ちゃんブラウザできてきた

正月休み中に紅魔郷ノーマルノーコンティニュークリアを目指そうとしつつも挫折中の今日この頃です。
イージーモードが許されるのは小学生までなので、早くノーマルでクリアしたいところ。ラスボスまでは行けるけども残機が足りない。でももうちょっとでクリアできそう。

で、Androidの2ちゃんねるブラウザがだいたいできてきた。UIもこんな感じで確定かと。
bettik20090103_1.png
メイン画面はタブで4つに分かれている。タブはそれぞれ
1 スレ選択 板からスレッド選択
2 Favorite お気に入りスレッド一覧
3 板履歴 表示した板の履歴
4 スレ履歴 表示したスレの履歴

なんでFavoriteだけ英語かというと「お気に入り」だと2行になっちゃって
「お
気に入り」
みたいになるからw

スレ選択は上の画面でも出ているように、板のカテゴリと、そのカテゴリの板一覧から板を選ぶ。
するとスレ選択画面になる。
bettik20090103_2.png
ダイアログはやめてActivityにしたので、全画面表示になり、さらにスレ表示画面から「戻るボタン」でこの画面に戻ることも可能になった。

スレのメッセージ画面は以前のまま。スクロール問題は健在。どうしよう・・・。
bettik20090103_3.png

表示した板履歴画面。スレ一覧を表示した板の履歴が出る。見る板は限られるので、板履歴から探すと便利なはずだ。
bettik20090103_4.png

表示したスレ履歴画面。今はレス数しか書いていないが、「履歴スレ全チェック」機能などつけて新着レス数も表示したい。
bettik20090103_5.png

まだ書き込み機能はないが、それはまだ後で良いだろう。
一応2ちゃんブラウザとして使えるところまできたが、今はいちいち全情報を表示のたびに取得してたりするので、そのあたりキャッシュをしたりしないとな。

休み中に一度Android Marketにうpしようかな。

それからこのアプリの名前を正式決定しようかと思うけどなんか2ちゃんねるブラウザっぽくて良い名前無いかなぁ。

さらにスレ表示画面でスクロールバーがないのでスレ全体をさらっと流し読みすることができない。
この問題の解決方法も不明だ。どーしよ。

2008年12月27日

2ちゃんねるブラウザインターフェイス

冬休みに突入したので早速夜なべして2ちゃんねるブラウザを作ってみる。

板選択画面はこんな感じで良いだろうか。カテゴリを開くと板一覧が表示される。
ViewにはExpandableListを使用。
android_2ch1.png


スレ選択画面はとりあえずこんな感じ。
別ActivityにするのがめんどかったのでDialogで済ませたが、ちょっと画面がせまくなるのがきつい。
Dialogではなく、Activityで全画面を使用し、さらにソート条件を指定できたりした方がよさげな感じ。
android_2ch3.png

携帯端末は画面が小さいので表示させるデータの選択が難しい。
大量のスレをスクロールするのは非常に大変なので、お気に入り関連を充実させ、みたいスレだけすぐみれるような機能が必要だろう。


さらに難しいのはスレッド表示だな・・・。
縦に並んだ1000件のスレを全部見ようとすれば指紋がすり減ってしまうことは確実だ。
スレッド表示をいかに便利にするかがこのソフトのキモだな。
Androidのスクロールバーは表示のみで操作不能なのがきつい。
スクロールバーを自作してもよいが、lambda氏はよりよいインターフェイスがあるはずだと言う。
ふーむ、難しい。

以前と同じ写真だが、スレッド表示画面。フォントサイズをギリギリまで小さくして画面に納めるか・・・!?
bettik1.png

2008年12月26日

今まで作ったAndroidアプリを実機で動かす

実機が手にはいるまで、Androidの開発はエミュレータを使用していた。
Eclipse上でデバッグを開始すると自動的にエミュレータが起動し、そこで開発中のアプリが実行される。

そして実機の場合はどうなるかというと、USBでDev Phone1をPCに接続した状態でデバッグを開始すると、なんと自動でアプリが転送され、自動で起動し、デバッグが開始される。
エミュレータと実機の手順の違いはUSBで接続するかどうかだけのようだ。とても便利!!

よって今まで作成したアプリを実機で動かしてみる。

まずはテトリス
思いっきりピンぼけだが・・・。
DSCF0704.jpg
Android Marketにはすでによさげなテトリスが公開されているようだ。

次は2ちゃんねるブラウザ
DSCF0699.jpg
これはもっと作り込んで使えるアプリにしよう。

3つめはファミコンエミュレータ
DSCF0703.jpg
以前も書いたように実用的ではない。実機でもとてもとても遅かった。
これはチューニング次第で改善すると思われる。
どうでもよいが、ファミコンの画面をAndroidの画面にフィットさせるときに、エミュレータでは線形補間で拡大されていたが、実機ではバイリニアか何かわからないが線形補間よりリッチな拡大が行われていた。


とりあえずこの冬休みは2ちゃんねるブラウザをある程度形にしてAndroid Marketに出すことを目標にしよう。

ニコ厨な俺としてはニコニコブラウザ的なモノも作りたいな。
現状ではAndroid上でニコニコ動画を再生すら出来ないので何らかの再生する手段が必要だが。
Android版のFlashが出ればその機能を使って再生とか出来るのかな。

2008年12月24日

Android Dev Phone1届いた

12/9に注文して、音沙汰が無く、心配だったが無事に届いた。

DSCF0697.JPG
ネットで聞いていたとおり、無駄にでかい箱に入ってきた。
運送業者のUPSでちょうど良いサイズの箱がないらしい。
白い無地の箱が本体の箱。下のがUPSの箱。
左がDev Phone1、右がWILLCOM 03だ。思ったよりは小さい。

DSCF0698.JPG
安っぽそうと思っていたが、結構そうでもなかった。iPhoneには全く及ばないが。

家に届いたのはR30と言われるバージョンのようだ。

起動すると、まずSIMカードを入れろと言われる。
SIMカードを入れろという画面から先に進まないので、以下のページを参照し、ロックを解除する。
Android Dev Phone 1 Setup
USB接続をしてAndroid Dev Phoneにログイン。DBの情報を書き換え次の画面に遷移できるようにする。
これは事前に情報が無いと詰まる部分だろう。

R30より前のバージョンだと上記ページの情報でそのまま行けるが、R30では微妙に設定ファイルの位置が違うので例の通りに入力するとエラーになる。具体的にはSYSTEMテーブルが見つからない。
$ su -
# sqlite3 /data/data/com.android.providers.settings/databases/settings.db
sqlite> INSERT INTO system (name, value) VALUES ('device_provisioned', 1);
ここでSYSTEMテーブルが見つからないと言われる。
sqlite> .quit

適当に似たようなDBファイルを開いてSYSTEMテーブルがあるヤツがそれ。どれだったかは忘れた。

SIMロックの画面から抜け出せたら、次はGoogleアカウントの登録画面となる。
Googleアカウントを登録しないと次の画面に行かせてくれない。
そう、Googleアカウントを登録しないと無線LANの設定画面が出せず、SIMカード無しでGoogleアカウントを登録するには無線LANが必要だ。何というコロンブスの卵\(^o^)/

そこでさらにUSB経由でAndroid端末にログインし、コマンドラインから無線LANの設定画面を起動する。
# am start -a android.intent.action.MAIN -n com.android.settings/.Settings

そしてGoogleアカウントを登録するか作成するとめでたく起動する。
既存のGoogleアカウントを登録すると、連絡先やメール、カレンダーも全部同期してくれる。
Google上で生活している人間にとってはとても便利な端末だ。


まだちょっとしかさわれていないので、簡単な感想を。
・思ったよりモノとしての質感がよい。(が、それでも安っぽい)
・Googleメールなどと自動で同期はすばらしい。
・トラックボールがかなり便利。iPhoneの画面タッチでスクロールは指で画面が隠れるので結構ストレスがたまる。
・タッチパネルがiPhoneと同じ静電容量方式。慣れるまではねらった場所のボタンが押せない。
・Android Marketでのアプリはまだまだ少なめだが、Android上で動くWebサーバがあったりと結構フリーダム。今後が期待。

ちなみにソフトバンクのSIMカードを指すだけで電話の受信が可能でした。
パケット通信はパケ死するとの情報もあり試していない。
APNの設定でパケ死しない設定があるようだ。

最後にカメラの写真を。
320万画素なので無駄にドット数が多い。2048x1536だ。
画質はまぁ携帯なのでこんなモノか。
カメラで撮ったそのままの画像をうp
1230130991113.jpg

さわる時間が無いのでおあずけ状態だが、冬休みはいじり倒そう。
あー疲れた。

寝るか。

2008年12月09日

誰もが買えるAndorid開発機Android Dev Phone 1

12_05-08-dev-g1-android.jpg
日本ではAndroidの実機がまだ発売されておらず、いまいちテンションがあがらなかったが、日本でも買えるAndroidの実機が発売された。
しかもSIMロックフリー、電子認証のされていないシステムイメージでブート可能な開発用端末だ。

よって好きなキャリアのSIMカードで通信が可能。
さらにAndroid自体のソースコードが公開されているので、それをカスタマイズし自分OSをコンパイルしてブート可能のようだ。

と言うことで購入。

購入にはAndroid Marketのアプリ配布用アカウント登録に$25、本体が$399.0、送料が$109.55。
支払いはVISAでお支払い。
日本のキャリアのSIMカードが使えるかどうかは情報を待たないとダメだけど、無線LANだけでも通信できれば十分楽しめそうだ。

やっぱモノが無いとテンションあがらないしね!

しかしこの端末のかっこ悪さはどうにかならないものか。
iPhone並とまでは言わないがもうちょっと何とかして欲しいw

2008年11月11日

Androidで壮絶なバグが発見された

海外で発売されているAndroid携帯に壮絶なバグが発見されたようだ。

Google Android携帯にすごいバグ、すべてのテキスト入力をコマンド扱いで実行

なんと画面に入力されたキー入力が裏のLinuxのコンソールにも伝わっていてメールなどにrebootと書くとAndroidが再起動してしまうらしい。sshでリモートサーバのメンテナンス中にリモートマシンを再起動しようとするとAndroidまで再起動してしまうことから発覚したようだ。

そりゃすごい!!と思ってエミュレータで試してみたけど再現しなかった。
1.0と0.9で試してみたけど再現せず。実機のバージョンのOSだけかな??

2008年10月12日

Androidでファミコンエミュレータ作った

Androidでファミコンエミュレータ作った。

作ったと言うか移植しただけだけど。
androidnes.png

エミュレータ本体はJava製エミュレータのvNESを使用。
元はJavaアプレットなので、Swingに依存している部分を書き換えAndroidで動くようにした。
が、エミュレータの上でエミュレータを動かしている状態なので壮絶に遅く、実用性は無し。このままでは実機でも厳しそうな気はする。
なんだかvNESの仕組みがいまいちわかっていないので壮絶にちらつく。NES上での描画途中の画面をガンガン描画してしまうので画面がまともに見えることが少ないw あとなんか色も変だ。まぁ半日程度で作った物なのでこの辺で勘弁と言うことで。

AndroidでNESエミュレータはすでに作ってる人がいて、Androidでスーパーマリオ(ファミコン/NES)が動いた。なんかがある。これはこの人が以前作ったiMode版を移植したとのこと。この辺の記述からすると、もしかするとそのiMode版はvNESの移植とかかも。

上でリンクした丸山先生第5回Android勉強会によると、iMode版エミュレータ公開したら任天堂から家に訴状が届いたとのことなので、このエミュレータも公開の予定は無し。しかしvNESのページ行ったらブラウザ上でROMファイルも自動ダウンロードでゲームが出来るがこれは良いのか?w


ファミコンエミュレータのソースコード初めて読んだけど意外とシンプルな内容。
CPUのエミュレーター部分は1500行ほどのクラスファイル1個だけだった。それもコメントが多いので実際のコードはさらに少なそうだ。
当たり前だけどROMファイルから読み込んだ命令をswitch文で処理を分け、int変数をレジスタと見立てて処理を進めている。このあたりもなかなか面白そう。

2008年10月01日

Android端末とSDKが正式リリース

@ITから
Android端末とSDKが正式リリース

とうとうAndroidがリリースだ。SDKも1.0のr1が出ている。

面白い情報としてはGoogleのIDを設定するとGoogleのサービスがシームレスで利用できることだな。
Androidを利用するとGMailのアカウントがケータイメールのように使うことができるようだ。GMailにメールが届くと端末にメールがプッシュされる。
メール、カレンダー、連絡先、メモ、RSSなどなどGoogleの機能がそのまま携帯端末で利用でき、同期されるのがすばらしく便利そうだなー。携帯無くしたりぶっ壊れても、貴重な情報を失わなくてもすむと言うのが良い。

T-Mobile G1 video hands-on
によるとブラウジングはもっさり仕様らしい。
まぁこれもそのうち改善されるでしょう。描画エンジンはiPhoneと同じWebKitだし。
Google ChromeのAndroid版。もしくはFirefoxのAndroid版に期待だ。

後はデザインがよい端末が出てくれればいいのだけれどw

2008年09月14日

Androidで2ちゃんブラウザをちょっと作ってみた

2ちゃんブラウザが無い携帯プラットフォームは日本では流行らないらしいのでつくってみた。
と言っても半日ぐらいでさくっと実装しただけなのでしょぼしょぼだけど。
bettik1.png


2ちゃんブラウザって2ちゃんAPIをいろいろ叩いたりしないといけないのかと思っていたけど、全然そんなことは無く、生データをパースするだけだったので楽だったな。
難しいのはいかに便利なツールを作るかと言うところだと実感。
特に携帯端末だと画面が小さく、表示できる物が限られているので、何を表示する表示しないかの選択が難しそうだ。

普通に2ちゃんブラウザを作っても面白くないので、今回は2ちゃんにアクセスする部分をServiceで作成してみた。
ServiceとはNTサービスやDaemonみたいな物のAndroid版で、GUIプログラムが終了してもServiceは裏で動き続けることができるヤツ。
よって別のプログラムを動作中だとしても、お気に入りスレを監視し、投稿があればNortification Managerを使い通知するみたいなことが出来る。
また、Serviceは他のプログラムからもRPC的に呼び出すことが出来るので、この2ちゃんブラウザの通信部分の機能を使って新たに別のアプリを作成するなんてことも出来るようだ。


RPC的に呼び出すときに、データはシリアライズのようなことをするんだけど、AndroidではSerializeではなくParcelableと言うのを使う。
こいつの情報が全然無くてちょっとはまったのでメモ。
Parcelableを実装したクラスと同じパッケージにParcelableの定義ファイルであるaidlファイルを作成するのだけど、同じディレクトリに置くとエラーになってしまった。
srcとは別にaidlディレクトリをビルドパスに追加し、同じパッケージなんだけど別のディレクトリにすると解決。
情報は以下から。
Android Hack - Parcellable in eclipse


後はSDK 0.9βから、権限チェックが厳しくなったので、「ネット使うよ」宣言をしないと使わせてくれない。
しかしその権限エラーがUnknown Errorとか言われるので一瞬まよった。
Manifest.xmlのmanifestタグの中に以下の行を追加。
<uses-permission android:name="android.permission.INTERNET" />


ちなみにアプリの名前のBettikはハイペリオンって言う小説に出てくるアンドロイドの名前。
まだこの小説全然読んでないけど・・・。
A.Bettikと書くのがより正しいけど、なんだかウイルスの名前みたいだったのでAは外した。
W32.Bettikとかだったらますますウイルスにありそうな名前だ。


Serviceを使い、2ちゃんブラウザの作り方もわかったので、あとはアプリを作り込みをするだけとなった。
知的好奇心は満たされたのでひとまずこの状態で置いておく。
日本でAndroidが発売されるなら、出る前ぐらいには作り込んでリリースするかー。


久々にフットサルをやったら壮絶に疲れた。
今日はもう寝よう。

2008年09月10日

Android Developers BlogのAndroid Marketの記事をちょっと翻訳してみた。

興味があったので勉強がてらの翻訳。

元記事
Android Market: a user-driven content distribution system

学生時代は英語が5段階評価の2だったので信頼性はありません。


Android Market : ユーザ主導のコンテンツ配布システム
Posted by Eric Chu, Android Mobile Platform on 28 August 2008 at 10:15 AM

開発者と話すとき、話題になるのはどのようにユーザにアプリケーションを手にしてもらうかです。
なので今日Android Marketの詳細をお伝えすることができて、幸せに思います。
Android Marketはオープンなコンテンツ配布システムで、エンドユーザが様々な種類のコンテンツを見つけ、お金を払い、Android端末に対しダウンロードしてインストールすることができます。
このコンセプトはシンプルで、Googleのインフラ、検索、関連性の技術を活用し、あなたのような開発者によって作られたコンテンツとユーザをつなぐことです。

YouTubeのようなユーザのフィードバックと評価システムを備えたシステム上で、作成したコンテンツを配布することができます。
私たちは"Store"よりも"Market"を選択しました。なぜなら開発者にはオープンで配布を邪魔されることがない環境が必要だと感じているからです。
(訳注:Apple Storeの混乱に対する皮肉ですねw Apple様のお店においてもらうのではなく、自由な"マーケット"だと)
YouTubeと同じように、コンテンツを公開するには簡単な3ステップで行うことができます。
配布登録をし、コンテンツをアップロードして、解説文を書いて"公開"するだけです。
また、あなたのビジネスとコンテンツを良くするのをお手伝いするために、ナイスなダッシュボードや分析ツールを提供します。

早めの詳細を書いたのは、最初のAndroid端末がリリースされたときにあなたの準備ができるよう手助けになると思ったからです。
最初の端末がリリースされたとき、Android Marketのベータバージョンが利用できると期待してください。
しかしまだ開発中で最終決定ではないので、フリーソフトのみの配布ができると思っておいてください。
少したったら、Android Marketをアップデートして課金ソフトの配布に対応します。
バージョン管理やマルチプルデバイスプロフィールサポート、分析ツールなどもその時対応します。
下に、Android Marketでアプリケーションをダウンロードする流れのスクリーンショットを張っておきます。
(訳注:貼り付けるめんどいから元記事見てね)

市場の追加によりAndroid関連がより賑わってきています。
私が見たところ、サポートとすばらしいコンテンツによってAndroidはヘブン状態!!と言えます。
数ヶ月後にそれらが稼働して、あなたたちと一緒にAndroid Marketを作り上げることを楽しみにしています。
また、そのときにはより多くの情報を共有したいと思います。


後半疲れたのでてきとー

Android携帯発売へ

これが世界初のAndroidケータイだ! 製品画像を一挙に公開

意外と早かったな。
画面を見る限りAndroid SDK 0.9のバージョンとほぼ同じのようだ。
SDKと同じレベルだとするとデフォルトで入っているガジェット等は少なめで、いろいろ自分でアプリを入れないとできることは限られている模様。と言っても電話機能にメール、Web、GoogleMapなど一通りは入っているが。

Android prototype Q&A video and transcript plus hardware details
によると、スペックは
528MHz Qualcomm processor
Synaptics capacitive touchscreen
3.6Mbps HSDPA connection
128MB of RAM and 256MB of flash
だそうだ。

それにしても・・・。
> この仕上がりだと、iPhoneよりも一般ケータイユーザー受けするかもしれませんね…
ねーよwwwwっww

むしろiPhoneの場合は何も知らずAppleのだからと、勘違いして買ってしまうから問題になるのでは。
一般ユーザ → Appleのケータイ?かっこいいしおもしろそ。 → なにこれケータイかと思ったら全然使えね。
と言う流れかと。
かといってGeekにはiPhoneは受けられているとは言い難い。
iPhoneのAppleに管理されてる感が合わないのかな。
BIG APPLE IS WATCHING YOU!!


AndroidはGoogle発だし話題にはなるだろうけど、まだまだアプリも出そろってないししばらくはGeekにしか売れないだろうな。
俺は購入決定だけど。

Androidはオープンソースと言うことでLinux文化の予感が今からするぜ。
「○○の機能がないんですが?Androidつかえねー」
「オープンソースだしおまえ作れよ」
わくわくっ!!

2008年04月20日

Android Developer Challengeの投稿数は1788件

さて、Android Developer Challengeに応募したわけですが、応募件数が公開された。
Android Developers Have Risen to the Challenge

応募した国の数は70カ国。件数は1788件となっているようだ。思ったより応募数が多いな。
うち50件が1次審査を突破と言うことで単純な確率は2.8%。
期待せずに待つか。(と考えることで通ったときの喜びを最大化し、落ちたときのショックを押さえるw)

ちなみに作成したのはサーバクライアントシステムで、我が家のサーバにそれらしきGoogleからのアクセスはまだ無し。

2008年03月23日

AndroidのXMLパーサ

AndroidのXMLパーサはバグあり?
Eclipse上で単体テストすると正しく動くが、Android上で動かすと予想に反した動作をする。
Android上の実装クラスは別なのかな。
原因究明をするよりXMLが単純だしXMLパーサを実装する方が楽だったのでテキストをごりごり解析して問題を回避。
CommonsのStringUtilsを使えないのでちょっと面倒だったが・・・。

問題はorg.w3c.dom.NodeのgetAttributes()の結果がEclipse上だと正しい値を返すがAndroid上で動かすとnullを返す。うーむ謎だ。

AndroidSDKはまだまだバグが多くて不安定だなぁ。もちっと何とかしてほしい。

ああ、4時をすぎた。寝るか。

2008年03月21日

AndroidでJUnit単体テスト実行時にエラー

AndroidのアプリをJUnitで単体テストしようとすると以下のエラーがでる。

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/ref/FinalReference

ググると以下のページが出た。
junit FinalReference not found on m5-rc14 upgrade

早い話がAndroidプロジェクトでデフォルトで指定される「Android library」を削除し、手動でandroid.jarをビルドパスに設定すればOK。


ところでAndroidって外部jarライブラリって自由につかえないんかな・・・。

2008年03月11日

Android解説本

Android解説本が早速出たので購入してみた。
Google Android完全解説
Google Android完全解説 (アスキームック)

タイトルに完全解説とあるが、内容はかなり入門向けな内容になっているのでAndroidを全く知らない人が読んでも安心だ。導入部分は結構詳しく書いてあるのでAndroidの最初のとっかかりはバッチリ。ただページ数が200ページほどなのであまりつっこんだ内容にはなっていない。つっこんだ内容が知りたい場合は公式ドキュメントを読むしかないようだ。というかこの本の内容は公式ドキュメントを読めばまぁ知り得る範囲ではあるようだ。 

公式ドキュメントのチュートリアルTutorial: A Notepad ApplicationはEclipseのプロジェクト付きでサンプルがついているので親切だ。このドキュメントの指示通りコーディングしたらこのようなコードになってこのように動作しますよと正解データも入っているので「チュートリアル通りに入力したけどうごかねー!」という場合も安心。(実際入力ミスでうごかねー!という状態になったので助かった)

2008年03月09日

Androidでテトリス作った

暇だったのでGoogleの出した携帯プラットフォーム、Androidでテトリスを作ってみた。
androidTetris1.png
グラフィックライブラリとしてはプリミティブな機能しか提供されてないぽいから、誰かがゲームライブラリとか作って、その上で開発しないと3D機能をばりばり使ったゲーム開発は難しいかな?
そもそもAndroidでiPhoneみたいに3Dが結構動くハードが提供されるかどうかは不明だけど。

ちゃんとしたテトリスは初めて書いたけどやっぱシンプルなゲームだけあって簡単だったな。3,4時間でだいたい完成。でもテトリスの細かいルールを実装しようと思うとちょっと面倒だ。テトリスのガイドラインをみるとちょっと複雑。まぁとりあえず遊びで作ったやつだしこれぐらいでいいだろう。

プログラミングする上で何か工夫とか入れないとプログラミングしててもつまんないので、テトリスのブロック(テトリミノと呼ぶらしい)の定義をちょっと工夫。そのままプログラムするとテトリミノの定義は以下のようになるだろう。以下は4x4のマス目でZ型のテトリミノの定義。
{0,0,0,0}
{1,1,0,0}
{0,1,1,0}
{0,0,0,0}

まぁこれでもいいけどもっと簡単にしようということで以下のようにしてみた。これだけでZ型のテトリミノが定義できる。回転の中心となるブロックからスタートして、次のブロックの相対位置を記述する。ペアの数値の最初がX軸、後ろがY軸だ。
{1,0},{0,1},{1,0}
よってこれは基準点から右にブロックを置いて、次に下、そしてまた右にブロックを置くという定義になる。これでZ型のテトリミノを表すことができる。記述した情報は相対的な方向なので、テトリミノを回転させるときもその方向を変換することで簡単に回転させることができる。
と、3分ぐらい考えた結果の方法なのでもっとスマートな解があるかもしれないけど、これでも十分シンプルな実装方法かと。

せっかく携帯端末だしネット経由で対戦とかできると楽しいかも。
まぁまた暇があったらやってみるか。

2008年03月04日

Android

Googleの出した新しい携帯端末プラットフォームAndroidをいろいろいじってみた。

様々なところにオープンソースのソフトウェアを使っていてなかなか今風。
データの永続化にRDBを標準搭載しているのがおもしろいな。
開発環境がオープンソースで公開され(そのうち公開予定)、開発の敷居が下がってるのが他の携帯端末に対するアドバンテージと言えるけど、ユーザに対しては他の端末との違いをいかにアピールできるかが普及の鍵か。

今のところiPhoneのようなわかりやすい他の端末との違いというのが見えにくいので、苦戦しそうな気配がしなくもない。でもGoogleのネームバリューと開発者の取り込みはしやすそうなのでいいアプリはそろいそうだ。

日本でも早く実機が発売されないかな。いいおもちゃになりそうだ。

Androidその他のエントリー