2010年3月31日水曜日

シャープのAndroid開発者専用端末「JN-DK01」のAVDを作成してみた

2010年5月以降、Androidアプリケーションの開発者に向けて、シャープから開発者専用端末「JN-DK01」が発売される。シャープ製のAndroid端末「IS01」をベースにした端末。
シャープ、Androidアプリ開発者向けの端末を販売へ - ケータイ Watch

それに関連して、シャープからAddOnが提供されていたので、そのAddOnをAndroidのSDKに組み込んでみた。
SH Developers Square - SDK AddOn ダウンロード

基本的なやり方は、上記ページに書いてあった方法と同じ。

1. AddOnのzipファイルをダウンロードして展開

2. 展開したフォルダを%ANDROID_HOME%\add-ons下に移動

3. Target IDを確認

コマンドラインから
# android list target
を入力し、SHARP JN-DK01 AddOnのTarget IDを確認する。

環境によりTarget IDは異なる。自分の環境だとTarget IDは5だった。

4. AVD (Android Virtual Device)の作成

AVD名「JNDK01」、SDカード容量「128MB」、先に確認したTarget IDを指定してAVDを作成。

# android create avd -n JNDK01 -t 5 --sdcard 128M

AVDが作成できると、以下のように表示される。
Created AVD 'JNDK01' based on JN-DK01 (Beta version) (SHARP Corporation), with the following hardware config:
hw.lcd.density=240
disk.cachePartition.size=5M
disk.cachePartition=yes
vm.heapSize=24M
hw.ramSize=256M

5. Emulatorの起動

作成したAVD“JNDK01”を指定して、Emulatorを起動。

# emulator @JNDK01 -qemu --cpu cortex-a8

AVD名以下のコマンドオプション「qemu --cpu cortex-a8」を指定しないと自分の環境ではいつまでもAVDが起動しない、という状況になった。

また、起動が完了するまで、結構時間がかかるので注意。ロゴ画面の状態がかなり長く続く。

起動直後、アラートが出る。これは「Wait」でも「Force close」でもどちらでも構わないようだ。

Cntrl-F11とCntrl-F12で横置き、縦置きがスイッチングできる。

横置きから

縦置きへ。

しばらくすると画面が縦向きで再描画される。

ちなみに、EclipseのADTに含まれているAndroid SDK and AVD Managerから直接Emualtorを起動することはできない。AVD ManagerでAVDの作成はできるが、AVDを指定してプログラムを実行しようとすると、「Waiting for HOME ('android.process.acore') to be launched...」というコンソール出力で止まってしまった。

6. 自作アプリのインストール

Eclipseから直接AVDを指定して起動できないので、自作Androidアプリは、apkファイルをEmulatorへインストールして実行確認。

apkファイルのインストールは、#emulatorコマンドでエミュレーターを起動したままの状態で、コマンドプロンプトからapkファイル名を指定して行なう。

#adb install c:\andrido_sdk\hogehoge.apk

C:\andrido_sdk>adb install C:\andrido_sdk\hogehoge.apk
17 KB/s (18755 bytes in 1.041s)
pkg: /data/local/tmp/SimpleRSSReader.apk
Success

Successとでればインストール成功。

以下のように、自作アプリも実行確認できます。

少し触ってみた印象としては、画面が表示されたり引っ込んだりといったときに多少エフェクトがかかって表示されるのですが、そのエフェクト表示が遅く、実行速度が重たい感じです。

セカイカメラのAPI「OpenAir for Publishers API」は有料で企業しか利用できないのですね

セカイカメラのAPI「OpenAir for Publishers API」は有料で、しかも企業しか利用できないのですね。
Sekai Camera OpenAir API » REGISTER

なお、APIの仕様については、以下のページで結構詳しく説明されています。
api / OpenAirForPublishers

5万円台後半とは結構しますな | フォトレポート:KDDI初のAndroid端末「IS01」--価格は5万円台後半の見込み:モバイル - CNET Japan

フォトレポート:KDDI初のAndroid端末「IS01」--価格は5万円台後半の見込み:モバイル - CNET Japan

昨年12月にHT-03Aを購入したときは、ドコモのスマートフォン割などを使って1万500円くらいだったが、購入費だけで5万円台後半とは、なかなかしますな。

これだと、「ISデビュー割」で、月々1095円を24カ月間(2年間)割り引いてもらっても、最初の敷居が少々高い印象です。
auのスマートフォン「IS01」「IS02」の発売について | 2010年 | KDDI株式会社

HTC Desireはホーム画面が7つもある

ソフトバンクから4月下旬に発売が予定されている「HTC Desire」。
ホーム画面が7つもあるんですね。
写真で解説する「HTC Desire」 (1/2) - ITmedia +D モバイル

