#iOSアプリ開発のテンプレ化
アプリは開発の流れとしては
- サービス仕様(画面デザインや基本ロジック)決定
- 実装するための詳細仕様(各Viewのパラメータやアプリ動作ロジック)決定
- 実装
- 機能試験で仕様に沿ってなければ実装修正
- 全体的な動作試験
- リリース
- 運用上の問題修正
サービス仕様決定
- サービスコンセプト、サービス収支、サービスターゲット決定
- サービスコンセプトに沿ったUIデザイン作成
- サービスコンセプトと制限事項に沿ったロジックを設計
- 必要な外部システムの手配
このうち開発に渡す情報としては、
- UIデザイン
- アプリロジック
- 外部システムとの連携仕様
- スケジュール
詳細仕様決定
- 各利用対象端末(iPhone,iPad)の画面サイズに合わせて再デザインし、デザインを各Viewに分解してViewのパラメータ調整する。
- 必要なデータモデルを書き出し、スキーマを調整する。
- 基本ロジックを分類し、ビジネスロジック(UIとは分離できるもの)とViewロジック(Viewの調整に関わるもの)に分ける。
- アプリの各状態における振る舞い(データ初期化・取得などのタイミング)について状態遷移表を作成する
- テスト用または画面PV計測用のロギング設計を行う
実装
- データモデルからDB作成
- 調整されたデザインに基づいて、Viewの初期パラメータとViewロジックを作成
- ビジネスロジックを作成
- 状態遷移表に従って、AppDelegateとViewControllerにViewロジックやビジネスロジック呼び出しを配置
- テストまたはPV計測のためのログ出力を追加
機能試験
- ビジネスロジックについては、様々なパターンの入力を与え評価するユニットテストを行う。
- UIテストは手動もしくはAppiumにて各試験データを与えたときの状態遷移に基づく画面表示内容を確認。
- ログを活用してアプリ内の状態変化を監視する。
- アプリはCIで自動ビルドして、バイナリをサイトまたはツールを作って配布し、テスターが簡単にインストールできる環境を作る。
全体的な動作試験
- UXとデグレしていないかを確認する。
リリース
- AppStoreに申請
- プロモコードで最終動作確認(商用BundleIDでないと試験できないものとか)
- リリース
運用上の問題修正
- 障害発生時は障害原因の修正
- パフォーマンス不足の場合は、速度向上策を図る
- OS等のバージョンアップ対応
- 修正についてはサービス仕様に盛り込んだほうがわかりやすい
みたいな感じでテンプレ化