はじめに
業務でのAndroid開発歴がそろそろ1年になり、自分の中ではアイデアと時間さえあれば簡単なアプリは作れるのではないかと思えるようになってきましたが、今のところ実行に移せておりませんでした。
何故なのか考えてみたところ土日は趣味に費やしていたり、形にしたいアイデアが無いのはもちろんなのですが、"アプリをGooglePlayに公開する"という行為のハードルが自分の中で異様に高くなっているということに気が付きました。
そんなに難しくないよ、という話も聞くのですが百聞は一見にしかずということで、とりあえずやってみた時のメモ書きを残します。
要件
アプリの中身を考え出すときりがなく、計画倒れになってしまいそうなので、今回は"アプリをリリースする"ということにのみフォーカスをし、つまらない意地は捨てて中身は最低限の「Hello World」を表示するだけのものとします。
作業記録
GooglePlayDeveloper登録
Googleアカウントでログインするのですが、私物と混ざると面倒そうなのでメールアドレスなんかも新規で取ってしまったほうがいいような気がします。
登録には25$(今現在だと日本円で3000円ちょいですね)の支払いが必要、こちらは月額ではなく払いきりで要クレジットカード。
登録料の支払いまで終わるとアカウント詳細の入力画面が表示されます。
GooglePlayのページに表示されるデベロッパー名もここで入力します。
電話番号の入力に少し癖があり携帯電話を登録する際に080-XXXX-XXXXと入力すると弾かれてしまいます。
どうやら頭に国コードを入力し、080ならば頭の0を取って登録する必要があるようなので、下記のように入力します。```
+81-80-XXXX-XXXX

すべて入力完了し下記のような画面にリダイレクトされたら終了です。
これでapkをアップロードする場が整いました。

## apkファイルの作成
アップロードするためのapkファイルを作成。
### プロジェジェクトの作成
AndroidStudioを起動し、Blank Activityを選択するだけ。中身に関しては特にこれ以上は手を加えません。
### 署名済みapkファイルの生成
[Build]=>[Generate Signed APK...]

apk作成対象のモジュールを選択(と言いつつ、ここでは一つしかありませんが)して、[Next]

当然KeyStoreなんて持っていないので、[Create new...]して電子署名を作っていきます。
なお、アプリのアップデート時には署名を照合するので作った署名はGithubで公開したり失くしたりしないようにしましょう。

Key store pathの右側にある...をクリックして、保存する場所を選択し、ファイル名を入力してOKを押すとKey store pathが埋まるので、Password,Confirmを入力し、続けて下記の項目を埋めていきます。
|項目|内容|
|:--:|:--:|
|Alias|電子署名の名前、わかりやすければ何でも可|
|Password|Aliasに対応するパスワード|
|Confirm|Passwordの確認、同じものを入力|
|Validity(years)|電子署名の有効期限(年単位)25年以上が推奨|
|First and Last Name|開発者名|
|Organizational Unit|所属部署|
|Organization|開発会社などの組織名|
|City or Locality|開発元の所在地(都市または地域など)|
|State or Province|開発元の所在地(都道府県など)|
|Country Code|国コード、日本なら81|

すべて入力して[OK]を押すとGenerate signed APKに戻ってくるので更に[Next]
apkファイルを保存するディレクトリはデフォルトのままで、Build Typeもデフォルトのreleaseで[Finish]を押すと指定した場所にapkが生成されます。

app配下にapp-release.apkができていることが分かります。
これで晴れて公開用のデジタル署名付きapkファイルが生成されました。

## GooglePlayStoreへのアップロード
[デベロッパーコンソール](https://play.google.com/apps/publish/?hl=JA)で[GooglePlayにAndroidアプリを公開]をクリックするとダイアログが表示されるので必要情報を入力して、[APKをアップロード]

[製品版に最初のAPKをアップロード]からファイル選択で、先ほど生成された署名付きのapkを選んでアップロードします。

アップロードが終わると、バージョンの下に1(1.0)の表示がされます。
これだけではまだ公開が出来ないので、続いてストアの掲載情報を入力します。

### ストアの掲載情報
アプリを説明するための「簡単な説明」、「詳細な説明」を入力するのですがここは面倒なので適当に「Hello World!」と入力しておきます。
スクリーンショット、高解像度アイコン、宣伝用画像をアップロードします。
スクリーンショットはまだしも、後ろ2つは面倒なのでダミー画像を使いました、[Placehold.jp](http://placehold.jp/)マジ便利!!
高解像度アイコン用:http://placehold.jp/512x512.png?text=HelloWorld!
宣伝用画像用:http://placehold.jp/1024x500.png?text=HelloWorld!
※本来はガイドラインに従ってアプリのランチャーアイコンを高精細、高解像度にしたものを使用するべきなようです。
参考:[画像アセット、スクリーンショット、動画 - Google Play デベロッパー ヘルプ ](https://support.google.com/googleplay/android-developer/answer/1078870?hl=ja)
*ストアの掲載情報を公開するには、高解像度のアイコンが必須です。高解像度のアイコンはアプリのランチャー アイコンの代わりにはなりませんが、ランチャー アイコンと同じデザイン ガイドラインに準拠してアプリのランチャー アイコンを高精細、高解像度にしたものを使用してください。*
分類も、別になんでもいいのかもしれませんが今回は下記のように選択しました。
新しいコンテンツレーティングはそのままで、次の画面で選択します。
|項目|選択内容|
|:-:|:-:|
|アプリのタイプ|アプリ|
|カテゴリ|ツール|
|コンテンツ レーティング|全ユーザ対象|
|新しいコンテンツレーティング|一旦保留|
### コンテンツのレーティング
アンケートに答えていけば勝手に判定してくれるようです。
### 価格と販売/配布地域
アプリの価格設定はもちろん無料で。
有料だと販売アカウントのセットアップが必要なようです。(確か住所公開必須なんでしたっけ。。。?)
配布する地域はとりあえず無難に「日本」だけを選択。
広告表示の有無も「いいえ」を選択。
同意事項に同意してドラフトを保存。
ここまで行くと、アプリを公開できるようになります。

## アプリの公開
ボタンを押すだけで、公開待ちに変更されました。
平均2時間くらいすると公開されるとのこと。

暫し待つ。。。
2時間も待たずして公開されました!!
https://play.google.com/store/apps/details?id=com.masaibar.helloworld

# おわりに
GooglePlayにアプリを公開するのは敷居が高いと感じていましたが、色々調べつつこの記事をまとめながら3時間程度でアプリ公開ボタンを押すところまでいけたので、思っていたよりは難しくないという認識です。
しかし、ちゃんとしたアプリを公開するとなると高解像度アイコンや宣伝用画像の準備や、そもそもアプリ内で使う画像などの準備が地味に大変そうなので、しっかりとした下準備が必要そうだと感じました。
単独でアプリを作っているエンジニアの方は画像周りの調達をどのように行っているのかが気になります。