11/28にJavaFesta2008にてandroidに関するセッションが、11/29にandroid勉強会 in 札幌が開かれ、勉強会に関してはスタッフとして参加してきました。
1週間前まではandroidに関してあまり知らなかったのですが、スタッフになった関係もあって今週ちょこちょこと情報を集め始め、勉強会などを通していろんな情報が集まったので、まいむぞうの主観で見たandroid観+勉強会まとめ+ぶっちゃけトーク的に列記してみます。
androidの採用に適した状況
正確にはandroidの採用に適している(とまいむぞうが勝手に思っているもの)です。
- 外出中に座っている状況以外で使う(=ノートPCは使えない状況。処理能力や表現力はノートPCには敵わない)
- 常駐アプリを常に起動しておくような使い方(=その場その時に合った情報を提供。秘書アプリなど)
- 組み込み業務系ハードの制御用フレームワークとして。既存の組み込み向け開発環境は、専用のIDEとCまたはC++の組み合わせであり、独特の進化を遂げてきた(=一般的なJavaの開発環境水準には遠く及ばなかった)が、一気に追いついた(=開発コスト減少)。またフレークワーク部分のソフト代金が不要になるので、一台当たり単価も下がるのでは? これと相まって、今まではハードの調達コストや組み込み用のプログラミング環境を使わざるを得ないので参入障壁が高かったものが、androidであればかなり下がるのでは? 特にタッチデバイス系など。
大事なこと
- 最初から全世界を狙うべき(日本での展開がどうなるか、受け入れられるのかも含め、防衛戦は張るべき)
- androidではintentを通して他のアプリに問い合わせが出来る以上、早期にシェアを取ってしまえばその類のデータプロバイダとしてデファクトを取れる可能性が高い(ユーザとしては同種のソフトを複数入れるより、1つで済ませたいはず。容量的アプリ間の相性的に)
- 携帯用ソフトは無料もあるけど、実用性が高ければ有料でも買う、という風潮がある(=良いモノは販売できる。広告モデルに頼らない。iPhoneはこれでいいが、androidマーケットはちょっと風潮が違う可能性も…)
- 現状、英語読めないとキビシイ(ドキュメントがほとんど英語)
- 勉強するならみんな1つづつ作りたいアプリを考えて、コツコツ作っていくのが一番良いのかも。
ぶっちゃけどう?
- Javaであるための3大要素である「文法」「標準ライブラリ」「バーチャルマシン」のうち、androidは文法しか準拠してないので、Javaとは似て非なるモノとして扱わなければならない。
- とはいえ、ソースコードレベルでは標準ライブラリもそこそこ同じモノが入っているので、既存のJava用サードパーティライブラリも、とりあえずコンパイルしてみて通れば使えそう。方向性としてswingなどのGUI系ライブラリはごそっと落ちているみたい。(これって結構楽しい未来が待ってる気がしませんか?)
- 現状のandroidはG1専用のコードも混じっているなど、まだ完成とは言えないレベルのようだ。ぶっちゃけG1発売前は相当厳しかったらしく、ハードメーカーが相当頑張ったらしい。
- このような事情から、android搭載機が出たての数台は、android間でも互換性問題が浮上するかも? 実際問題、エミュレータでは動作するけど、G1では動作しないアプリケーションが大量にandroid marketに登録されているらしい。(どうすんのコレ?)
- FlashLiteではなくFlash 10ベースのプレイヤーがandroidに載ったというニュースが流れて居るみたいだけど、ぶっちゃけ完成度は「いまひとつ」らしい。具体的にはFlexはまだ動かないんじゃないかな、みたい。ただ、相当気合い入っているようなので、これらの解決は時間の問題っぽい。
個人的に聞きたかった事
主にネットや本や勉強会など多方面から収集したものです。
- androidの海外での反応は? 盛り上がってる? →一般ウケのレベルはちょっと把握できてないけど、開発者レベルの話であれば、本家googleグループへの投稿量がハンパ無いことからかなり注目されているのでは? ちなみに日本以外では本家が活動の拠点のようです。(ので、まじめにやるなら追っかけるべき)
- layoutとstrings.xmlを分けている理由って、多言語に簡単に対応するためだと思うけど、具体的に言語リソースを変えるにはどうすればいい? →本に書いてあったので読めばいい
- 日本でのandroidリリース情報は? →来春(4月か5月)ぐらいかな?
- ケータイとしてのandroid以外の状況は? 業務用組み込み機器とか。 →android周辺ではarmadilloが注目を浴びている。実際に展示会などでもかなり手応えがあるみたい。
- androidでゲームは作りやすい? →良い面と悪い面があるけど、メモリとCPUの分携帯アプリよりは作りやすい。
- androidはどうやって配布するの? →コンパイルするとapkファイルが出来るので、これをデバッガ経由でインストールするか、HTMLに貼っておいてクリックしてインストールするか、android market経由でインストールする。
- android marketからアプリをダウンロードしてエミュレータで動かすことは出来る? →現状、G1などの実機でなければandroid marketにはアクセスできない。ただし、今は有料ソフトがないので、手元にapkファイルがあればエミュレータなどにインストールできるかも。
- QR画像を解析して文字を取り出すようなライブラリは存在する? →Javaの既存のライブラリでそういうのがあるらしい。(未確認)
- たとえば、新しいセンサーなどをメーカーが作って、それをandroidにくっつけたとして、android用のデバイスドライバを新しく書くのって難しい?(携帯端末としてはあまり出ないだろうけど、armadilloとしてなら需要が高い気がするし、簡単にできるのか、それなりに時間が掛かるのかによっても状況は変わる気がする。 →まず、市販されるandroidはコア部分をいじれないようになっているので、基本的には追加デバイスは扱えない。エミュレータもしくはarmadilloならばこのあたりも可能だが、アットマークテクノさんに聞いてみたところ、まだデバイスドライバの詳細は掴めていないみたい。ちなみにgainerをくっつけるサブプロジェクトが動いているみたい。(というか半分当事者なんですが)
- activityって一言で言うと何? 一時期にアクティブになれる一単位という理解は正しい? →基本的には画面一枚と思って良いみたい
- 参考にarmadilloのロット単価知りたい →話を聞くと、色々組み合わせがあるようなので、やはりアットマークテクノさんに直接聞いた方が良さそう。
- 業務用機器のように、電源入れたら特定アプリだけが立ち上がるようにできるか? →標準のランチャーもいちアプリケーションなので、これを差し替えれば可能かも。(未確認)
- T-MobileのG1を入手する方法は無い? →ヤフオクで普通に売ってるね。使用上の注意はあるみたいだけど。
- android marketでの収益性ってどう? →iPhoneのAppStoreとはビジネスモデルが違うし、まだ決まってない部分が多いので、正直分からない。が、有料化開始までにある程度の期間があるため、有用なアプリは無料期間中に出尽くしちゃって、「アプリは買うもの」という文化にならない可能性もある。
- android marketって登録するのって難しい? →実は簡単らしい。$25払って、登録時に自分の証明書でデジタル署名する必要があるみたい。
- 赤外線通信ってサポートされてる? →たぶん、ないような気がする。
Macにセットアップするなら
自分でセットアップしたときのメモです。ネット上にMac用の設定が見あたらなかったので。
- エミュレータ初回起動時にandroid用のデータ格納先を聞かれるので、~/.androidを先に作っておくと良い
- JDKはSunからじゃなくてAppleから出てる。ソフトウェアアップデートで入る
- envでJAVA_HOMEがあるか確認。無ければ作っておくと良い。
- インストール済みJDKは/System/Library/Frameworks/JavaVM.framework/Versions/に置いてあるはず
- keytoolのパスはwhich keytoolで探すのが早い
- MacでAndroid API Key用のfinger printを取得するには/usr/bin/keytool -list -keystore ~/.android/debug.keystoreでOK。~/.androidは先に作ったパス
まぁ、あまり重要なことではないのですが。
androidやるなら一度は見ておくべき
市販の本である
「Google Android入門 ~携帯電話開発の新技術」で周辺事情を押さえ、
"Google Android完全解説 (アスキームック)" (アスキー)で実際のプログラミングに必要な知識をおさえると良いかも。
- 日本Androidの会(日本アンドロイドの会) ※基本。チュートリアルあり
- android情報まとめ @ ウィキ ※android関連ニュースまとめと、和訳ドキュメントがある
- Android入門 ※使い方やSQLiteや主要クラスのチュートリアルなどがまとまっている
- throw Life - Google Androidに関連するエントリ ※開発上のノウハウが公開されている
- droiddraw ※androidの(たぶん)unofficial GUI版layoutビルダー ※現状、コレ無しでlayout作る気にならない ※スタンドアローン版の方が高機能 ※貼り付けたコンポーネントを消すにはBSキー
これ作ったらどうよ?
個人的に思いついたandroid用アプリのアイデア。(まだまだですな)
- 絵文字対応メーラー(UTF8で絵文字サポートという流れもあるようですが…)
- 飲食店の待ち行列の管理(順番が来たらメールで通知)
- 自分のgoogleカレンダーからのスケジュールを読んでサービス提供&秘書ソフト
今後の予定
「札幌Javaコミュニティ内日本androidの会北海道支部」ぐらいのスタンスで、北海道におけるandroid関係の活動を続けていくことになりそうです。(詳細は検討中)
ただ、いかんせん人前で話せるほど知識量がないので、札幌Javaコミュニティ内でちょっと時間もらって「今こんなアプリ作ってます」とか近況報告し合ったり、北海道のandroid関係者が集まって呑めるような感じにもって行けたらいいなぁというところです。札幌にはアットマークテクノさんやハドソンさんも居ますしね。
札幌Javaコミュ自体も、特定のJava技術に偏るものではなく、参加者の興味対象によって会の性格が変わるものなので、android勉強会に参加した方で、android技術者間のネットワークを持ちたい方は、札幌Javaコミュニティに参加してみてはいかがでしょう?
0 件のコメント:
コメントを投稿