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」ボタンなど)は常に同じような座標で使うので、それらは直ぐに作れる様になります。

もうしばらく、実際にやってみて、検証していきます。

お知らせ

「小学生でもわかる プログラミングの世界」を執筆しました!

プロフィール

林 晃
アールケー開発 代表
NPO法人MOSA 常任理事
ソフトウェアエンジニア

2005年にアールケー開発を開業し、企業から依頼を受けて、ソフトウェアを受託開発しています。macOSやiOSのソフトウェアを専門に開発しています。ソフトウェア開発の他に、技術書執筆、セミナー講師、オンライン教育コンテンツ開発などを行っています。

詳細はこちらをご覧ください。

アールケー開発について

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

フォローする