オーマイガー東京

オーマイガー東京というブログを24歳東京暮らし新卒2年目のエンジニアが書いています。

【2018年】iOSアプリを新規開発する際に決めた大事な7つのこと

この度、古くから面倒を見てもらってる先輩からiOSの開発依頼を受けて久しぶりに開発することになりました。(会社が副業OKなの助かりました。)


それにあたりどのようにiOSを開発するのか。した方が良さそうなのかを
大きく7つの項目で纏めておくことにしました。

 

 

www.ohmg.tokyo

 

 

adobe XDでモックを作成してから開発する

いきなりアプリ開発して、修正依頼がくると直す手間がかなり大きいのでモックをadobe XDを使って作成することにしました。

かなり直感的な仕様で、使いやすく40枚越えのアプリのモックもサクサク作ることができました。また、ケーブルで繋ぐだけで実機で動作確認もできるのがgoodでした。

f:id:maru_33:20180224153103j:plain

引用元: https://blogs.adobe.com/creativestation/web-july-update-of-adobe-experience-design-cc-preview

www.adobe.com

まあでも、元々adobe cloudに登録していたのが決めた一番の理由です。
prottとかでも問題ないかと思います。

prottapp.com

 

ストーリーボードは複数に分割して管理する

前述したように、画面数が40枚を越えてしまったので、
管理を考えてストーリーボードを分けようと考えています。

1枚づつストーリーボードを分ける方法もあるらしいのですが、1人の開発でそれはtoo muchな気もするので、今回は意味別に分けて7つくらいに分けておこうと思います。

qiita.com

  

MVCアーキテクチャを導入して開発する

iOSの開発にもかなりの数の推奨アーキテクチャがあるようです。
今回の受託内容は新規開発のみで、今後の継続開発は他の方にお任せする可能性もあるので、将来的な共通理解の意味も込めてアーキテクチャの導入は行っておこうと思います。

一覧のまとめは図解して紹介してくださっている、この方の記事が一番わかりやすかったように思います。

rock-name.com

そして、今回導入しようと思ったのがMVCモデル。
WEBでもよく使われてるやつですね。

こちらに決めた理由は

  • 1人での開発なのでそこまで分けるコストをかける必要ない
  • とは言っても、引き継ぎの可能性も考えてオレオレな構成はやめておきたい
  •  引き継ぎの際の学習コスト低い方がいい
  • ロジックをmodelに分けるだけでもだいぶスッキリしそう

という感じです。

最近の流行りはもっと細かく分けて依存関係なくすものなんですけど、それを導入するには少し規模が小さいかなと思いこのような判断にしました。

MVCは以下の公式見てやっていこうと思います

developer.apple.com

mvc構成にする場合、もちろんディレクトリを分けると思うのですが、その時に便利なライブラリがsynx。
これを使うと、xcode上で切り分けたディレクトリ通りにローカルのディレクトリ構成も直してくれる便利ツール。

github.com

対応するバージョンを決める

対応するバージョンを決めるためには、iOSのバージョンのシェア率を確認しながら、先方と話し合うことが大事です。

以下の公式サイトからバージョンのシェア率を確認することができます。

App Store - サポート - Apple Developer

2018年1月18日時点では、以下のような結果になっており、
今回は、iOS10までの対応で行こうという話になりました。

f:id:maru_33:20180224161859p:plain

 

使用するOSSライブラリ一覧

用途に合わせて使用するライブラリは先に決めておくと、無駄に自分で独自開発することなく済むので効率的です。(自分で開発すると勉強にはなりますが、品質の面でも劣ることが多いです。OSSはすごい) 

以下のサイトが鬼のようにまとめてくれているので、こちらから探せばいいと思います。

github.com

書いてたら長くなりそうなので、別の記事にまとめました。

www.ohmg.tokyo

 

デバック用のテストリリースツールを決める

次に、デバック用のテストリリースツールを決めたいと思います。
こちらは、app storeにリリースする前に、実機にダウンロードして動作を確認することができるツールです。

候補になったのが

  • TestFlight
  • DeployGate 

 よく比較してくれているサイトがこちら

dev.classmethod.jp

今回採用するのは、TestFlightにすることにしました。

決めた理由としては

  • TestFlightを使ったことがあり学習コストが低い(一番の理由)
  • iOS Developer Programに入っているため、追加コスト無し
  • クラッシュ検知に追加SDK必要無し
  • バイナリの登録方法も簡単そう

というふわっとしたやつです。特にこだわりはありません。

 

デプロイの手順を決める

以下のサイトがしっかりまとまっていたので、車輪の再開発する必要なく参考にしながら進めたいと思います。

qiita.com

 

以上、iOSアプリを新規開発する際に決めた大事な7つのことでした。
誰かに見せるというよりは、自分のdocument代わりなので、足りない部分があるかもしれませんが、何か参考になればそれはそれで嬉しいです。

 

多分、これに則って開発したら行き当たりばったりよりはスムーズに開発できると思います。

開発はこれからなので、しっかり頑張る