2016年12月31日土曜日

核心は語らない、常々。

いやあ、今年も厳しかったすねえ。

Android のアプリ、ぜんぜんダウンロードされんですわ。 あまりにも新規のアプリが増えすぎたため、プロモーションに秀でた人物や組織しか生き残れない状況が加速しています。

「面白くないからダウンロード増えないんでしょ」という、意見はあると思います。 質が悪いから流行らないんだと。 確かに…このすごく真っ当な理論が通じた時期も…ありました。 しかし、今では自信をもってこう反論できます。

クオリティーが影響するのは万を超えてからだ!
それ未満ではあまり関係ない

成功者が語らないこと

例えば古い話になりますが、「100万のタマゴ」というアプリがあります。
アプリマーケティング研究所
上記サイト様のインタビューによると、800万ダウンロードらしいです。すごい数字です。 これだけ大ヒットしたのは海外でバズったのが成功要因みたいですが、

2012年の8月末にAndroid版を日本だけでリリースしたのですが、9月末時点で3万ダウンロード

上記のような推移らしいです。この国内で3万ダウンロードのあと、スペインを皮切りに全世界に飛び火していったのだと。 ハッキリ申して、スペイン大流行以降に関しては良くも悪くもこのアプリの実力によるものでしょう。 しかし、私のような個人開発者目線では、国内でサクッと3万ダウンロードを達成していることの方が驚きです。 これ、絶対になんかやっています。 初動の1ヵ月で3万っていうのは、そんなに簡単なものではありません。 成功者が語らないことの中に、重要な秘密が隠されているわけ。 この法則は古今東西のあらゆるサクセスに共通する、とても大事なものです。

この3万DLとかのレベルまで達すれば、海外の人々の目にも触れやすいのでチャンスが生まれてきます。 逆に言えば、少ないDLだと国内外を問わず、人の目に入りません。 ランキングは圏外、検索でも下の方になりがちだからです。 つまり、大ヒットするためには最低限まで上げないとダメっぽいのです。 それ以下だと「スタートライン」にすら立てていない状況。だから、
クオリティーが影響するのは万を超えてからだ!
って書いた次第です。

2,3年前でこうですからね。今はもっと苛酷になっているかもしれません。 スタートラインに立つのが。 だけど、どうなんでしょうね? 大手も中小も広告費を使って使ってというビジネススタイルが形成されると、結局儲かるのは広告会社ばかりとなります。 業界として負のサイクルに突入して、引き返せないところに向かっているのかも…。 そういった意味でも、2017年はポット出の情弱な個人開発者が運とセンスだけでヒットアプリを作る話…。たくさん出てきたら、いいと思います。

2016年12月20日火曜日

Android Studio への移植手術 クローン技術

以前、「キーストアとフィンガープリント」と題した記事で、 プレイストアにアップロードしているアプリを更新する場合の二つの条件
・パッケージネームが同一でなければならない
・デジタル署名が同一でなければならない
と、いうことを書きました。

APKファイルを作るときに、キーを作ります。 厳密にはキーストア(金庫)と、その中に入れるエイリアス(証明書)なのですが…。 ここでは簡略化して「4桁のランダムな数字」であると考えましょう。 で、"urenaigames.com.test01"というパッケージネームのアプリを作ったとします。 このときに"5514"という暗号を入手しました。 初回版をプレイストアにアップロードした時点で、パッケージネームは"urenaigames.com.test01"、 キーは"5514"という形で認識されています。 なので、更新版は同様のパッケージネーム、同様のキー(ってかエイリアスね)が必要となります。

キーは製作者のパソコンに保管され、もちろん公開はされません。 普通に考えれば、「製作者もしくは製作関係者」ではない人物はキーを入手できません。 "5514"という機密情報はデベロッパーだけの秘密です。

今回、トライしたいのは
・旧PC上のEclipseで作られたプロジェクトを…
・新PC上のAndroid Studio へ
上段から下段に移植できるかな? ということです。 外部ライブラリを使用していない「作りかけのプロジェクト」であれば、簡単にEclipse から Android Studio へ 移植できました。 しかし、問題のやつは既に公開していますし、ゲームサービスなどの外部ライブラリを適用しています。 この外部ライブラリが邪魔をして、移植が成功しませんでした。 おそらくライブラリのバージョンが古いままだから認識の際に問題が生じるのだと思います。 公開版を Android 5.x 以上でプレイしようとすると即落ちします。重症です。 …古いパソコン上で、ライブラリ周りを削除してから移植すればいいのでは? とも思いますが、 古いパソコンはもう半年くらい電源を入れていないので、いまさらwwwww みたいな感じがして腰が重いのです。 何かいい方法はないのだろうか?

移植が失敗したので、 「完璧なクローン作製による同一性確保」の術式でアプローチしたいと思います。 やり方としては Android Studio で新プロジェクトを作成。 パッケージネームは「旧PC上のEclipseで作られたプロジェクト」と同じものにする。 まずは Hello World のスッピン状態なので、先に必要なライブラリを導入。 中枢をコピペで復元、これはファイル単位で行う。 プログラムの基礎部分ができたら、いったんテストプレイで動作を確認。 APKファイルの作成、プレイストアへ更新版のアップロード。 という流れになります。

APKファイルを作る際に、もちろんキーストア関連を入力しないといけません。 キーストアを選択すると、その中に格納されているエイリアスが取り出せます。 このエイリアスは、複数のアプリで同一のものを使いまわすべき、らしいですね、Google が推奨するやり方では。 ちなみに私の場合は、キーストアは2つくらいしか作っていなかったので、ともかくとして、 エイリアスがいっぱいあって意味不明だったので「このアプリの署名はどれなの?」と、けっこう嫌な汗をかいた次第です。 1年以上前のことなんて、ろくに覚えていないので、アプリ毎にキーストアとエイリアスに関するメモを残した方がよいでしょう。 まあ、とにかくこれで
・パッケージネームが同一でなければならない
・デジタル署名(エイリアス)が同一でなければならない
この二つをクリアできます。商標と社印みたいなノリですね。 例えばパズドラを「超駄作にアップロードしてやるぜ」という悪い企みを実行しようとしたら、 デベロッパーコンソールのパスワード、パズドラのキーストア、キーストアとエイリアスのパスワード、これだけ必要になります。 しかし内部に精通した、例えば辞めた社員ぐらいなら、逆恨みでヤレそうな気もします。 大きな会社だとどういう管理体制なのか知りませんが、キーストアはUSBなどの記録メディアに保管して本当の金庫に入れたりするんですかね?

そして、ゲームサービスにはフィンガープリント(SHA1)を登録していますが、 この SHA1 こそが、エイリアスが固有に持つユニークな文字列というわけです、 つまり、「オリジナルと同一のエイリアス」を使ってデジタル署名したアプリは、 ゲームサービスにおいても「オリジナルと同一」であると判断してくれるのです。 ハッキリ言って同一かどうかの判別はパッケージネームとデジタル署名のみです。 男の子向けのゲームが女の子向けゲームに豹変していたとしても、そんなことは気にもしないのです。 すげーお役所仕事です。