ホーム画面でピンチインをすると、7つの画面がサムネイルで表示され、タッチして切り替えられるようです。ほう。

2010年3月30日火曜日

au Android端末「IS01」の特徴とAndroid端末向けポータル「au one Market」の気になること

auは、2010年6月上旬以降にシャープ製のAndroidOS搭載端末「IS01」を発売することを発表。

auスマートフォン「IS series」スペシャルサイトの開設について〈別紙〉 | 2010年 | KDDI株式会社
Android搭載のシャープ製スマートブック「IS01」 - ケータイ Watch

IS01の特徴は以下の通り。
  • Android OSのバージョンは1.6
  • ディスプレイは約5インチ、960×480ドット
  • QWERTY配列のフルキーボード付きでキーピッチが11.2mmと広い
  • タッチパネル式(NewモバイルASV液晶)
  • 画面液晶が大きくフルキーボードを搭載しているので「スマートブック」という位置づけ
  • CPUはクアルコムのSnapdragon(1GHz)
  • キーの上部にトラックボールがある
  • 通信方式はCDMA 1X EV-DO Rev.A(CDMA 1X WIN)
  • IEEE802.11b/g対応
  • Bluetooth 2.1+EDR対応
  • 赤外線通信対応
  • キーボードの裏面にカメラがあり、オートフォーカス付きの527万画素CMOS
  • 通話は可能だが、ハンズフリー通話となり、音が外に聞こえてしまう。イヤホンマイクやBluetoothヘッドセットなどを使うことを想定
  • ワンセグ対応
OSは1.6なんですね。
しかし、ディスプレイが広く、基本的に横置きで使うブックスタイルなので、これまでのAndroid機とは少し印象が異なります。ワンセグが使えるのも新鮮。

2010年8月下旬以降のアップデートで、@ezweb.ne.jpのアカウントもIS01上で使えるようになるのも、新しい印象です。

昨日、ドコモが、無料サービス「ドコモwebメール」の提供を発表しましたが、ドコモwebメールは、@dwmail.jpのメールアカウントで、@docomo.ne.jp宛のメールも、その他のメールアドレスも一元的に管理できるグローバルなメールサービスなのに対し、auは単にez宛のメールのみ扱えるというシンプルな形のようです。
報道発表資料 : 「ドコモwebメール」の提供開始について | お知らせ | NTTドコモ

なお、2010年9月30日まで「ISデビュー割」が実施されます。「プランEシンプル」の基本料金780円と、IS01でのISPサービス「IS NET」の月額315円の合計額に相当する1095円を24カ月間(2年間)割り引くそうです。
AndroidスマートブックとWindows phone:KDDI、au向けスマートフォン「IS series」2機種を発表 - ITmedia +D モバイル


また、IS01発売と同時に、Android端末向けポータルサイト「au one Market」の開始も発表されました。サービス当初はAndroid Market誘導サイトのようです。いつの時点から誘導サイトでなくなるのか、au one Marketへ掲載されるにはどうしたらいいのか、といった情報は、まだよくわかりませんドコモマーケットでは掲載基準等公開されていたのですが・・・。

「au one Market」の提供開始について〈別紙〉 | 2010年 | KDDI株式会社
au、Android端末向けポータル「au one Market」をオープン――「IS01」発売と同時に - ITmedia +D モバイル

Android向けポータルサイトについて、ドコモは「ドコモマーケット」、auは「au one Market」を運営しますが、4月下旬にAndroid端末の発売を予定しているソフトバンクでは、独自にAndroid向けポータルサイトを運営する意思は現時点ではないそうです。
ソフトバンクがAndroid端末「HTC Desire」を4月下旬以降に発売へ - ニュース:ITpro

しかし、au one Marketで最も気になるのは、セキュリティチェック機能(2010年8月下旬以降に開始)です。KDDIがアプリの安全性などを検証するコンテンツプロバイダ向けのオプションサービスとなっていますが、
  • このサービスは有料なのか
  • このサービスを受ける受けないとで、au one Marketでアプリが表示されるときに何かしら違いが出るのか
などは分かりません。
また、このような機能がauだけでなく、ドコモなど他社にも広がらないか、そういった点も含めて、気になるところです。

Androidアプリを公開出来る場所が増えるのは開発者にとって好ましいと思いますが、App Storeに比べてオープンで規制がほとんどないAndroid Marketの自由さを継承するようなマーケットが増えて欲しいと思います。

ちなみに、2010年8月下旬以降、auの通信料金と一緒に有料アプリの決済ができる「auかんたん決済」にau one Marketは対応するそうです。ドコモマーケットも、2010年内中に合算請求を開始する予定ですが、今年中にはどちらのキャリアでも合算請求ができそうです。


