「第39回 HTML5とか勉強会+日本Androidの会 2013年5月定例会」の参加メモ #html5j #jag201305

第39回 HTML5とか勉強会+日本Androidの会 2013年5月定例会に参加してきました。
そのメモ。ほぼベタ書きです。

最近のHTML5はどうなっているのか

(白石さん)
日本Androidの会との初めての合同勉強会と言うことで、HTML5の基本的なところを話す。
“「第39回 HTML5とか勉強会+日本Androidの会 2013年5月定例会」の参加メモ #html5j #jag201305” の続きを読む

NOT専門家向け・Android一問一答

Android Advent Calendar 2012の2日目の「表」エントリです。

Android 4.2界隈で12月なんてなかったと言われる今日この頃、皆様いかがお過ごしでしょうか。

このエントリでは、Android界隈の諸氏と違った視点で「普通の人はAndroid周りでどんな疑問を持っているんだろう?」という仮定の下、想定される質問とそれに対する模範回答を脳内妄想してみます。妄想です。ぬるいです。

本日12/2の裏エントリは@gari_jpさんの「海外のサイトにレビュー依頼してみた。」です。そちらも合わせてお楽しみいただければと思います。
“NOT専門家向け・Android一問一答” の続きを読む

JCROMのビルド

@androidsolaさんが作成されたJCROMを仮想環境でビルドしてみました。

JCROMはある種の特化がされたカスタムROMです。5/5現在Galaxy Nexus(GN)及びGalaxyS用が公開されています。私が今回行ったのは、Galaxy Nexusの国内版、SC-04D向けのビルドとROM焼きです。

結論から先に書きますと、今までOSのビルドは尻込みしていた口でしたが、ビルドだけなら難しいものではないなということがわかりました。「テーマ」というハードルが低い遊び心(というか本命)もありますし、初めて試すカスタムROMとしては敷居が低いのではないかと思います。
“JCROMのビルド” の続きを読む

有料アプリの決済とか(主に利用者目線)

この記事は…

Android Advent Calendar 2011の16日目の「表」エントリです。

Android版Google日本語入力が昨日12/15に発表された今日この頃、皆様いかがお過ごしでしょうか。

先月にAdvent Calendarへ手を上げた時点では「前に触ったカメラ周りのことでも書こうかなーうへへー」と思っていたのですが、12/1の裏エントリがカメラネタで初日から俺\(^o^)/オワタになってしまったので、この回は急遽ネタを差し替えてお送りしております。

このエントリでは、Androidマーケットの有料アプリの決済について、主に利用者視点でつらつらと書いております。技術的なお話とか、広告でチャリンチャリンでウホッみたいなお話はまったくありませんので、開発者な諸氏におかれましては適当に流し読みいただけますと幸いです。

また、本日12/16の裏エントリは@9reさんが担当されています。そちらも合わせてお楽しみいただければと思います。

 

有料アプリと無料アプリ

Androidマーケットには、大きく分けて有料アプリと無料アプリの2種類が提供されています。

無料アプリは、アプリが要求している権限を承認すれば(←ここ大事)、ダウンロードしてそのまま利用することができます。有料アプリのほうはお金を払って購入する必要があり、基本的に購入時以外には費用が発生しません。

両者の中間的な位置づけの仕組みとして「アプリ内課金」という仕組みもあります。「フリーソフト(寄付歓迎)」とか「基本機能は無料だけど拡張機能はお金出してね」とか、だいたいそんな感じです。

有料アプリの決済手段として、国内ではGoogle及び携帯電話3キャリアから以下の支払い方法が提供されています。いずれも2011/12/16現在の情報です。

方法 概要
Googleウォレット
(旧Google Checkout)
Google謹製の決済方法です。今のところ、クレジットカードでの決済のみ対応しています。事前、もしくは購入時にGoogleウォレットにクレジットカード情報を登録します。
登録可能なクレジットカードブランドに制限があります。(詳細は後述)PayPalによる決済に対応するという噂もあります(この辺とか)が、今のところ未提供です。「近々そういうのが来るかもー」程度に捉えていただければと思います。
キャリア決済 NTTドコモ、au、ソフトバンクモバイルの各社によって提供される(というかGoogleの代わりに立て替えてくれる)決済方法です。利用金額の上限は低めに設定されています。



