2012年1月29日日曜日

CROSSでお話をさせていただきました

エンジニアサポート新年会 2012CROSS というイベントがnifty様が主導して企画されまして、先日(1月27日)無事終了しました。

その中の「スマートフォンCROSS」でモデレータ兼パネリスト、それと「Tech10 CROSS」でもお話させていただきました。
(ずっと話す側だったので写真ないです…)

スマートフォンの方は、現在appceleratorでTitanium Mobileの開発に従事している増井さんと、Yokohama iPhone Developerの吉田さんと僕の3人でのパネルだったのですが、3人とも基本的に何かしらスマートフォンに関わる話題であれば結構しゃべれるということが前打ちをし始めた段階で分かったので、「テーマを大枠だけ決めてあとはぶっつけでやりましょうか」という形に。とはいえ決して手抜きじゃないんですよ。パネルディスカッションは僕自身そこそこ回数させていただいてきていますが、綿密に打ち合わせしてもスライド使うわけでもないので時間通りいかないし、前打ちの段階で話し尽くしてしまうと本番の話がややこしくなってしまうんですよね。「この前も言ったけど、」で話し始めても見ていただいてる方には伝わらないですし。

概ね好評いただいてて大変ありがたいのですが、何しろ1セッションの時間が長くて(2時間半)、これだけ長くなると話題がいろいろ飛んでしまうのも仕方がなく。多少反省はしてますけど。

スマートフォンCROSSで2時間半やったあとにまたTech10だったので、正直Tech10の頃には魂抜けてぐったりしてましたが、前の方に座っていた仙人様のおかげでなんだか非常に愉快でした。恥ずかしながら存じ上げなかったのですが、どうやら多くの勉強会に出没してはあのように質問や自説を投げかける方なのだそうです。ステキすぎる。

でも本当にあれだけの技術的なトピックに感心のある人達が集まる場というのも年にそう多くはないので非常に楽しかったですね。勉強会単位というところは非常に斬新でした。

2月もいくつかお話する機会をいただいているので、なんとか準備しておきます…!

2011年12月5日月曜日

Androidケータイを家の電話として使う

前々からやろうと思ってたのにしてなかったのですが、家のネットワーク再構成に伴って設定したので。
ずっとAirMac Extremeがdouble NAT状態で運用してたのが気持ち悪かったのですが、その設定を変更してすっきりしたのでついでにSIPも設定しました。

Androidは2.3になってからSIPが使えるようになっているので、家の電話回線がIP電話(NTTひかり電話とか)であれば子機として使えます(IP電話でなければ使えません)。

家のWiFiに繋いでる時しか使えないですけど、メリットとしては通話料が安い(ケータイのプランにも依ります。ケータイでも家族通話無料とかあったらソッチの方が安いです)のと、家からでもケータイの連絡先(電話帳)が使えるので楽ということでしょうか。

要は、夏ごろ発表された スマホdeひかり電話  で良いのです。この「スマホdeひかり電話」で利用するAGEphoneというアプリを使ってもみたのですが、ワンタップだけでルータに登録できるなど、非常に良くできてはいるものの、微妙に動作が重く感じたり(気のせいかも)、そもそもアプリにロックインされるのが少し気になりまして。

Google Voice(まだ日本では使えませんが)みたいに、普通にデフォルトの(最初から入っている)電話アプリで電話する時に、家の電話かケータイの3G(LTE)か、どっちでかけるか選択肢が出てくるほうが好きなので、自分で設定しました。(ちなみに保証外になるそうです。自己責任。)

※以下に説明する設定がめんどくさいあるいはよくわからんという人は、素直にスマホdeひかり電話を使うほうがオススメ。

まず家の電話がひかり電話じゃないと無理です。
それで、ルータの「電話設定」→「内線設定」を開いて、適当にアナログ端末になってないところを書き換えます。例はRV-S340SEのルータ。


例では3番目を選択して、内線番号とユーザーIDを同一にします。初期設定ではユーザーIDが0003とかになっているので、3に変更。ニックネームとかはそのままでもOKです。MACアドレスも設定しなくてもOK。
端末属性を音声専用にして、終了。