※2012.01.17 追記

au one Marketの登録費用は、年額10,000円(税抜)、有料アプリの課金率は12%になります。
参考:
・「au one Marketでのアプリ提供に関して」から「au one Market新規登録をする」ページ内の利用規約←階層が深い!
au one Market - SmartBusinessJapan

サイマルラジオってなんだろうと調べてみた

サイマルラジオとは、電波放送と「同時に」、インターネットのストリーミングで放送内容を配信する意味らしい。Simulとは英語の「同時」を意味する「Simultaneous」の略。

日本には、全国のコミュニティFM局が集まって組織しているCSRA(Community SimulRadio Alliance)があり、CSRAが運営しているサイマルラジオがある。2010年3月30日現在、加入局は37局。配信形式はWindows Media形式。プレイヤーはWindows Media Playerを使用。

CSRAの代表は、テレビのキャスターでもおなじみの木村太郎氏。彼は湘南ビーチFMの代表取締役社長でもある。もともと、湘南ビーチFMが自局サイトで再送信を始めたのが、日本でのサイマルラジオのさきがけとなったようだ(SimulRadio - Wikipedia より)。サイマルラジオの中でも、湘南ビーチFMだけビットレートがかなり高いのは、そういった流れがあるからなのだろう。

また、2010年3月24日、iPhoneでCSRA加入局の放送が聴けるアプリ「i-コミュラジ」が発売された。価格は350円。
iPhoneでコミュニティFMラジオが聴けるアプリ「i-コミュラジ」発売:ニュース - CNET Japan

発売時の対応局は、
  • 三角山放送局(北海道札幌市)
  • FM-JAGA(北海道帯広市)
  • RADIO3(宮城県仙台市)
  • 湘南ビーチFM(神奈川県三浦郡)
  • FMぱるるん(茨城県水戸市)
  • フラワーラジオ(埼玉県鴻巣市)
  • REDSWAVE(埼玉県さいたま市)
  • FM CASTLE(京都府福知山市)
  • FM-N1(石川県石川郡)
の9つ。今夏までには全局対応の予定。

マルチタスク対応か?と言われている時期iPhoneOSにならないと、ラジオを聞きながらメールを読んだりブラウジングしたりといったことができないので、今の所、使用には多少難があると思われる。


一方、2010年3月15日から始まっている「radiko.jp」。これは2009年12月に発足したIPサイマルラジオ協議会(The Association of IP Simulcast Radio)が運営しているもので、会員は在京、在阪ラジオ局が中心。配信形式はAdobe Flash形式。プレイヤーはAdobe Flash Playerを使用。

radiko.jp関連サービスが色々と出てきているのでAPIでも公開されているのかと思ったら、APIなどは公開されていないらしい。ワオ。独自に調べて開発してらっしゃるんですね。
録音やTwitter連携も--radiko関連サービス続々登場:ニュース - CNET Japan

CSRAのサイマルラジオと違い、radiko.jpでは、IPアドレスによる判断などにより、聴ける地域が限定されている。その理由が以下のページで語られていた。
ラジオをほぼ100%サイマル配信する「radiko.jp」の挑戦 -AV Watch より。
宮澤:ラジオ放送局さんは、放送免許に応じて、一定のエリアに向けてビジネスをするという形で、50年やってきています。それを壊して新しい事をやるためには、どんなメリットがあるかが重要になります。

 もともと、ラジオは凄くローカルなもので、地元の売り上げの比率が高いんですね。地元のクライアントから広告を出稿していただき、地元のリスナーにサービスを届ける。当然放送の中身も地元の情報です。それを外に出して行く事が、放送局のビジネスにとって重要か否かという判断になるのです。

 また、権利の問題もありますね。例えば、ここのエリアでしか実施していないキャンペーンの告知をラジオで行なう事は山ほどあります。このエリアに向けて番組をやるという前提でタレントやCM契約を結ぶ事も多い。僕ら(電通)のような代理店としても、エリアマーケティングのツールとしてラジオを活用するという仕事も日々やっています。エリア制限というハードルを超えるメリットが多ければ、将来的には超える事になっていくと思いますが、その必要が無ければそうはなりません。

 もちろん、リスナーからすると、全ての放送局がどこからでも聴けるのがネットの醍醐味だと思います。我々も将来的にはそうしていきたい。しかし、今、エリア制限をクリアしていく手間を考えると、超えなければならない問題が凄く多くて、サイマル配信実用化への道筋が立てずらくなってしまう。今、手をつけられる所からはじめようとすると、従来のエリア内で聴ける人にまず届ける、という形になるという事です。

ラジオのこれまでのビジネスモデルや電波法などの法律といった壁を超えるメリットがどれだけあるのか、という事だと思うが、自分は、沖縄の人がJ-Waveを聞くといった楽しみ方ができることこそ、インターネット配信でのメリットだと感じる。