一昔前は「Google Checkoutでクレカで購入」の一択でしたが、Googleさんと国内3キャリアの尽力でクレジットカードなしでも購入できる環境が整っております。クレ ジットカードを持たない/持てない人(含む高校生以下の方)でもサクッと購入できるようになりました。

キャリア決済の難点というか前提としまして、 Android端末と3キャリアが紐付いている必要があります。具体的には、いずれかのキャリアとの回線契約が存在していて、かつそのSIMカードが刺さった端末での利用に限定されます。ですので、

  • Wi-Fiオンリーな端末である
  • SIMなしで使っている
  • PC版Androidマーケットから購入したい

といった場合にはキャリア決済を利用することができません。

余談として、いわゆる独自マーケットの決済はそれぞれのマーケット/その提供会社に依存します。大人な独自マーケットについては@youten_redoさんあたりが詳しいと思います。

 

国内3キャリアが提供するキャリア決済

国内で利用できるキャリア決済は以下の通りです。

方法 概要
NTTドコモ キャリア決済の名称は「コンテンツ決済サービス(SPモード)」です。

利用金額の上限は1万円です。昔あった独自マーケットの「ドコモマーケット」は、dマーケットの一部としてアプリ紹介のハブになってしまいました。

au キャリア決済の名称は「auかんたん決済」です。au oneマーケットの仕組みでキャリア決済するらしいです。au oneマーケット、お元気でしょうか。

利用金額の上限は、1万円〜5万円の範囲で設定することができます。

ソフトバンクモバイル 決済方法名が見つかりませんでした。ご存じの方がいましたら教えてください。

利用金額の上限は1万円です。但しソフトバンクモバイルで初めての契約を行ってから3ヶ月以内は、上限が3000円に制限されます。

かつてAndroidマーケットの1タブとして組み込まれていた「SoftBankピックアップ」のその後の消息をご存じの方がいらっしゃいましたらご連絡ください。いま確認可能な消息はこの辺です。



参考までに、ドコモのコンテンツ決済サービスの画面は以下の通りです。住所氏名一式を入力する必要があって、ちと面倒ですね。

この登録は初回のみで、2回目以降は購入時にSPモードのパスワード4桁を入力しれば決済を完了することができます。Googleウォレットのほうはノーチェックで通していますので、ちょい面倒です。

余談ですが、この画面の都道府県欄は読みがな順だか漢字順にソートされていて、なので愛知県がデフォルトで選択されています。一般に都道府県のソートは都道府県コードで行って、そのコードは概ね北から順に付与されています。例えば北海道が1、沖縄県が47、東京近郊でいくと千葉県が12、東京が13、神奈川県が14です。普段見慣れない順序で並んだ都道府県リストを見ると、おっおっ?となってしまいます。

Googleウォレットで使えるクレジットカードブランド

Googleウォレットでは、利用可能なクレジットカードブランド(VISAとかJCBとかそういうの)が限定されています。具体的に言いますと、下記(Googleウォレットのクレジットカード登録画面)のカード番号右横に表示されているのが利用可能なブランドです。

利用可能なブランドは以下の通りです。

