#円滑にiOS/Android同時開発するための心得まとめ
##■設計
###◇UIパーツやフレームワークはそれぞれの素材・特長を活かす
当然ながら共通設計
- define値やクラス名などを統一する
- 永続化する項目を統一する
- UIデザイン
- マージンやセンタリングなどのルール統一
- 端末/画面サイズに応じて、固定/可変する箇所の認識を合わせる
無理やりiOSのパーツをAndroidに適用しない
- ダイアログやドラムロール(ピッカー)などのUIパーツ
- iOSのタブ機能はAndroidでは画面上部かサイドメニューを検討
- 戻る機能はAndroidではBackキーを活用
それぞれの特長を活かす
- iOSではSQLiteを直接使用せずCoreDataを使用するなど
##■実装
###◇開発者間の情報共有を密にする!
LOGの記述体裁を合わせる
- ファイル名、メソッド名、行数、コメントなど体裁を合わせる
- (ついでに…LOGはデバッグでのみ表示させる)
TODOの記載の仕方を合わせる
- 不確定部分や拡張予定の項目は、ミーティングなどで共有したらコメントで残す
実装中に気がついた例外ケースを共有
- もう一方でも同じケースが考えられるため
設計を見直す必要がある場合には共有
- もう一方でも同じケースが考えられるため自分勝手に直さない!
##■デザイン
###◇画像作成
(特に指定がない場合) x1を念頭に、x2、x3の画像を用意する
- どちらでも必ず使用するため
(参考)
iOS | Android | 解像度 |
---|---|---|
非Retina | mdpi | 1px/1pt |
hdpi | 1.5px/1pt | |
Retina(@2x) | xhdpi | 2px/1pt |
Retina(@3x) | xxhdpi | 3px/1pt |
- ファイル名にハイフンは使用しない (Androidで使用できない)
##■PJ管理
###◇コーディング規約をメンバーに浸透させる
iOSとAndroidで表現が変わらない様にする
- 例えば:ホーム画面とトップ画面とメイン画面など
###◇iOSとAndroidの工数を同じと思わない
Android機種が多く機種依存もあるため、テスト工数も増える
傾向的にはAndroidの方が工数膨らみがち
見積り時には、サポートするバージョンや機種の合意を取ると良い
###◇上の諸々の事情をなるべく顧客に知ってもらう
無理やり合わせるのは、工数もかかるしバグも生みやすいし、お互い美味しくないですよと伝える
- (特にモックをiOSで作成した場合などで)iOSのデフォルトのアニメーションをAndroidに求められて工数増加などがある
##■もう一歩踏み込むと
###◇着手する機能の順番をずらす
設計時のスケルトンクラス(ガワにコメントやTODOを記載したもの)を共有する
- ユニットテストの作成も同様
まだまだありそうですが、とりあえずこんなところで・・・