実際、CSRAのサイマルラジオで、石垣島のFMいしがき(この局は映像付きで放送している)を見て、沖縄っぽいなー、なんだかゆるいなー、と感じられることが面白い。radiko.jpでも是非そうなって欲しいのだが、どうなるだろうか。


そういえば、インターネットラジオというものもあるなと思い、インターネットラジオについても調べてみた。

インターネットラジオ局は、個人でも開局でき、全世界あてに情報を発信できる(インターネットラジオ - Wikipedia より)。また、電波を使用しないので、日本では、電波法に基づく放送(無線局)免許は不要。手軽そうだ。しかし、音楽を流す場合には日本ではJASRACとの信託契約を締結する必要がある。ここが最も難点か。

インターネットラジオとして有名なところとしては、SHOUTcastなどがある。そういえば昔、Winampなどでよく聞いていた。


個人的には、帰宅途中の電車の中で、iPhoneアプリを立ち上げてFM横浜のトレセンを聞きながら帰りたい、という願望があるのだが、それが叶えられるのは当分先の事のようだ。iPhoneメインに変える前までは、ドコモ携帯のFMラジオチューナーで聞けたのだが・・・ムムム。

※追記 2011.04.10
2011年4月12日(火)AM10時から、いよいよradiko.jpでFM横浜の実用化試験配信が始まりました!
http://www.fmyokohama.co.jp/topics/detail/info_radiko/0406_radiko.pdf

2010年3月29日月曜日

LogCatで日本語出力

Androidアプリでログを出力する際は、android.util.Logクラスを使用する。Log.vでVERBOSE出力、Log.wでWARN出力などができる。

EclipseのADTプラグインを使用している場合、

Window > Show View > Other > Android > LogCat

と選択していば、Eclipse内でLogCatビューを表示し、ログ出力内容を確認することができる。

しかし、ログ出力内容に日本語が含まれていると、日本語が文字化けしてしまう。



どうしても日本語ログを確認したい場合は、コマンドプロンプトから
#adb logcat
でLogCatを実行する。

そうすると、設定により、文字化けせずに日本語が出力できる。ちなみに、adbとはAndroid Debug Bridgeの略。

以下、設定方法。

1. コマンドプロンプトのショートカットを作成

Windowsの場合、C:\Windows\System32の中にcmd.exeがある。exeを右クリックし、「ショートカットの作成」を選択すると、「デスクトップ上に作成しますか?」と尋ねるダイアログが立ち上がるので「はい」を選択。デスクトップにcmd.exeのショートカットができる。

2. コマンドプロンプトのプロパティを変更

cmd.exeのショートカットを右クリックし、「フォント」タブで「MSゴシック」を選択。

続いて「ショートカット」タブで、ショートカットのリンク先を以下のように編集する。
「C:\Windows\System32\cmd.exe /k chcp 65001 | adb logcat」

「chcp 65001」はコマンドプロンプトの文字コード設定にUTF-8を指定する意味。

以上で、バッチコマンドのように、ショートカットのダブルクリックで、日本語出力に対応したLogCatを起動することができる。

Androidアプリで現在選択されているロケールを取得する

Androidアプリで、現在選択されているロケールを取得するTips。
import java.util.Locale;

import android.util.Log;


String format = null;

// ロケールの取得
Locale locale = Locale.getDefault();
Log.v("ロケールは", locale.toString());

if (locale.equals(Locale.JAPAN)) {
 format = "yyyy年MM月dd日 HH:mm";
} else {
 format = "MMM d, yyyy 'at' HH:mm";
}

return format;
AndroidではJ2SEのAPIがそのまま使えるので、普通にutilのLocaleクラスを呼び出してロケールが判断出来ます。便利だなぁ~。

AndroidアプリでRSSフィードの日付をパースしてフォーマットする

Androidアプリで、RSSフィードの日付をパースして表示するTips。
RSSフィードのpubDateの日付書式「Mon, 29 Mar 2010 04:34:00 +0000」を任意の日付フォーマットへ変換する。
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.http.impl.cookie.DateParseException;
import org.apache.http.impl.cookie.DateUtils;

/** RSSフィードの日付フォーマットパターン */
private String pattern[] = { DateUtils.PATTERN_RFC1123 };

// ItemからpubDateを取得してフォーマット
String pubdate = item.getPubdate().toString();

