5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Androidアプリをリリースしてみた

Last updated at Posted at 2019-05-01

Androidアプリをリリースしてみたので、その経緯をまとめたいと思います。

リリースサービス

タスクTODOスケジューラー

アプリの詳細

リマインド機能の付いたシンプルなTodoリストです。

タスクを登録すると一覧に表示され、設定した時間に通知が来るという機能です。
タスクは登録、編集、削除ができます。
さらに、タスク名と、期限は入力必須にして、登録件数は5件までにしたので、その辺のバリデーションチェックを入れました。

aaa.png
aaa.png
aaa.png
aaa.png

開発経緯

今まで、ローカルでアプリを作ったりは少ししていましたが、リリースはしたことがありませんでした。
なので、リリースしてみたら面白いかもと思いながら、作ってみることにしました。
あと、リリース作業って難しいのかなぁというのが知りたかったのもあります。

使用環境

  • kotlin 1.2
    JDK 1.8
    Javaを使って今まで開発していたので、この機会にkotlin使ってみようと思い、選びました。
    あと、コードどれくらい省略できるかなぁというのも気になりました。

  • AndroidStudio
    IntelliJとも迷いましたが、慣れているので、AndroidStudioにしました。

  • Realm
    データ関連にはRealmを使いました。SQLゴリゴリ書いて使うようなアプリではないのと、見てわかりやすいので選びました。

開発過程

大体2~3週間で作りました。

①画面イメージ作り(2日)
画面を紙に書いてどういう風に遷移するとかのイメージを頭の中ではなく、見える化しました。
また、どういう機能を入れるかを決めました。
考えるといろいろ追加したくなりますが、段階的にリリースすることを想定して、どうしても入れたい機能だけに絞りました。

②技術調査(2日)
kotlinをそこまでやってなかったので、kotlinの調査と入れる機能の調査を行いました。

③実装(6日) + バグ修正(3日)
普通にコーディングしていました。
最初に画面を作ったり、アプリの設定を行ってから、バックグラウンドの実装をしました。
分からないときに調べると意外にkotlinの記事が少なかったです。
ただ、Javaの記事は結構あるので、そこからkotlinに置き換えることが多かったので、Javaやっててよかったと思うことは多かったです。(JavaのUtilも使えるので、わかりやすいというのはありました)

コーディングで詰まったところは下記に投稿しています。
特に、バグ修正が大変でした。
内部テストで見つかったバグで、デバックしながら再現するのに苦労してしまいました。。。

FragmentのonAttach()はAPIレベルによって使い分けよう
Textboxの入力制限について
Andoridで背景を押して、キーボードを非表示にする方法
アラームを複数設定できるようにしよう
再起動をadbコマンドで実行する

④テスト(3日)
一応UIテストも兼ねて、Espressoを使い、テストしました。
(JUnitは今後拡充していきます)
あとは、PCを実機につないで、動作確認を行いました。

⑤リリース作業(2日)
思ってたより大変でした。。。。

apkファイル作るまでは楽でしたが、アプリの設定で時間がかかりました。
アイコンの設定やら、説明文、対象年齢やら、画面キャプチャなどなど、手間がかかるなあと思いながら進めました。
広告付けたり、有料にしたらもっと大変だろうなぁと思いました。
あと、本気で売る人は、ここで手を抜かないんだろうなあとも感じました。
また、アプリを更新するときにバージョンコード上げるのはリリースしないと気づかないと思いました。

⑥リリース前テスト(2日)
内部テスト、アルファー版テスト進めていき、動作確認を行いました。
驚きだったのがリリース前レポートでした。
テスト端末が自動的にアプリを起動して、アプリを数分間クロールしてくれます。
下記に詳細が載ってます。

Firebase Test Lab for Android

1 回のオペレーションで、さまざまなデバイス、さまざまなデバイス構成で Android アプリや iOS アプリをテストし、Firebase コンソールで結果(ログ、動画、スクリーンショットなど)を確認できます。

自動で何種類かの端末を使ってテストをしてくれて、バグがないか、パフォーマンスに問題ないか、画面のアクセシビリティに問題ないかなど計測してくれます。
画面のアクセシビリティはリリースしないと意識しないことだったので、とても有益でした。

感想

リリース作業が意外と大変でしたが、スマホアプリ制作についてローカルで開発していた時より知れたので良かったです。
kotlinを使ってみて、findViewById書かなくていいのと(kotlin-android-extension)、無名関数とかNull許容型とかあって見やすくて、コンパイル時にエラーに気づけるのは使いやすかったです。
ただ、Javaをずっと使ってきて、型がないのが少し違和感でしたが、Javascriptもやってたので、すぐに慣れました。
今後は、機能追加や自動化、単体テストの拡充などを行っていきたいと思います。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?