【Android】個人アプリ開発のススメ

勉強の一環として個人アプリ開発がおすすめという話です（LT用資料も兼ねてます）

---
## みなさんどうやって勉強していますか？
- 技術書を読む
- 技術記事を読む
- リファレンスを読む
- サンプルコードを写経
- OSSを読む
- OSSにコントリビュート
- **個人アプリ開発** :computer: 
- etc...

---
## 個人アプリ開発のメリット
- Android、Kotlinの**勉強になる** :muscle: 
- 業務でまだ使っていない**最新技術やOSSを試せる** :muscle: 
- インストール数が増えると**モチベがあがる** :muscle: 
- レビューなどでフィードバックがもらえる
- 小銭を稼ぐこともできる :moneybag: 

---
## アプリリリースまでの大まかな流れ
1. 準備
    1. テーマ決め
    1. 機能洗い出し
    1. 技術調査
    1. UI設計
1. 実装
    1. プロトタイプ作り
    1. 通信部分など実装
1. リリース
    1. アイコン作り
    1. ストア画像作り
    1. アプリ署名

---
## 準備

---
### テーマ決め（アプリアイデア探し）
- 普段からPlay Storeのランキングを見る
- 周りの人に困ってることを聞く
- Webにはあるけどアプリにないものを探す
- iOSにはあるけどAndroidにないものを探す
- 自分が課題に感じてること

---
### 機能洗い出し
- まずは機能を列挙する
- **必須機能とそうでない機能に分ける**
- デザインやアニメーションも機能として考える
- 洗い出せたら優先順位をつける

---
### 技術調査
- 必須機能の実装方法を調べて工数概算する
- 実装工数によっては機能の優先順位を変える

---
### UI設計
- 作ろうとしているものと似たアプリを使い倒す
- 紙に書いてみる（**ペーパープロトタイピング**）
- （可能であれば）他の人にレビューしてもらう

---
- ペーパープロトタイピングの印刷用テンプレート
    - http://www.hugkey.com/wp-content/uploads/2014/02/iPhone_paper_prototype1.pdf
- ペーパープロトタイピングアプリ
    - [POP](https://marvelapp.com/pop/)や[Prott](https://prottapp.com/ja/)が有名

![](https://qiita-image-store.s3.amazonaws.com/0/123122/df2bf33e-73ed-e261-52e0-c8e65bf51b53.png)


---
## 実装

- 画面作り
    - まずは画面を作って**モチベを上げる**
    - 使ったことのない新機能の場合はリファレンスを見つつ**サンプルコードをコピペしていじってみる**
- 通信部分など実装
    - 最初はスタブを使ってとりあえず**動くものを作ってから置き換える**

---
## リリース

---
### 開発者登録
- もしアプリをリリースしたことがなければPlay Storeへの開発者登録が必要です。
- 25ドルかかります。（初回のみ）
- （参考） [Play Console の使用方法 - Play Console ヘルプ]
(https://support.google.com/googleplay/android-developer/answer/6112435?hl=ja)

---
### アイコン作り
- ちゃんと作るならフォトショなどの画像編集ツールで高解像度のアイコンを作ってそれを画面解像度毎にリサイズするといいです。
    - 一括リサイズは https://araishi.com/icon-resize/ を利用させていただいています。
- お手軽に済ませたいならAndroid Studioの`File -> New -> Image Asset`で作成できます。

![](https://qiita-image-store.s3.amazonaws.com/0/123122/1b4733e8-43d0-8e35-ed7f-b1a1a7118884.png)


---
### ストア画像作り
- 画像編集ソフトで頑張って作る（個人的にはGoogle Slidesがおすすめ）
- 端末はめ込み画像は[Device Art Generator](https://developer.android.com/distribute/marketing-tools/device-art-generator.html?hl=ja)で簡単に作れます。

![](https://qiita-image-store.s3.amazonaws.com/0/123122/c65f201c-ea8e-9d7f-81f8-8e7916c2cb2c.png)


---
### アプリに署名する
- `Build -> Generate Signed APK`からKey Storeを作って署名します。
- （参考） [アプリの署名 | Android Studio]
(https://developer.android.com/studio/publish/app-signing.html?hl=ja)
- （参考） [Google Play App Signingのススメ - Qiita](http://qiita.com/rkowase/items/90cdc4e8c6fc449d8276)

![](https://qiita-image-store.s3.amazonaws.com/0/123122/cf2c9e7d-39ac-f35e-1f60-c05444bafc24.png)

---
## リリース後

---
### グロース
- メジャーなものは競合が強いのでインストールされない
- ニッチすぎてもインストールされない
- クオリティが低いとアンインストールされやすい
- 色々アプリを作ってみて**伸びそうなアプリに注力**する

---
日本市場がメインならiOSの方がいいかも（2017年時点でiOSユーザーが7割くらいらしい）

|世界|日本|
|:-:|:-:|
|![](https://qiita-image-store.s3.amazonaws.com/0/123122/6de84669-b859-5685-6b99-a1a2cd714fcb.png)|![](https://qiita-image-store.s3.amazonaws.com/0/123122/d41e8a5f-559c-eb2c-07d2-76228f28d5cf.png)|

（引用）https://xera.jp/entry/iphone-android-share

---
### 少し困ったこと
- 個人アプリ開発以外の**趣味の時間が減る**
- 楽しくて**睡眠時間が減る**ときがある
- 気がついたら土日が過ぎて**月曜になってて少し憂鬱な気分になる**
- （会社を休んでまで個人アプリ開発したくなる）

---
## 個人的に今後やりたいこと
- iOS
- React Native, Xamarin
- AR, VR
- TensorFlow Lite

---
## まとめ
- 個人アプリ開発は**良い勉強になる**
- **業務に活きる**ことが多い
- 多少は**小銭が稼げる**

---
## 補足
自分はこんなやり方でやってるよ！とかこんなツールあるよ！などあれば教えていただけると嬉しいです。
最初はUI設計などのリリースするために**最低限必要もの以外は飛ばしてとりあえずリリース**してみるでもいいかと思います。（モチベがあるうちにやりきるのも大事）

---
## 参考
Device Art Generator | Android Developers
https://developer.android.com/distribute/marketing-tools/device-art-generator.html?hl=ja

【Android】Google Play App Signingのススメ - Qiita
http://qiita.com/rkowase/items/90cdc4e8c6fc449d8276