String formattedPubdate = "";
try {
 Date date = DateUtils.parseDate(pubdate, pattern);
 SimpleDateFormat sdf = new SimpleDateFormat("MMM d, yyyy 'at' HH:mm");
 formattedPubdate = sdf.format(date);
} catch (DateParseException e) {
 e.printStackTrace();
}
フォーマットした文字列はViewに設定するなどして表示する。
// item_pubdateに則ってTextView生成
TextView pubdateView = (TextView) view.findViewById(R.id.item_pubdate);
pubdateView.setText(formattedPubdate);
タイムゾーンの設定により、日付がパースされる結果は動的に変わる。

タイムゾーンをGMT+09:00に設定している場合とGMT+1:00に設定している場合とでは、パース後の日付情報が異なっている。DateUtilsのparseDateメソッド、便利ですねぇ。



2010年3月25日木曜日

AndroidManifest.xmlで最低限定義するもの

Androidアプリケーションを公開する前に、マニフェスト・ファイルの内容を適切に設定する必要がある。設定するマニフェスト・ファイルは、プロジェクト直下にあるAndroidManifest.xml。

AndroidManifest.xmlの例。


    
        
            
                
                
            
        
    
    
 

アプリケーションの配布には、アプリケーションの「バージョン、アイコン、ラベル」の三つの情報が必要。

バージョンは、manifestタグの要素の「android:versionCode」属性と「android:versionName」属性で定義する。

android:versionCode属性は、アプリケーションのバージョン番号を表すもので、整数値で指定。この数値は、開発者がアプリケーションをアップデートする度に増やす必要がある。android:versionName属性は、ユーザーにバージョン情報を提示するためのもので、任意の文字列が指定できる。

アイコンとラベルは、applicationタグの要素の「android:icon」属性と「android:label」属性で定義する。ここで定義したアイコンとラベルはそのまま、Android MarketやインストールされたAndroid端末の起動画面などで使われる。アイコンに設定できる画像は、48x48ピクセルの透過PNG。

2010年3月24日水曜日

Androidアプリは多言語対応が結構簡単だ

Androidアプリでは多言語対応が結構簡単にできるんですね。

プロジェクトの「res」フォルダの下にある「values」フォルダ。



その中の「strings.xml」を基本として、例えば英語ロケールの場合などの文字列表現を記述します。



日本語ロケールの場合の文字列表現は、「values-ja/strings.xml」内に記述します。



アプリケーションが実行された際に、端末のロケールにより、どちらのリソースから文字列を引っ張ってくるか自動的に判断されます。また、メニュー画面でのアプリケーション名の表現も、端末のロケールにより、自動的に変わります。



プログラムとリソースが完全に切り離されているので、管理が楽ですね。

Androidエミュレーターで日本語入力するには

Androidのエミュレーターで日本語を入力するにはどうしたらいいのかな?と思ったら、実機と同じように、設定画面でIMEを選ぶだけで良かった(^^)。


環境:
Android SDK Tools, Revision 5
ADT 0.9.6.v201002051504-24846
DDMS 0.9.6.v201002051504-24846

Japanese IMEにチェックを入れ、他のIMEのチェックをオフにすると、「iWnn」を使うことが出来ます。実機では「iWnn」ですが、エミュレーター上では「Japanese IME」になっています。




その他、日本語入力アプリとして有名な「Simeji」もエミュレーター上でダウンロード&インストールして使うことが出来るんですね。

1. エミュレーター上でSimejiのapkをダウンロードさせてもらいます

「throw Life - Android1.5でも動くSimeji」

エミュレーターを起動し、エミュレーターのブラウザでSimejiのapkがあるURLへアクセス。
Simeji3.E.2.apk(3rd Mar, 2010)をダウンロードしました。

2. エミュレーター上でSimejiをインストール

インストールして、メニューにSimejiアイコンがあることを確認。



3. IMEとしてSimejiを選択

IMEとしてSimejiが利用できますw。




エミュレーター上でこうやって使えるのも、apkをダウンロードできるURLを公開してくれているからですね。作者のadamrockerさん、ありがとうございます♪

それにしても、Androidのエミュレーターは性能が高いなぁ。GPSが利用できない以外は実機とほぼ同じ動作が確認できる。

ITpro連載「Android徹底解説」の分かりやすい解説画像のメモ

ITproの連載「Android徹底解説」の中で、基本的なことだけど大事なことなので、メモっておきたい画像2つ。

1. Androidの構成
Androidの仕組みを知る(1) - Android徹底解説---内部構造,移植,開発:ITpro より。

同じような画像はAndroidのページにもあるが、このページの解説の方が、図、文章共に分かりやすい。



2. Androidのアクティビティのライフサイクル
Androidの仕組みを知る(2) - Android徹底解説---内部構造,移植,開発:ITpro より。

Androidアプリケーションのアクティビティのライフサイクル。これも非常に分かりやすく解説されているのでメモメモ。

2010年3月19日金曜日

Android Xperia X10のスキンを使ってAVDを作成