ブランド名 概要
VISA アメリカ発祥のクレジットカードブランドです。VISA自身はカード発行を行っておらず、「決済機構」に過ぎません。世界における発行枚数が一位で、大抵の国・お店で使えます。
ちなみに、日本初のVISAのイシュア(カード発行事業者)は三井住友です。
MasterCard アメリカ発祥のクレジットカードブランドです。MasterCardもVISAと同様決済機構で、カードの発行は提携した他社が行っています。世界における発行枚数は二位で、使えるお店はVISAとどっこいどっこいです。
American Express
(AMEX/アメックス)
アメリカ発祥の(以下略)。世界における発行枚数は三位ですが、VISAやMasterCardに比べるとシェアが1桁違います(つまりシェアは1桁%台です)。
利用できるお店もVISA等に比べると少ないです。但し国内ではJCBと提携しているため、国内に限って言えば使えるお店もJCBに準じます=かなりの店舗で使えます(使えないお店もあります)。
DISCOVER ア(ry。あまり聞き覚えのないブランドです。
この表に上げたカードブランドのうち、このブランドだけはいわゆる「国際ブランド」でなく、主にアメリカでしか発行されていません。ただ、国際ブランドであるダイナース(Diners Club)を傘下に抱えていて、こちらは目にすることがあるかと思います。(2008年に買収されました)。

Discover/ダイナースもアメックスと同様に国内ではJCBと提携していますので、使えるお店はJCBに準じます。やはり使えないお店もありますが、昔よりは増えました。ここまで書いておいてなんですが、ダイナースがAndroidマーケットで使えるかどうかは確認していません。(持っていないので……)



一般に「クレジットカードの5大国際ブランド」と称されるカードブランドがあります。すなわち、「VISA」「MasterCard」「AMEX」「ダイナース」「JCB」の5ブランドです。

上記表からわかりますとおり、JCBだけハブハブされて残念なことになっています。かなり昔から「国内で使うならJCB、海外ならVISAが鉄板」と言われておりましたが、国内にいながらにして海外の厳しさを感じられることになるとは良い時代になったものです。

Androidマーケット云々と関係なく、カードを作れる大人(大学生含む)の方はVISAかMasterなカードを一枚作っておくと無難です。

(おまけ)端数が中途半端なアプリ

蛇足です。

有料アプリを眺めていると、パッと見「中途半端」な金額が設定されているものがあります。これらは基本的に、海外通貨の(例えばドル建ての)価格しか設定されておらず、為替レートによって日本円価格が決定されているアプリです。ごく稀に、あえて日本円で「123円」とか設定してしまうドアホウな遊び心に溢れた開発者の方がいらっしゃるかもしれません。

Androidアプリの価格は、開発者(=販売者)が自由に設定できます。この価格は、例えば日本円や米ドルなど特定の通貨単位だけに対して設定することもできますし、通貨単位毎に個別で設定することもできます。設定されていない通貨単位での価格は米ドルでの価格を基準に算出され、月に一回更新されます。(参考:複数の通貨によるアプリケーションの販売

個別設定された価格は為替レートの変動の影響を受けませんので、ある時点の為替レートを元に価格を設定したら円高になって涙目、ということもあります。

さて本題の中途半端な価格ですが、ここまでで述べましたとおりドル建ての価格を元に自動算出された価格ということになります。例えば下記のアプリは日本円では404円、米ドルでは4.99ドルです。ざっくり、1ドル81円換算ですね。



通常は国内から海外の価格でアプリを買うことはできませんが、普通の使い方でも「為替レートが安いときに買ってハッピー」ということはできます。円高に傾いたら、適当にアプリを探して購入するのもいいでしょう。

というか今買うのがハッピーですかね。アプリの値段とかちっこい話でなく日本経済的に、これ以上円高が進まないといいですね。

最後に…

ここまでお付き合いいただいき、どうもありがとうございます。こんなエントリですいません。
もし記事に誤りや不備がありましたら、このエントリのコメント欄か@rkisatoまでもしょもしょ呟いていただけるととても喜びます。

それでは、明日12/17の表エントリの@out_of_kayaさん、裏エントリの@Gemmbuさんへバトンタッチ!

2012/6/2追記

本日現在、GoogleウォレットはまだJCBに非対応のようです。

Galaxy Nexusの音量ボタン(の罠)

Galaxy Nexusでは、音量を下限にした状態からさらに下げると「バイブ」→「ミュート?サイレント?(音もバイブも鳴らない状態)」に切り替わります。
一週間このことがわからなくて、バイブなしで通知が来ているのを見ては「oh…」と嘆いていました。

音を鳴らしたくないときにとりあえず音量下ボタンを連打する方は嵌まりやすいと思いますので、メモっておきます。
“Galaxy Nexusの音量ボタン(の罠)” の続きを読む

ClipboardManagerの挙動変更?

Galaxy Nexusが12/2に発売されまして、早速「10Kすぷりったー」の挙動を確認してみました。

最初に動かしたときは正常に動いて「よしよし」と思ったのですが、環境を作り直して確認したところ起動時にNullPointerExceptionが発生するようになっていました。再現率100%です。

発生箇所を確認してみると、ClipboardManagerから文字列を取得してる処理で死んでいました。

ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
String clipboardValue = cm.getText().toString(); // ここで死ぬ

ClipboardManagerを確認したところ、上記で使用しているandroid.text.ClipboardManagerがdeprecatedになっていて、代わりにandroid.content.ClipboardManagerが追加されていました。

従来のClipboardManagerがテキストのみを扱っていたのに対し、新しいClipboardManagerはClipDataというクラスのインスタンスを返すように変更されています。

ここからは、Galaxy NexusとNexus Oneの挙動からの推測です。

以前はClipboardManager#getText()で必ず非nullの値(空値もしくはクリップボードの値)が返却されていました。少なくともNexus Oneではそういった挙動をしていて、再起動直後でも空値が返ってくるようになっていました。このため、これまでは「cm.getText().toString()」という横着したコードで済ませていました。

これがGalaxy Nexusでは「クリップボードに値が入っていない場合はnullを返す」ように変わったようです。(Android 4.0からなのか、3.0からなのかは未確認)
このため、クリップボードへ値が入っていないときに「cm.getText()」がnullとなり、そのnullに対して「toString()」を叩いたためNullPointerException、という流れになっています。

問題の箇所の修正ですが、とりあえず以下のように修正して凌ぎました。

ClipboardManager cm = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
String clipboardValue = (cm.getText() != null) ? cm.getText().toString() : “”;

正常に起動しなくなったGalaxy Tab 10.1の復旧

先日eBayでGalaxy Tab 10.1(後ろがドロイド君模様のやつ)を購入したのですが、速攻で環境を壊してしまいました。
その復旧にえらく手間取ったので、手順を残しておきます。

【情報源】

  • 復旧手順、ClockworkModで使うリカバリイメージ
  • http://droidbasement.com/db-blog/?p=2035
  • ubuntuのudevルール追加
  • http://d.hatena.ne.jp/embedded/20110521/p1
  • fastboot
  • http://forum.xda-developers.com/showthread.php?t=1075272 の「15th May 2011, 01:14 AM」のコメント

“正常に起動しなくなったGalaxy Tab 10.1の復旧” の続きを読む

10Kすぷりったー

(2011/06/14 1.1版)
Android用アプリ「10Kすぷりったー」を公開しました。
数字を万進法(万、億、兆…)表記に変換する電卓アプリです。マッシュルームにも対応しています。
アプリは、「https://market.android.com/details?id=net.kisato.tenthousplitter」からインストールできます。


“10Kすぷりったー” の続きを読む

日本Androidの会 町田支部勉強会 2011/02/13の資料

表題の通り、町田支部勉強会で使用したプレゼン資料です。

なお、原本のKeynoteファイルはこちらです。(MacのKeynoteユーザ用)
20110213_android_machida_rkisato.key

サイズの大きなStringに対する置換処理(Java)

サイズの大きなStringに対して、複数の置換を効率的に行うサンプルです。

オリジナルはそうとう昔に読んだなんかのソースコードですが、記憶が曖昧なのでたぶんそのコードより効率悪いことをしています。かつ、どこかにちゃんとしたものが転がっている気もします。
半分、自分用の備忘です。
“サイズの大きなStringに対する置換処理(Java)” の続きを読む