質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Q&A

解決済

4回答

7904閲覧

iOSアプリ開発ではStoryboardのマージがややこしいけどどういう開発体制にしたらいい?

ikuwow

総合スコア462

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

0グッド

0クリップ

投稿2015/05/02 14:48

編集2015/05/28 10:25

iOSアプリを複数人で開発するときにStoryboardのコンフリクトが起こるととてもややこしい事になりますよね。また個人的に、以前コンフリクトなしでgitが自動マージしたアプリがクラッシュするようになってしまったこともあり、Storyboardのコンフリクトが大変怖いです。

iOSアプリ開発では、Storyboardのマージを考えた場合、どのような開発体制にしたらよいのでしょうか?

以下に自分が思いつくだけパターンを挙げてみました。必要に応じて追加します。

  1. Storyboardはマージできない。だからそもそも複数人の開発では使わない。
  2. Storyboardの(わかりづらい)XML仕組みをしっかり理解した上で、プルリクエストを受けた人が適切にマージをする。
  3. Storyboardの変更をするときはcommitをめちゃめちゃ細かくして、不具合が起こった場合原因を特定しやすくする。
  4. Storyboardを修正するときは事前に開発メンバーに周知して一人だけが修正作業を行うようにし、コンフリクトを極力起こさないようにする。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

Storyboardのコンフリクトは本質的なことなので、複数人で開発するときには、Storyboardを担当する人数を限定して、変更が必要になった場合には、限られた担当者に変更の要件を伝えて作業してもらう、というアプローチが良いだろうと思います。

Storyboardがあってもなくても、画面遷移はアプリケーション設計上の重要な部分で、全体として矛盾なく、一貫性のあるポリシーでデザインされているべきだと思います。そう考えると、画面遷移の設計は関係者のレビューを通じて評価されるべきで、一度決まった画面遷移に手を入れるときは、全体のデザインを壊していないかどうか慎重に検討すべきです。そういう意味において、複数人がコンフリクトを起こすような体制は、そもそも問題があると思います。

投稿2015/05/02 23:11

chokojori

総合スコア971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikuwow

2015/05/03 14:11

回答有り難うございます。確かに画面を複数人でぐちゃぐちゃいじり回すというのはなにかおかしい気がしますね。
guest

0

4番の選択肢で、極力担当分野を別ける方が良いと思います。
そもそもコンフリクトが起こるような開発体制は微妙じゃないかなて思います。

どうしても共通処理をいじらざる終えない場合は、全員にコミットをさせて、
修正した後、全員がローカルを更新するのが良いと思います。

投稿2015/06/06 12:42

MasaakiIrie

総合スコア1021

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。
私が知っている開発現場では「1.Storyboardを使わない」が多い印象でした。
件の懸念もあり、Xibが未だに多いようです。
※今後少しづつ変わっていくのかもしれませんが。

投稿2015/05/02 17:52

Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikuwow

2015/05/03 14:17

確かに使わない開発もありですね。UIを変更してもコードでどうなっているかわからないと不安になりますし。xibをあまり使用したことがないので、今後試してみようと思います。
guest

0

最終的な答えではありませんが 私は気をつけているのは2点:

①不要な変更をコミットしないこと
例えば 違うバージョンのXcodeで開くとすぐ変更されたりビューコントローラをちょっとだけをキャンバス内で移動したとか ある色が0.423523から0.423524になったとかそういう変更だけある行をコミットしないで差分をわかりやすくする努力をする

コマンドラインで行う場合はgit add -p Main.storyboardが便利ですね。もしくはGUIで行単位でコミットすることができるソフトを使う方がいいかと思います。

②自分がコミットするXMLの分を読むこと。①と少しかぶりますが、毎回自分のコードを読んでXMLをだんだんわかるようになってコンフリクトが発生した場合は対応しやすいです。

これは別にStoryboardに限った話ではないような気がしてきて、結局同じobjc/swift/jsコントローラをクラスを複数人で同時に触ったらコンフリクトが出る可能性が高いですね。だからと言って逐次作業をしないですね。気を付けて自分の変更を細かくできるだけ小さくしてコミットする。それでもコンフリクトが発生しますね。しかし言語になれて内容が読めるから解決はできます。

投稿2015/05/02 16:14

nacho4d

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikuwow

2015/05/02 16:19

早い回答をありがとうございます。 Storyboardは微妙な変更でもXMLは大きく変化することが多いので、不要なものを見極めてバージョン管理に入れないのはかなり修正量と無駄なコンフリクトを抑えられますね。自分がコミットするコードは読むべきだというのもかなり納得できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問