Xperiaでの動作をエミュレートしたいと思い、Xperiaのアドオンをソニー・エリクソンのサイトからダウンロードしてきた。

1. ページ下の「Sony Ericsson Xperia™ X10 add-on for the Android™ SDK (52 MB)」をクリック。

2. EULAの同意を求められるので、「Accept」をクリック。

3. ダウンロードしたzipファイルを展開。展開すると「XPERIA-X10_r1」というフォルダが生成される。

4. AndroidのSDKのホームディレクトリ(以下ANDROID_HOME)下にある「add-ons」に、「XPERIA-X10_r1」を移動。

5. 「XPERIA-X10_r1」フォルダ下の「skins」にある「X10」フォルダを、ANDROID_HOME\\platforms\\android-4\\skins下へコピー。Andorid 1.6(APIレベル4)を主に使っているので、そのAPIレベルで開発している時にXperiaのスキンが選べるようにした。

以下は、Eclipseからの操作。Eclipseのバージョンは、3.5.2。Galileo。

6. 「Android SDK and AVD Manager」を起動し「New」ボタンをクリック。ちなみに、AVDとはAndroid Virtual Devicesの略。

7. 「Create New AVD」ウインドウが開くので、Targetから「X10(Sony Ericsson Mobile Communications) - API Level 4」を選択。SkinはデフォルトでX10が選ばれているので、後はNameやSD Card Sizeを入力。



8. Eclipseの「Run」メニューにある「Run Configurations...」を開き、「Android Application」の中から起動したいプロジェクトをクリック。Targetを7で作成したXperiaのAVDに変更する。



9. Xperiaのスキンでアプリケーションが起動する。



※「あれ?」と思ったこと

起動初回時に、DDMSがNullPointer Exceptionをスローしているエラーメッセージがコンソールに表示されたので、コマンドプロンプトからDDMSを起動。そして再度XperiaのAVDでアプリケーションを実行してみたら、Exceptionはスローされず。その後もExceptionは出ていません。

2010年3月18日木曜日

Androidアプリを公開・販売できるマーケットそれぞれのまとめ

2010年4月1日からXperiaが販売されることになり、ソニー・エリクソンのサイトやドコモのサイトでもAndroidアプリがダウンロードできるようになる。

Googleの「Android Market」、ソニー・エリクソンの「Play Now」、ドコモの「ドコモマーケット」、これら3つのサイトで、何が出来て、何が出来ないのか、現時点(2010年3月時点)でのポイントをリストアップしてみた。

参考:
「世界に通用するAndroidアプリを作ろう」、ソニー・エリクソンが開発者向けイベント開催:ITpro ページ2
「世界に通用するAndroidアプリを作ろう」、ソニー・エリクソンが開発者向けイベント開催:ITpro ページ3
報道発表資料 : 「ドコモマーケット」の提供開始について | お知らせ | NTTドコモ

1.「Android Market」

言わずもがな、Googleが運営するAndroidアプリ公開・販売サイト。

現在3万アプリほど登録されているらしい。

アプリを公開するためには、登録料として25ドルが必要。これはGoogle Checkoutにて決済。登録料なので、iPhoneアプリ開発と違い毎年支払う必要はない。

アプリ公開までの事前審査はない。アプリを登録したらマーケットで公開される。Android Market Content Policyに反するものや、ユーザーからの申告で悪質とGoogle社が判断したアプリは、遠隔で削除される。

日本のAndroid開発者は、海外向けにも、日本向けにも、アプリの公開と販売が可能。開発者は売上の7割を受け取る。

AppleのApp Storeの10万本という数には及ばないものの、3万本の中から、優れたアプリを見付け出すのが結構大変。

2.「Play Now」

ソニー・エリクソンが運営するコンテンツ公開・販売サイト。

日本市場向けのサイトもあるが、現時点では、この日本市場向けサイトではAndroidアプリの登録・公開はできない。単に情報提供サイトという位置づけらしい。

つまり、日本のAndroidアプリ開発者が、海外のAndroidユーザーに対してPlay Nowを通じてアプリを公開・販売することはできるが、日本向けにはGoogleのAndroid Marketを使ってくださいとのこと。開発者が受け取る割合はAndroid Marketと同じ、7割

Play Nowでは、Google Marketと違い、アプリ公開までの事前審査がある。審査は30日以内に終える体制とのこと。

登録は、submit.sonyericsson.com から誰でも可能。登録料や年会費は無い。つまり一切無料。

現在、Play Nowに登録されているアプリは、Java ME、Symbian、Windows Mobile、OSE(ソニー・エリクソン独自のプラットフォーム)などを対象としたもので、Androidアプリはこれからだが、ソニー・エリクソン製の携帯電話は世界で2億人の利用者がいて、1年間で2億件のダウンロードがあるらしい。