次はAndroidの方。
「設定」→「通話設定」→インターネット通話の「アカウント」


何も登録されていないはずなので、一番下のアカウントを登録を選択。



で、さっきルータに登録したユーザーIDをユーザー名に入れて、ルータに表示されてたパスワードを入力して、ルータのローカルIPを入れる。それだけ。


ちなみに一つ上のスクリーンショットにあるように、「着信を受ける」をチェックしてないと、ルータ側で「登録済み」にならなくて、使えませんでした。発信だけでいいかなーと思って最初はチェックしてなかったのでハマってしまいました。
もちろん、家の中のローカルIPを参照しているので、家のWiFiに繋いでいないと使えません。

それと、「設定」→「通話設定」→インターネット通話の「アカウント」の下にある「インターネット通話使用」で、「常に確認」に設定しておくと、電話かける度に以下のように選択肢が出ます。

ネット通話選択すれば家の電話としてかけられます。

家のWiFiに繋げられる状態ではない場合(外出中など)は使えなかったりしますし、別のWiFiに繋いでる時にホストに探しに行ったりしてしまうので電池効率が落ちるなどというデメリットもあります。
ただ、そこそこAndroidに関わってきている人であれば、Android端末複数持っているケースもあると思うので、それならば家に置いてある端末を上記子機設定にしてしまえば、Android(というかGoogleアカウント)間で電話帳は同期しているので、携帯しているAndroid端末と同じ電話帳を使って電話かけられるメリットは享受できるはず。

参考:
【吉川敦のAndroid使いこなし講座】 第6回 Androidで03や050から始まるIP電話を使う ~050 plusで頻発する接続エラーの回避方法も紹介~

Xperia arcをひかり電話の子機にする


2011年11月28日月曜日

Androidゲームプログラミング A to Z出ました



宣伝です。
Androidゲームプログラミング A to Z
という本が、インプレスジャパンから発売されました。



関わった本としては5冊目になるんでしょうか(実際は「関わりがあった」という程度であればもうちょっと多いようですが)。

原著は Beginning Android Games という本です。表紙イメージからもわかるように、原著はApressから出ています。

ちょうど去年頃、プロフェッショナルAndroidゲームプログラミングという本を出しましたが、これは基本的に主にネイティブコードを使ってゲームを作っていくという体裁でした。
NDKを始めとして、ネイティブコードによる実装はやはりJavaによる実装と比較すると速度的には有利になる点があります。特に描画の激しいゲームなどだと差は如実に出ることが多いです。
反面、ネイティブコードが混ざり合ったりすることで、Javaで作るのと比較するとデバッグ作業などが困難になるデメリットもあるわけです。
ゲーム開発者の中には、開発が困難になってもいいからネイティブで作らせてくれ、という要望が多く、NDKの提供が開始されたという経緯があったと記憶しています。

ただ、やはり予想されていた通り、パフォーマンスは出るものの、直接ネイティブで実装しているため機種依存がかなりあるわけです。端末のCPUが異なるだけで想定通り動かないことも多々あります。

作ることまでが目的であった人にとっては、それでも問題はないかもしれません。ただ、これでビジネスをする、要するにゲームを売ったり、あるいはゲーム内で課金をしたり広告を打ったりする形で会社として(あるいは個人で)生計を立てて行くとなると、対応する機種が多ければ多いほど、遊んでもらえるユーザーさんが多いわけで、なるべく機種依存しないに越したことはない、という結論になります。

また別の材料として、ここ一年だけで見てもAndroidに限らず特にスマートフォンやタブレット等においてその端末のスペックの進化はとどまらず、矢継ぎ早に軽快に動作する端末が出てきています。

ハードウェアが進化してきている以上、1,2年前では少々パフォーマンスに難があったようなアプリも、気持よく動くようになってきています。以前まで、「パフォーマンスか互換性か」という天秤にかけてネイティブ実装をとっていた場合でも、現在出てきている端末でならあまり差が出てこなくなってきているケースが増えてきているわけです(ソフトウェアエンジニアとしてそれで良いのか?という話もありますが)。

