こんにちは。きんくまです。
以前に次のアプリ作りますとかって、ブログにちらっと書きました
>> [iOS] Zippy電卓アップデート予告とか中間報告とか次回作とか
それから2ヶ月。何もしていなかったかと思いきや、珍しく少しずつ進めております。
・アプリ名を決めた
・アプリアイコン作った(けど、もう一回作り直すかも)
・機能の仕様を固めた
・画面のワイヤー、遷移方法などを固めた
・UI上作れるか部分的なモックを作ってテスト
・アプリ内課金やったことなかったのでテスト
・データベース(SQLite)まわりのモデルのプログラム作成
・DBまわりのユニットテストも同時に通した
「軽めのアプリにしてサクッと出そう!」としてたんですが、「せっかくやるならこの機能入れたいなー」とかやってたら思ったより時間がかかっちゃいましたw
モデルまわり
一番肝心かなめのモデルまわりのプログラムがしっかり作れたので、あとはなんとかなるかなと。(なるといいな)
ずっと前に読んだアルゴリズムとデータ構造の本に書いてあったんだけど、
・アルゴリズムをいくら改良しても、悪いデータ構造だとうまくいかない
・逆に良いデータ構造ならば、多少アルゴリズムが悪くても問題ない
みたいなことが書いてあって、それ以来何かプログラムを書くときは、コアになるデータ構造だけはしっかり作るように心がけています。
画面の見た目や操作方法はあとから変えやすいけど、データ部分は後からだとどうしても変更が難しいですしね。
それでこれから、ユーザーが直接さわる画面操作部分(UI)のプログラムを書いていくところです。
プログラムの進め方
他の人がどうやってアプリを作っているのかわからないのだけれど、自分の場合はこんな感じに進めてます。
1. とにかく動作するアプリを常においておく(各画面は空でもOK)
2. 各機能ごとに別プロジェクトを作る。(gitでbranch切るとかじゃなくて完全に別プロジェクト)
実験したり、実際に機能を作り込む
3. 別プロジェクトでうまくいったら、それを本体に移植
4. 2と3を繰り返して本体に機能が追加されていく
1回やったことのあるUIだったり機能の場合は、2と3はとばして直接本体のコードに書いていきます。
この進め方のメリットとしては、
・本体はきれいなソースを保ちやすい(実験したりしたときの後が残らない)
・別の案件で、ある機能が必要になったときに機能別プロジェクトとして保存してあるので移植しやすい
私の場合、記憶力が悪いのですぐ忘れてしまうんですよね、、。で、このやり方ってどうやるんだっけ?といって単体機能のプロジェクトを見てやり方を思い出す感じです。
というわけで、新しいアプリがもう少し進んだらどんなアプリかお知らせできそうです。
よろしくお願いします m(_ _)m