私はしばらくの間iOSアプリを作成してきましたが、UIを完全にプログラムで実行することから、InterfaceBuilderを集中的に使用することへと徐々に移行しました。新しいプロジェクトのいくつかに新しいストーリーボード機能を使用することを考えていますが、その長所と短所を計算するための十分な経験や知識がありません。 ストーリーボーディングを使用したときに成果が得られたときと、それが時間の無駄だったときについて、誰かがいくつかの例や情報を与えることができますか?
6 に答える
ストーリーボーディングの利点
- かっこいい-インターフェースを設計するための賢明な方法
StoryBoardSegues
ナビゲーション/モーダル関係を識別するための使用- アプリが複数のデバイスをサポートしている場合は、さまざまなビューを整理するための良い方法(名前ではなくストーリーボードファイルなど)
- プロトタイピングに最適
- プロトタイプ
UITableViewCell
は時間を節約できます
ストーリーボーディングのデメリット
- これはランタイム機能なので、iOS5でのみ利用できると思います
StoryBoardSegues
私の経験では一種の厳格であり、あなたはprepareForSegue
多くを利用するかもしれません- IBのように、他のディスプレイエンジンやツールキットとはあまり友好的ではありません
- 単一のビューまたはビューのセットのデザインを共有するのが難しくなります-すべてまたは何も送信する必要がありません
これらは表面的なもののように思えますが、あまり考えていなかったと思います...最初はストーリーボードについてはガンホーでしたが、今ではIBに戻ったり、プログラムによるビュー構成に戻ったりしています...それらを使用するほど、私はそれらを好きではなくなり、ギミック/時間の無駄のように感じます。
編集
私は数年前にこの答えを書きました。後世のために以前と同じように残しましたが、いくつかの点はもはや関係がない可能性があります(つまり、iOS 5以降が必要であるという事実)。
しばらく経っても、ストーリーボードでの私の意見は変わっていません。他の人が言っているように、管理するビューがほとんどないアプリで単独で作業している場合は問題ありませんが、ソース管理とコラボレーションでは非常に苦痛になります。さらに、私は1つのファイルと1つのオブジェクトを好み、ストーリーボードは明らかにものを一緒にバンドルします(IBと同様ですが、程度は低いですが)。
深刻な期間維持されることを意図したアプリを作成している場合は、IBを介したプログラムによるビュー構成を使用しますが、ストーリーボードを使用した場合は間違いなくIBを使用します。
言及されていないストーリーボードのもう1つの欠点は、競合がある場合、マージが不可能ではないにしても非常に困難になる可能性があることです。
更新:ロジックを2か所に配置することにも気づきました。セグエが正しく機能していない場合は、prepareForSegueのエラーが原因であるか、セグエの名前が間違っていることが原因である可能性があります。プログラムで物事を行うことは、結局、それほど難しいことではありません。
最新のWWDC(2013)では、Apple Devsは、ストーリーボードと組み込みのIBを使用して、コードを手動で記述するのではなく、ほとんどのコードを実行することを強くお勧めします。これは、非推奨を回避し、自動変換による機能の更新を利用する可能性がはるかに高いためです。 。
唯一の欠点は、実質的にすべてのコミットで競合が発生するため、ストーリーボードでgitコラボレーションを許可することが難しいことです。
ソロプログラマーの場合は、常にストーリーボードを使用する必要があります。
私はあなたと同じような経歴を持っています-IBはあまりユーザーフレンドリーではなかったので、ほとんどプログラムでiOS UIを構築することから始めましたが、UIの設計に適していて、標準で正常に機能するため、最近IBを使用することにしました-要素。
新しいXcodeでは、アプリケーションの全体像を提供するため、ストーリーボードに切り替えました。完全なUI(すべてのビューを含む)を単一のファイルで生成することができます。これは、プロトタイピングに使用でき、最初のコード行を作成する前に同僚を表示できます。フォトショップや同様のツールを使用してデザインするよりもはるかに優れており、簡単です。
ただし、独自のUI要素/コントロールを多数使用する場合、または別の「エンジン」(cocos2d、OpenGLなど)を使用する場合は、これらの「エンジン」は実際にはIBと統合されていないため、通常はプログラムでUIを生成することをお勧めします。 /ストーリーボード。
raywenderlichのWebサイトのチュートリアルに従ってストーリーボードを学びましたが、ストーリーボードについてはたくさんのことがあります。
サイトへのリンクは次のとおりです:http ://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
ストーリーボードの利点:
1)アプリの開発を開始する前に、アプリのすべての画面を確認できます。
2)各画面の関係を視覚的に確認できます。
3)UITableViewの場合は特に、コードの量を減らすのに役立ちます。プロトタイプセルと静的セルを使用して、ストーリーボードでTableViewを設計できます。
4)他の誰かのコードで作業する必要がある場合は、ストーリーボードを短時間で表示することで、アプリのフローをよりよく理解できます。
5)アプリを何度も実行しなくても、ストーリーボードから網膜フォームファクターを適用することで、iPhone4とiPhone5のユーザーインターフェイスをセットアップできます。
6)クライアントベースの作業を行っている場合、一部のクライアントは、アプリの開発を開始する前にアプリのプロトタイプを確認したいと考えています。ここでは、ストーリーボードが大いに役立ちます。
ストーリーボードのデメリット:
1)ストーリーボードの場合、iPadの場合は特に大画面が必要になります。
2)他のアプリからストーリーボードにビューをコピーするときにも問題が発生します。
3)複数の開発者がgitリポジトリを使用して同じプロジェクトで作業している場合にも、ストーリーボードで問題が発生します。
長所と短所を読んで理解することで、ストーリーボードをいつ使用するかを自分で判断できます。
一言(しないでください)2人以上の人がそれに取り組むことを不可能にするgitの競合を除いて、ストーリーボードの最大の欠点の1つ。しかし、プロジェクトが非常に大きくなり、+ 40の画面がある場合、ストーリーボードにある任意のビューコントローラーで1ピクセルだけ移動するのに十分な狂気がある場合は、コンパイル時間が非常に長くなり、ビルドできます。アプリを作成して5分以上で実行します。もちろん、アーカイブから始めて、アプリのアドホックを1つ提供することはできません。
この辛い経験の後、私は完全に古い金色の素晴らしいxibファイルに戻り、巨大な火のお祝いでストーリーボードファイルを削除しました。