2012-09-28 4 views
12

伝統的な.xib戦略の代わりにストーリーボードを使用することは、何をしているのかを実際に理解することなく、本当に失われています。これは、iOS 6アプリケーションの開発でストーリーボードを使用しても有効ですか?

BNR iOSプログラミングブックは、ストーリーボードの使用にいくつかの「短所」を強調しています。私はそれらを以下に挙げましたが、私の質問はこれらのネガティブはまだiOS 6で有効ですか?

  1. ストーリーボードが
  2. ストーリーボードが
  3. ストーリーボードが常に使用
  4. ストーリーボードを容易にするためのプログラミング
  5. 絵コンテ犠牲柔軟性と制御の流れを乱し、バージョン管理を台無しにチームで作業することは困難です新しいビューコントローラインスタンスを作成する

本当にiOSアプリケーションを展開し、「storyboards vs .xib」と闘っている人たちがいます。

おかげ

答えて

11

私は、iOS 6は、これらのいずれかの状況が修正されていないと思います。さらに、xcode 4.5はそれらを修正したり、そうしようとしていません。リストされている問題は、意見や文体の嗜好、そしておそらくいくつかの誤報を反映しているようです。これらはコードで修正されるべきものではありません。

私はかなりのアプリにストーリーボードを使用しており、実際の生産性の向上につながっています。あなたが同意しないかどうかを彼らに見てもらうことをお勧めします。

問題リスト上のコメントのカップル:

  1. 私はチームとのSBに問題を認識してないんだけど、2が真 た場合は、この懸念を説明するだろうという(それがされていません) 。私はこれが2に基づく の誤解だと思う。
  2. 本当ではない。私はGitを宗教的に使用し、頻繁にコミットします。問題ありません。コミット中、SBはソースコード形式(XML)で表示されます。差分は完全に機能し、実際にSBがどのように実装されているかについていくつかの洞察を提供します。これは謎に包まれた "カバーの下"の行為を減らします。これは馴染みのある問題ではありません。
  3. 彼らは流れを混乱させない、彼らは彼らの力を得る場所である別の流れを提供する。多くのプログラマーは、MVC規律によって課された分離の価値を見出します。 SBは、UI要素の配置とサポートコードとの間に分離を導入する。これは自然な分割であり、無駄なコードを排除します(これは、タイプミスの可能性を排除し、残っているREALコードを「解消」します)。
  4. 部分的に同意します - 使いやすさを確実に向上させます。しかし、私はまったく犠牲を見つけることはありません。 SBを使用する場合でも、必要に応じていつでもオブジェクトを手作業でコーディングすることができます。柔軟性やコントロールを犠牲にすることはありません。
  5. これが何を意味しているのか、それがなぜ問題なのかよくわかりません。もちろん、シーンごとに異なるVCを作成します。これは当然のことです。しかし、SBでVCクラスを再利用することは確かに可能です。このアイテムは、SBオブジェクトのクラスを設定する方法について誤解されている可能性があります。このステップを忘れるのは簡単ですし、初心者のために時々困惑します。しかし、修正するのは簡単ではなく、クラスをすぐに設定することは習慣になります。

は私にとって本当の問題は、次のとおりです。

  1. 使用SBSは開発のための画面の不動産の多くを要求しています。 SBを使用することは、小さなディスプレイでは苛立つことがあります。
  2. 非常に複雑なUIが多数のシーンに分割され、複数のSBに分割される必要があります。複数のSBが完全にサポートされていますが、失敗するのは簡単です。 (それは、通常、私は何かがすでに厄介得た後、私は、コードを屈折する必要があることに気づく大きくなりすぎメソッドをリファクタリングようなものだ。)

レイアウト中のSBの利便性と定型コードのあまりの排除VCオブジェクトを混乱させることは大きな利点です。 (私が排除するすべてのコード行は、私がうまくいけない行と、残っている実際のコードを隠すことのできない行です)。

要するに、 SBs。はい、それは変化です。しかし、私は本当の重大な欠点は見つけていません。 SBを使用する場合であっても、SB以外のすべてのコード化技術は引き続き機能することに留意することが特に重要です。 SBを試してみて、自分の経験を報告してください。がんばろう!

+2

2012年のWWDCライブラリには、SBにすべてを変換せずに既存のプロジェクトにSBオブジェクトを追加する方法に関する非常に有益な話があります。ここにあります:https://developer.apple.com/videos/wwdc/2012/?id=407 – jbbenni

7

私は一般にjbbenniに同意します。あなたの主張に見られる唯一の「有効な」批判は、「ストーリーボードはいつも新しいインスタンスを作成する」ということでした。基本的に、これは、スタック上のビューコントローラをプッシュするためにボタンをワイヤリングすることはできますが、余分なコードを使わずにスタックをポップアップバックすることはできませんでした。これは、Xcode 4.5で「exit segues」を使って解決されました。これにより、新しいインスタンスを作成するのではなく、以前のコントローラにポップバックすることを指定できます。

ストーリーボードのもう1つの制限は、ストーリーボード自体に子ビューコントローラーを埋め込むことができなかったことです。これはXcode 4.5でも取り上げられています。

ストーリーボードは、iOS開発の重要な一歩です。 「合併が難しくなる」のような苦情は根拠がない。ストーリーボードは他のコードよりもマージするのが難しくありません。実際にdiffを読むのではなく、Obj-Cでなく読み込めないようにする必要があります。

私はストーリーボードを紹介してからチームの設定で使用しました。知らない人があなたを恐れさせないようにしてください。彼らは素晴らしいです。

+0

ストーリーボードはxibよりもマージするのが難しくないかもしれませんが、SBをマージする必要があります。チームに取り組んでいます。 – Oren

+0

中規模のプロジェクトに複数のストーリーボードを使用すると、特にストーリーボードの機能部門がチームの責任と合致している場合は、実際にコードマージの手間を軽減できます。 (ストーリーボードの多くを使用することの1つの欠点は、ストーリーボード間のSegueは滑らかではありませんが、その問題はクリーンなデザインと共通ではなく、必要なときに実行できることです)ストーリーボードは明らかに残っています。ほとんどの場合、メリットはコーディングコストを上回ります。 – jbbenni

関連する問題