以上の材料より、あまり有意に差が出ないのであれば、Javaのみで作った方が良いのではないか、と結論づける方が多くなってきました。
というわけで、本書は前提としてeclipseとAndroid SDKによりゲームを作る内容になっています。

紙によりモックをデザインするところから、OpenGL ES、2D描画、衝突検出、Zバッファ、ミップマップ、物理演算等と、実際に2Dゲーム、3Dゲームのサンプルを通して基本的なゲームの要素を解説していきます。
Androidのアプリ製作作法をゲームを通して勉強するというより、ゲーム作成の基本をAndroidを通して学ぶという形です。



なので、あまりAndroid特有の部分には触れません。
FragmentやActionBarも出て来ません。ただ、ゲーム制作の基本的な部分をAndroidで動く実際のコードを通して解説しています。
そういう意味ではAndroidに関わる最新情報を解説した類のものではありませんが、逆にいうと応用の効く内容になっています。
もしも、Androidでのゲーム制作に興味のある人であれば、実際に手にとって中を見ていただけたらと思います。





まず見てみて、気に入ったらお買い求めいただければと思います…!



2011年11月7日月曜日

Google Developer Day 2011のこと


Google Developer Day2011が去る11月1日にパシフィコ横浜にて開催。今年も非常に多くの方々に参加してもらいました。もちろん主催はGoogleで、ぼくらはお手伝いしたに過ぎないのですが、ほんとに多くの方々にご協力していただいて何事も無く無事に、盛況のうちに終えることができて嬉しかったです。

今回はOpen Call展示やBar Android、震災復興関連の展示など、新たな試みもあり、それぞれとても評判が良かったわけですが、開催日の少し前にICS(Android 4.0)の発表もあり、GoogleからICSに関しての説明という意味では、初披露を除けば大きな会場ではこれが初だったという事もあります。

honeycomb(Android 3)で加わったいくつかの機能、とりわけFragmentやActionBarなどは、重要な機能としてICSにも引き継がれ、今後はタブレットのみならずGoogleTVなど大画面の端末を意識する上では欠かせない要素となるわけです。以前の仕組み(FragmentでいうとActivityなど)を前提としてさらに進化したものを利用する、といった流れがここ最近は多いわけで、後からAndroidに踏み入れる人たちは一気に覚えることが増えていくから大変なのではないかなあ、などと要らぬ世話を考えたりしますが、一方で「今までの考え方(仕組み)」を意識せずに今の仕組みからスタートできる方が楽なのかもしれない、とも思ったりします。

というのも、それこそまだAndroid SDKが出始めた当初に精力的にAndroidハックに取り組んでいたけど、どうもすぐにはお金にならなそうだ、と一旦他のことをやっていた人などに会ったりすると、情報が古いまま(初期の頃の仕様で止まっている)であったりすることもたまにあるんですよね。
とはいえ、全体を把握し続けるというのはなかなか難しいことですが。

話はそれましたが、そんなAndroidも4.0です。日本でもそこいら中でAndroid端末をいじってる人を見かけます。ほんの2年程前でも、HT-03A使っている人を偶然見かけたりすると「げぇーっ!Sapphire!(HTC Magic/HT-03Aの開発コード)」などと心の中で叫びつつどんな風に使っているのか見たくてしょうがない、でも覗いたら変な人だ…!などとよく分からないテンションになったりもしたというのに。いまや、深夜アニメでもガラケーよりスマートフォン出てきますからね。



で、全然GDDの事書いてないわけですが。 当日は、来られた方はご存じの方も多いかもわかりませんが、ボク自身はちょっとした衣装を着てまして。要するに着ぐるみだったんですが。 ぶっちゃけ恥ずかしかったですよ。最初のうちは。わりとすぐ慣れました。
着ぐるみのまま司会もしました。Androidのセッション(なまず速報とARガイガーカウンターの紹介)はわりとそれなりに真面目にやりました。Igniteは勢いでやりました。

懇親会でよく聞かれたのですが、全部アドリブです。 いやー、近くにたまたまえーじさん(@agektmr)がいてよかった。

