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

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

ただいまの
回答率

89.85%

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

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 4,479

ikuwow

score 453

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

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

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+2

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/03 23:11

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

    キャンセル

+2

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

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

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

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

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



投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/03 01:19

    早い回答をありがとうございます。

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

    キャンセル

+2

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/05/03 23:17

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

    キャンセル

+2

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.85%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる