StoryboardやXibは使わない方が良いかも?

まだ、もや〜としているのですが、規模がある程度まで大きいものや長期的に開発を続けるものには、StoryboardやXibは使わない方が良いかもと思ってきました。
今まで、大規模なものでも使ってきましたが、長期的に開発を続けていると、途中でXcodeのバージョンを移行することが多くあります。特にMacのアプリの場合、動作環境は数年前のOSでもサポートしています。開発環境は最新OSでやっていても、ユーザーの環境は古いという組み合わせはごく普通のことです。すると、不具合が起きたときに、3個くらい前のOSでのみ再現するということが往々にして発生します。そんなとき、その環境を用意して、いざデバッグしようと思うと、Xcodeのバージョンも古くしないと出来ないという状態になります。コード自体は古いバージョンでもビルド出来るのですが、XibやStoryboardのフォーマットバージョンに阻まれて、ビルド失敗になることがあります。
もちろん、Xcode上でXibのフォーマットバージョンを下げることは出来ますが、数が多いと大変です。また、Xcodeのメジャーバージョンを2つくらい下げるときには、次のように多段階に下げる必要があります。
(1) 最新版で下げられる所まで下げる
(2) 下げたところを開けるOSとXcodeを別に用意して、更にターゲットの所まで下げる
(3) ターゲットで開発
そして、ターゲットの古いバージョンで修正が終わって、Gitにコミットするときには、コードだけをコミットします。Xibはビルドのためだけに下げているので、コミットしません。しかし、疲れていると、間違えてコミットしてしまうこともあります。それが原因で別の問題がとなると目も当てられません。
この操作ミスの可能性も無くしつつ、Xcodeのバージョン横断も出来るようにと考えていくと、XibやStoryboardを使わずにコードだけで作った方が良いと思えてきました。
また、別の人も書かれていますが、GUI上の変更もコードになっていれば、Git上で追いやすいという利点があります。差分が分かりやすいからです。
短期的には少し余計に時間がかかるかもしれませんが、長期的にはデバッグや開発環境更新時のトラブルを減らすことが出来ると思います。
2017/06/24 13:13追記
実際にやってみると、座標の感覚になれていないところで時間がかかりますが、一度、作ってしまえば、再利用もやりやすいと思います。
同じ座標や同じ大きさのダイアログなどは結構ありますし、特定の種類のボタン(例えば、「OK」ボタンや「Cancel」ボタンなど)は常に同じような座標で使うので、それらは直ぐに作れる様になります。
もうしばらく、実際にやってみて、検証していきます。

投稿者プロフィール

林 晃
林 晃macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者
アールケー開発代表。macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者。ObjC/Swift/C++使い。豊富な開発実務経験を基に、教育コンテンツ開発、技術書執筆、技術指導、技術セミナー講師、企業内研修講師、行政・自治体職員研修講師も行います。

関連記事

  1. サーバー再構成しました

  2. セミナーで講師をしました

  3. BootCampでAeroが有効にならなかったときの修正方法

  4. Todoistで一番重要な機能はダイジェストメールだと思う

  5. 改訂3版 基礎から学ぶiPhoneアプリ開発のページができました

  6. Qt 4.5をVisual Studio 2008と組み合わせる

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事

  1. 2020.10.21

    GitLabへの移行