また、優れた開発者と認められれば、Hero Developerとして独自APIの情報などが提供され、資金や宣伝面でも支援してくれるようだ。これがPlay Nowでのイチオシらしい。

3.ドコモマーケット

NTTドコモが運営するAndroidアプリ公開サイト。2010年4月1日から開始される。2010年内には、ドコモマーケット独自の課金システムを整備するらしいが、それまではAndroid Marketから厳選した少数のAndroidアプリを紹介する情報提供サイトという位置づけのようだ。

ただし、ドコモマーケットへ掲載されるためには、以下が必要だ。

・掲載への申し込み
・掲載の申し込みができるのは法人企業のみ
・ドコモの掲載基準を満たしたコンテンツであること

申し込み後の手順は、「担当よりご連絡」後のことで、公開されていないので分からないが、恐らく申し込みには費用はかからないだろう。 また、掲載基準は当然の項目ばかりなので問題はないが、なにより、申し込みが法人企業に限定されていることが門を狭めている。個人プログラマーではダメだ。「iメニュー」のようで、なんともドコモらしい。


まとめると、現時点では、Play Nowもドコモマーケットも、結局はAndroid Marketへ接続する形になるので、Android Marketへ登録しておくことは外せない。

更には、海外へ向けて、Play Nowからも公開・販売してみてもいいかもしれない、という感じだろうか。

アプリ登録作業が複数サイトになってくると、登録作業は少し面倒になるが、アプリの露出を増やせる可能性が出てくる。Android Marketで埋もれてしまっても、他サイトからフューチャーされることがあるかもしれない。

開発者には、喜ばしい傾向ですね。


2010年3月30日追記
auでも、Android端末向けポータルサイト「au one Market」の開始が発表されました。
「明日に向かって昇龍拳: au Android端末「IS01」とAndroid端末向けポータル「au one Market」を発表」

2010年3月17日水曜日

AndroidアプリをHT-03Aで動作確認してみる

作ったAndroidアプリをHT-03Aで実際に動作確認してみるまでのログ。

環境:OS = Windows Vista SP2

1.「USBデバッグ」にチェックを入れる

HT-03Aの設定で「USBデバッグ」を可能にしておく。

「設定」>「アプリケーション」>「開発」>「USBデバッグ」をチェック。



2.USBでHT-03AとPCを接続

接続すると、HT-03Aに以下のように通知が行われる。



また、PC側でHT-03Aの認識が開始され、「Android Phoneのドライバソフトウェアをインストールする必要があります」というダイアログが開く。



ここでは、「ドライバソフトウェアを検索してインストールします」という推奨選択肢を選択した。

すると次に、「Android Phoneに付属のディスクを挿入してください」というダイアログが開く。付属CDなどはないため、「ディスクはありません。他の方法を試します」を選択。



3つほど選択肢が表示されるが、一番上にある「HTCのサイトにアクセスして最新のドライバをダウンロードする」という選択肢を選択(ここの画面のキャプチャはし忘れてしまったorz)。

選択肢を選択すると、自動的にHTCsync.zipのダウンロードが始まる。zipを展開するとHTCSync.exeがあるので、HTCSync.exeを実行。



特にオプションは変える必要はない。指示通りインストールを行い終了。

3.DDMSを起動し、実機へのアクセス確認

AndroidのSDKのtoolsにPATHが設定された状態で、コマンドプロンプトからddmsを呼び出す。

> ddms



DDMS(Dalvik Debug Monitor Service)はAndroidアプリのデバッグを行なうツール。デバッグの他に実機スクリーンのキャプチャなども行える。

作成済みのAndroidアプリをEclipseからRunしてみる。すると、USBでつながっている実機で、実行したアプリが走る。



一度実機で実行したアプリは、実機にインストールされている。メニューを開くとアプリの名前が発見できる。




2010.03.24追記
ただし、特定のAVDを使用するように選んでいる場合は、その設定が優先され、実機で実行されません。AVDの設定は「Automatic」にし、且つ、特定のAVDのチェックをオフにします。

2010年3月10日水曜日

「戻る」ボタンと「進む」ボタンはどっちが右?左?

ページやアプリを作っていて、ふと戸惑うことがある。
それは「戻る」ボタンと「進む」ボタンの配置についてだ。
どっちが右?左?一般的なのはどっち?と、ふと???になるのだ。

一般的には「戻る」が左側、「進む」が右側、と思い出すのだが、

では、
「キャンセル」と「OK」は?
「同意しない」と「同意する」は?

と疑問が広がる時がある。

そんなとき、参考にするサイトが株式会社ビービットさんの「ユーザビリティ実践メモ」

