Kuwapp's Blog

Android と Flutter やってます

【1人でAndroidアプリ開発】財布の残高管理アプリを作ってリリースしてみた

ここ2ヶ月ほど地道にAndroidアプリを開発していました。
アプリ名は「Walleter」でシンプルなお小遣い帳アプリです。

Walleter - シンプルなお小遣い帳アプリ

今回の開発を通して思ったことや、やったことなどをまとめたいと思います。

・Walleterについて

https://play.google.com/store/apps/details?id=com.kuwapp.walleter

まずはアプリの説明
Walleterは財布の残高の確認に特化したお小遣い帳アプリです。
起動直後に財布の残高を表示し、
今いくら持ってたっけ?みたいなときに使われることを想定しています。

というのも最近気がつくと財布の中身がスッカラカンになってたりして
今の残高といくら使ったかだけ把握しておきたいなと思って作りました。
そのため何にいくら使ったとか、カテゴリ分けにグラフ表示したりはできません。
完全に入ったお金と出ていくお金だけを入力するだけです。

機能としては残高の確認、収支の確認(期間で分けることも可)ができます。
いくら持ってるかと、いついくら使ったかを確認だけできれば良い人におすすめします。

Walleter - シンプルなお小遣い帳アプリ

・ 開発いろいろ

■期間
2ヶ月で毎日1、2時間ぐらい開発していました。
こんなに機能少ないのにけっこう時間かかったなーと。
原因は公開する目的を見失ってひたすらコードを修正していたからです。
途中で公開してから修正もできるし、内部のことは後回しにしようと途中で気付きました。
とりあえず公開!これを目指すべきでした。
時間かけるとモチベも下がってきますしね。。

■デザインとか
自分はプログラムは好きですがデザインや絵書いたりが苦手なので
UIとアイコン作成に非常に時間がかかりました。
アイコンがドロイド君から変わるだけでけっこうモチベが変わるので早めに作った方が良いかも

■BitbukcetとSourceTreeでバージョン管理
個人でもプライベートリポジトリが作成できるBitbucket超おすすめです!
バージョン管理出来るとちょっといじってみて駄目ならすぐに戻したりとかできてかなり作業が捗りました。

■公開前が辛い
公開前はストアの説明文考えたり、宣伝用画像作ったりとかなり面倒です。
宣伝用画像って以前は必要なかった気がするのだけど。。いつからだろ
空いた時間で説明文は考えておくと良かったです。

■いつリリースするか決めておこう
きっちりと公開日を決めておかないとダラダラと伸びてしまいます…。
11月後半にはほぼ完成していたのですが
やっぱりここ変かなとか調整してかなり伸びてしまいました。
まずは公開して修正というのが良いかもしれません。

・積極的にライブラリを使おう

巷にはたくさんの無料で使えるライブラリが存在します。
Walleterでは以下の6つを使用しました。
keyboardsurfer/Crouton · GitHub
JohnPersano/SuperToasts · GitHub
vinc3m1/android-segmentedradiobutton · GitHub
Androguide/HoloGraphLibrary · GitHub
kolavar/android-support-v4-preferencefragment · GitHub
BoD/android-switch-backport · GitHub

たとえばグラフは上記のHoloGraphLibraryを使用しています。
グラフなんて1から書くとかなり面倒ですが既存のライブラリを使用すると大幅に時間を削減できます。
実装の前に使えるライブラリがないか調べてみることも良いかもしれません。

以下のアプリは多くのライブラリがまとめられていて
実際にアプリ内で動作を見ることができるのでライブラリを探すのにかなり使えます。
Libraries for developers - Google Play の Android アプリ

ローカライズ

どうせなら英語にも対応してみたいなと思い人力翻訳サービスのGengoを利用してみました。

クラウドソーシングの人力翻訳「Gengo」

プランがスタンダード、プロ、ウルトラの3つ合ってクオリティが違うようです。
料金は1文字だと順に4円、7円、10円でした。

今回はアプリ内の文言とストアの説明文の翻訳をプロで依頼して約4000円程度かかりました。
翻訳も依頼してから3時間後に完了とけっこう早いです。
また、翻訳した人とメッセージのやり取りもできアドバイスをもらえました。
アプリ内でデータの初期化に「Initialize」という文言を使用していましたが
例えば次のようにアドバイスをもらうことができ大変助かりました。
「Initializeをdeleteに変えました。英語ではInitializeはハードディスクなどの媒体を消すときに使いますのでちょっと違和感ありました」

翻訳した方によっても変わるとは思うのですが、Gengoはおすすめします。

・広告

広告・・・貼りませんでした。
開発当初はバナー広告貼って課金で広告を外せるようにしようと思っていましたが
終盤になって広告を貼るスペースがないことに気付きました。。
バナー貼るなら始めから広告を含めたレイアウトを行うことをおすすめします。

・今後

次のアプリを考え中です。
AndroidiOSにするかはまだ分かりませんが、今回より完成度は高めたいなーと。
次はサーバーを使用するアプリを作成したいと考えています。
サーバーあれば作れる幅が広がるしね。
今回の開発の反省点を次に生かしていきたいと思います。