変遷として興味深いのは、自分が受け持った内容だけ見てもAndroidにおいて広がりが出てきているということが見て取れるところです。
2つ前のGDDでボクは主にAndroidにおけるアプリ間でのデータの受け渡し方法を話しました。Intent、Preferences、ContentProvider、サーバー/クライアント通信。
1つ前は、APIの説明ではなく、より具体的に人気のあるAndroidアプリの作者(江川さんと山下さん)にどうアプリを作ったか、というお話をしてもらいました。ImoniもFxCameraも、基本的にはクライアントの実装が大きな部分を締めます。
そして今回はなまず速報とARガイガーカウンター(市橋さん、佐々木さん)。 なまず速報は、速報性が重要であるため、サーバー側の実装、とりわけレスポンス性能(プッシュ配信の速度)がキモです。そして、コネクションを維持するため、端末のバッテリとの試行錯誤も必須。ARガイガーカウンターは、ADKを利用してAndroid端末外部に計測器を繋げます。
こういった形で、API→クライアント→クラウド及び外部機器という形でトピックが変わってきているわけです。一口にAndroidといってもこのように切り口が多様にありますが、開発者が興味を示す部分も移り変わりがあるし、それだけの広がりを許容できるようにAndroid自身も進化してきた、とも言えるでしょう。
(しかし次何やれば良いんでしょうね。)

今後も、PSS(PlayStation Suite)であったり、あるいはGoogleTV、Walkmanなどに搭載されていったりなど、話題には事欠かない様相です。アプリ製作においては各端末に対応させるためのノウハウの蓄積が分水嶺になりそうな予感はありますが、単純に広がりを考えるだけでもちょっとしたSFの世界が近いところまできているような、そんな高揚感を覚えるのはきっとボクだけではないはず、なんて思ってます。

それはともかく、GDD運営スタッフの皆さん、登壇された方々、会場に足を運んでいただいた皆さん、サテライトやYouTubeからご覧になった皆さん、おつかれさまでした。

一週間経つ前に書けて良かった…!

仙台は元気でしたよ

日経BP社 主催のA3 Together  というAndroidアプリコンテストがあり、その審査員として参加しました。その表彰式を仙台で行い、先週の土曜日(10/29)に行ってきました。

もう震災から時も経ち、一部地域を除けば問題はないと聞いてはいたものの、実際に仙台に行ってみると本当に皆さん元気でした。街も活気があって。全然写真撮ってなかったのが悔やまれるわけですが。

コンテストは当日、優秀賞の方々が会場で改めてプレゼンを行い、その中からプレゼンも含めて審査、大賞を決めるという形。どうやら、前日入りした人たちはdocomoやevernoteの方々に厳しくプレゼンのダメ出しを受けながら練習していたらしく、熟れた感じが出ていました。
いい意味でトラブル好きのボクとしては、荒削りなプレゼンも嫌いではないのですが。

審査員講評でも少し触れたのですけど、大賞を決める審査は実際はなかなか決まらず、やはり審査員によってあれが良かった、これが良かったと喧々諤々な様相もあったのです。しかし、大賞となったBump Recorderのクオリティには誰も文句はなく、今後にも期待は高く、テーマである震災復興にも合っている点から決定。

個人的に面白いなあと思ったのは、toneconnectと脳波SPORTS。 toneconnectはテクノロジー的には古いもので、トーン信号を使った音声伝達なのだけど、たしかに面白いアイデア。11/4にニッポン放送のapp10で作者@kabayan自身も言っていたように、使い方が非常に多く考えられるため、今後使われ方次第では非常に多くの人に必要とされるものになりそう。放送聞いてても思ったけど、ラジオと非常に相性が良さそうだし。

脳波SPORTSも、二次審査のときは審査員誰も動かせない(反応がない)という状況ではあったものの、デバイスをAndroidに繋げるというところと、普段の生活の中で行なっている日常的な事をより楽しめる形に変えていく、といういわゆるゲーミフィケーションの要素は面白いし、そのような形でアプリが進化していく方向性はアリだと思うわけです。

