@neiraza

2匹の怪獣が寝た後にプログラマーしてる、最近はサイバーエージェントでゼミ長もしてる僕のネタ帳

iOSとAndroidアプリのダウンロード数を晒してみた

3年くらい前に初めて作ったiOS & Androidアプリについて、
公開から現時点までのダウンロード数を
記録がわりに、晒してみることにした。

広告とか入れてないので、収入は無し。
iOSはゲームで、Androidは添付画像ベースのメーラー

f:id:redogu:20140220100151p:plain

iOSの方は、5割りほどが中国ユーザでした。
ありがとう、中国。

最近はプライベートで Androidアプリは作ってないし、
iOSはずーっとreject続きだけど、次は3,000ダウンロードを目標に。。。

ACTION REQUIRED: Google Play Merchant In-app Billing Sample Code Security Update

ACTION REQUIRED: Google Play Merchant In-app Billing Sample Code Security Update
ってメールがきた

diffしてみたけど、ほんと些細な違いだった。
その違いでやられちゃう人もいるんだろけど。

In-app billing v3を使ってて、Rev5よりも古いRevのSampleを丸パクなアプリ
特にIabHelper.javaSecurity.javaを丸パクはアウト

purchaseの内容をサーバ側でチェックする作りになっていない

この辺に心当たりのある方は、
In-app Billing Rev5が来ているのでチェックしよ。

Android Spinnerでkey-valueを使うには?

今日は僕の誕生日なので、誕生日ネタを書くことにした。

皆さんもよく唐突に、誕生日を公開しちゃおっかなーて時があるかもしれない。
そんな時に思うのが、

「せんせーい、たんじょうびって、XXXX年とか入るんですかー?」

って事だとおもう。

画面イメージでいうと、こんな感じ。

f:id:redogu:20130829100350p:plain
iPhone, Androidアプリ「Eyeland」よりAndroid版の画面を拝借
Copyright (c) Oceans Inc. All Rights Reserved.

AndroidだとSpinnerでつくれるやーと思ってたんだけど、
「すべて公開とか」表示している名称と、
名称に紐づけたい区分値の管理の管理の仕方が見つからない。

あれー、そいうの標準で用意してないのかなーと思いつつ、
誕生日だしせっかくなので、作ってみた。

  • FormActivity.java : Spinnerを表示したい画面さん
  • KeyValueAdapter.java : SpinnerにぶっこむAdapterを毎回プライベートに持つのもなんだし
  • SpinnerHelper.java : SpinnerにぶっこむAdapterをarrays.xmlから召還
  • SpinnerObject.java : getter, setterががが
  • arrays.xml : 「表示したい内容」と「表示したい名称と区分値の紐付け」

以下、ソースですけど、
こんなの、もっと簡単に標準で用意してないんすかね
教えてエロい人。

複数のEditTextがジムやボールのようにTextWatcherした

追記:20130731
TextWatcher#onTextChanged(CharSequence s, int start, int before, int count)
このcountて文字数が返ってくるけど、数値を入力すると0 or 1しか返ってこなかった。
s.lenght()の方が良いかなと思い修正。

豆腐になったビグザム

最近、豆腐になってたビグザムさん。

子供の頃から今でも一番好きなMA。
f:id:redogu:20081202065013j:plain

なんで、これが好きかというと、
他者の追随を許さない圧倒的なバランスの悪さが、とても心に響く。

そして、この人、ドズル中将。
cvさんはお亡くなりなってしまっており、もうあの名言が聴けないかと思うと残念。
f:id:redogu:20100119090357j:plain

本題

EditTextが並ぶような入力画面をせっせと作ってて、
あれ?と思ったこと。

EditTextの入力値チェックをやりたいんだけど、
複数のEditTextを同時に対象とすると、良い解決方法がなかた。
もしかしたら、何か標準的なやり方が用意されているのでは?と調べても、考えても思いつかない。

なので、TextWatcherを実装して、こんなの作って解決してみた。
ねー、他に何かないのかな?

汎用的なAlertDialogを用意ついでにDialogFragmentデビュー

AlertDialogを汎用的につくろうと思って、下記を参考にDialogFragmentデビューしてみた。

http://d.hatena.ne.jp/sakura_bird1/20130207/1360193574:DialogFragmentでシンプルで汎用的なダイアログ

イメージ的にはこんな感じだけど、
これだとFragmentが再生成されたときとかに落ちてしまうはず。
ま、それは別の話しなので、そのうち。

https://gist.github.com/neiraza/6076893:neiraza / CommonDialogFragment

Androidのwebview背景を透過でクンカクンカ

日々、AndroidやiOSをいったりきたりしつつ、
ちょいちょい、JSも差し込みで対応しながら、アプリつくってます。

今日は忘れがちな、webview背景を透過について。
やりたいことはActivityの画面遷移後でも、1つ前の画面を見えるようにしておきたい。

ラノベ最終巻12が出たばっかですし、
せっかくなので、黒猫のクンカクンカを貼っておきますね。
BD1巻出るまでイ㌔


黒猫族のくんか - YouTube

  • Activityの背景を透過しよう
<activity
    android:name=".hoge.FugaActivity"
    android:theme="@android:style/Theme.Translucent"/>
  • webviewの背景を透過しよう
webView.setBackgroundColor(0);


これで万事解決!

ユー、Map Keyを取得しちゃいなよ

Android Maps API v1のAPI Keyを久々に新規に取得したのでめもめも。

仕事でAPI v1を使っていて、
(v2になればKey取得とかなかったような気もするけど)
サービスがまだv1なので開発機をかえる毎に取得しなおし。

そんなわけで、すぐに手順を忘れるのでメモる。

debug.key取得

HOME/.android/debug.key
これが無い場合は適当なIDEやantでアプリをbuildすると勝手につくられているはず。
keytoolで作成することも可能だけど、どうせIDEで開発するなら、
そいつに作成しておいたほうが無難なきがす。

md5を使うのでメモっておく

keytool -list -v -keystore ~/.android/debug.keystore

ちなみに・・・
keyのパスワードはandroidなので、自前で生成する場合は同じにしといた方がいいんでないかな。
下記、公式より抜粋。

debugしちゃいなよ(Android公式リファレンス)

Keystore name: "debug.keystore"
Keystore password: "android"
Key alias: "androiddebugkey"
Key password: "android"
CN: "CN=Android Debug,O=Android,C=US"

API Key取得

debug.keystoreが作成できたら、下記ページでterm踏みつつ、キーを生成する。
僕がハマったのは、なんかsha1sha1 と思って何度もsha1で入力して、よく見たらmd5だったとこくらい。

地味に生成サイトが見つからないって人もいるかも。
GoogleのAPI Key 生成サイト


keyが生成できたら、そいつを使ってアプリをビルドすれば終わり。

Androidアプリテスト技法

Androidアプリテスト技法