フォームにおける「進む」ボタンと「戻る」ボタン。どのように配置する? (ユーザビリティ実践メモ)によると、やはり「戻る」が左、「進む(次へ)」は右が一般的のようだ。

その流れで行くと、否定的な方を左側へ、肯定的な方を右側へ配置するのが自然な認識なのかもしれない。「キャンセル」は左で「OK」が右、「同意しない」が左で「同意する」が右になる。

しかし、配置によらず、「進む」ボタンを目立たせるなど工夫を加えると、ユーザーにとってよりわかりやすくなるとのこと。なるほど。

同意を求められる時、

   

と同じルックアンドフィールでボタンを配置せず、色や大きさなどを工夫すると分かりやすさが増す、ということですね。
メモメモ。

Twitterで位置情報付きでツイートすることを確認する

ジオタグを使う設定にしていたものの、自分の各ツイートにジオタグが付いているのか、実際に確認してみた。

<ジオタグは有効にしていたが、この機能、使えているのか?>

1.位置情報に対応したブラウザを使うとジオタグ付きでツイートできるのか?

TwitterのヘルプページでFirefoxが例に挙げられていたので、同じようにMozilla Firefox 3.6を使ってTwitterのアップデートボックスの下を見てみた。が、下の画像のように、クロスヘアーアイコンは表示されなかった。



日本ではまだ、表示されないのかもしれない。


2.iPhoneのTwitterクライアントを使うとジオタグ付きでツイートできるのか?

2.1 Tweetie

Tweetieを使っているので、Tweetieのアップデートボックスの右下にあるクロスヘアーアイコンをクリックし、「現在地を追加」ボタンをクリックしてみた。



以前も試してみたのだが、Google Mapsで表示できるように、位置情報がリンクとしてツイートに含まれるだけだった。

2.2 TweetDeck

iPhoneのTwitterクライアントとして、別に、TweetDeckを試してみた。

TweetDeckではアカウントセッティングに「GeoTagging」が用意されており、ジオタグに対応している。 しかも、位置情報の正確さも自分でコントロールできるようだ。



Twitterのヘルプページ「About the Tweet With Your Location Feature」には、exact location(正確な位置)か、place(場所)か、それとも両方か、位置情報は選べると書いてあった。TweetDeckではこのaccuracy(正確さ)をコントロールすることで、正確な位置かアバウトにこの辺か、送る位置情報を選べるようだ。

TweetDeckでツイートを表示してみると、ジオタグが含まれているツイートには、ピンアイコンがついている。ピンアイコンが付いているツイートをクリックすると、Google Maps上に位置情報が表示される。



つまり、

1.Twitterの設定で「Add location information to my tweets」にチェックを入れる
2.TweetDeckなどのジオタグに対応したTwitterクライアントを使う
3.そのTwitterクライアントでジオタグ利用を可能にしておく

これらをクリアすることで、ジオタグ付きでツイートできるようになるようだ。

そして、付加する位置情報の正確さは、Twitterクライアントの設定でコントロールする、ということですね。

2010年3月9日火曜日

Android Platformの追加でハマった原因はEclipseだった

Androidアプリの開発環境を構築していたら、Android Platformのインストールで嵌ってしまった。

EclipseのADTプラグインは、すんなり最新の0.9.6がインストールできたのだが、問題はAndroid platformやその他コンポーネントを追加するとき。追加しようとすると、なぜか下記の画像のように、

「This package depends on 'Missing SDK Platform Android, API 4'」

と表示され、追加しようと思っても「Install」ボタンがDisable、つまり無効状態で押せないのだorz。



各バージョンのSDKで試しても、常に同じエラーメッセージが表示され、末尾のAPIのバージョンナンバーが「~API 6」や「~API 7」に変わるのみ。

また、SDKのパス変更も上手く行かない。

1.5系のSDKをインストールしていたのだが、今回、改めて開発環境を構築しようと思い、SDKのパスを新しい場所へ変更しようとしたら下記のようなエラーがorz。



以前、GAEのSDKのバージョンアップが上手くいかなかったとき、Eclipseのせいではないかという予感があった。使用しているのはEclipse3.4.2(Ganymede)でpleiadesプラグインを入れて日本語化している。GAEのバージョンアップで嵌っていたとき、自分と同じエラーメッセージが出ている他のGanymede使用者が、自分とは違う画面やダイアログで対処しているようだったのが気になっていたのだ。

もしかして自分のEclipseに何か不具合があるのではと思い、Eclipseを新規にダウンロードして試してみた。使ったのは最新のEclipse 3.5(Galileo) SR2

そうしたら、あっさり「Install」ボタンが有効状態で表示された!
ヌォ~!Eclipseが腐っていたんだぁ(;>_<;)!