それと、審査を通して非常に興味深いというか、貴重な経験をさせていただいたと思うのは、なにしろ立場や経験のかなり異なる審査員で構成されていたので、様々の視点での評価を聞くことができたこと。やはり同僚やあるいは同業だと、物事の見方(評価)は似たものになりがちなのだけど、これが立場が異なると真逆の評価になったりするのは非常に勉強になりました。

あとあれですね、ずんだ餅美味しかったです。

2011年7月21日木曜日

ABC 2011 Summerを終えて



日本Androidの会 Android Bazaar and Conference 2011 Summer 無事終了しました。
協力していただいた企業、団体様方、登壇いただいた皆様、展示していただいた皆様、お手伝いいただいたスタッフの皆さん、運営に奔走した委員の皆さん、そして当日ご来場いただいた皆様にあつく御礼申し上げます。

これだけの規模にまで拡大し、そして非常に暑い日の開催であったにもかかわらず、特に大きなトラブルにも見舞われず、イベント自体は無事に終えることができました。



しかし今回は、前回の東大本郷キャンパスと比較しても未曾有の規模拡大、16トラック並行で動く形だったのですが、もう運営側としては当日までドタバタしっぱなしという状況ではありました。基本的に全員ボランティアなので、皆仕事等の合間を縫っての準備ではあったのですが、中には仕事そっちのけでお手伝いいただいてる方も多数見受けられて、本当にありがたいことでした。とはいえ、これはやはり問題といえば問題なので、次回以降はなんとかうまく役割を分散できないものかと反省をしているところです。

あと、開催前から(特に出展していただいた方々から)「夏はちょっと…」という話はあったのですが、会場の都合などもあり今回は開催日を動かすことはできませんでした。たしかに、数回前までは春秋開催でした。一度、会場の都合で秋を冬に動かさざるを得なくなり、その流れで夏となったのですが、正直ホント暑かったですね。今後は春秋に戻そうと思っています。



各会場(建物)が、大隈講堂、8号館、11号館、14号館、16号館等と、離れていて、フロアも下の方だったり上の方だったりと参加された方々はなかなか移動が大変だったかと思います。最初は、建物間に誘導する人を配置する案もあったのですが、何しろあの炎天下にずっと外で立っているのは避けた方が良いのではないかということで、受付で詳しい地図を渡すことや、張り紙などをすることで解決を計った、つもりなのですが、やはり人によっては少々分かりにくかったようです。そもそも受付の場所が分からず、受付を通っていないという方も多数居られました。

委員の皆さんは毎週集まって準備をしていたのですが、それでもやはり見落としが多かったのかもしれません。今後に活かしたいと思います。

それと、前回は「もっと開発の話を聞きたい」という声が多数あったので、今回は開発トラックを3つにまで増やし、内容も濃いものにしたのですが、今回はデザイントラックが常に許容量オーバーという形。前回はそこまでではなかったのですが、今回はデザイントラックだけを見に来た!という方も多くいらっしゃいました。これはAndroidに関心を持つ人の裾野がエンジニアだけではなくなってきたという証なのかもしれません。


いろいろ、反省する材料はあるのですが、イベントはホントに盛況のうちに終えました。今月中に一度実行委員で反省会は行うのですが、参加いただいた皆様からの意見などありましたら、私やお知り合いの実行委員などに聞かせていただけますと幸いです。


...
個人的には「Tim Brayのアフレコをする」「LTの司会をプロのアナウンサー(ニッポン放送の吉田さん)とする」など貴重な経験をしてしまいました…! 
LTの司会は非常に好評いただいていて素直に喜んでいます。むしろ司会のかけあいが楽しかった等という意見まで。なんかスミマセン。
(いつになく真面目)

2011年5月27日金曜日

Google I/O 2011 I/O報告会

Tokyo GTUG主催ということで、今年のGoogle I/O の報告会をGoogle Tokyoオフィスにて行いました。参加していただいた皆さん、本当にありがとうございました。

とりあえず、今回の資料です。

キーノート初日(Android)


Optimizing Android Apps with Google Analytics

Android Market for Developers

Fireside chat with Android team

Building Aggressively Compatible Android Games

その他

後ほど、blog記事として書きなおすつもり…ではあります。