5

私は Xcode と Objective-C でアプリを構築する方法をゆっくりと学んでおり、Interface Builder を使用せずに Cocoa Touch Apps を作成する方法についてのこのブログ投稿と、可能な限り Interface Builder を使用する方法についてのこのブログ投稿を読んでいます。

私は Interface Builder を使用することを避ける傾向にあることに気付きました。単純なコードであれば問題をより早く見つけることができるからです。この時点では、Interface Builder を使用するよりもコードを書くことに慣れています。

そのため、Interface Builder を完全に使用しないことを検討しています。しかし、その前に次のことを知りたいと思いました。

  • Interface Builder を絶対に使用しなければならないときはありますか? それなしでは達成不可能なことはありますか?(私はその逆が真であることを知っています。)

  • Tal Bereznitskey が説明している Interface Builder の使用の利点を見逃さないようにするために採用できるプラクティスはありますか? 私は特に、保守が容易で、プロトタイプや変更が容易であるという点について彼が指摘していることを考えています。

  • Interface Builder を完全に無視すると、今後アプリを作成する際に不利になります。コードを書くことに固執した場合、将来取り組みたい複雑なアプリの開発が大幅に難しくなるでしょうか?

  • 今は自分でアプリを作っているだけですが、Interface Builder の使い方を習ったことがないので、他の開発者と一緒に仕事をするようになると、かなり不利になるのでしょうか、それとも、コードの書き方を知っているだけでできるようになるのでしょうか?

4

3 に答える 3

4

私の開発経験と IB の長所と短所:

コードでしか表現できない核となる概念についての学習を妨げている複雑さを IB に取り除かせることから始めます。IB が他の方法では明らかな接続を隠している (したがって、学習とデバッグが容易である) という事実については、多くのことが言えますが、一般的に、不要なコードを削除するのに優れています。

Objective-C と cocoa に慣れてきたら、IB を使用する必要なく、ビュー階層と UI 要素が機能する方法についてできるだけ多くを学ぶことは有益です。IB でできないことはないと思いますが、プログラムで処理した方が柔軟で強力な機能がたくさんあることは確かです。

その時点から、基礎となる機能を理解したら、IB の使用に戻ることができ、UIKit 要素の多くのプロパティを設定するために使用する時間とエネルギーを節約できます。

見逃すことについてのあなたの懸念に対処するために。ストーリーボード (UI を計画するための集合的な方法) と XIB/NIB ファイル (単一の UI のファイルが単一のビュー コントローラーに関連付けられている) の両方を学ぶのに時間がかかると思います。絵コンテは新しく、私を含む多くの人々に完全には理解されていません! NIB と XIB はより強力であまり目立たないものですが、ストーリーボードではうまく機能しないものがあるため、依然として非常に重要です。

他の人との作業に関しては、IBファイルのPlist/Backingがマージなどで常にうまく機能するとは限らないため、IBはバージョン管理を苦痛にする可能性があります...ただし、学習の観点から来ている場合は最初にコードを書いてから IB を学ぶほうが、その逆よりも簡単です。チームで働く上で最も重要なルールは、質問することを恐れないことです。あなたのコード スキルは、IB であなたを助けることができる他の誰かを助けるでしょう。

それが役立つことを願っています。Ray Wendlerlich のサイトにすばらしいチュートリアルがあります。Google で検索してください。

于 2013-07-23T16:31:35.643 に答える
2

Interface Builder を絶対に使用しなければならないときはありますか? それなしでは達成不可能なことはありますか?(私はその逆が真であることを知っています。)

私の知る限り、いいえ。

Tal Bereznitskey が説明している Interface Builder の使用の利点を見逃さないようにするために採用できるプラクティスはありますか? 私は特に、保守が容易で、プロトタイプや変更が容易であるという点について彼が指摘していることを考えています。

Interface Builder には、いくつかの長所と短所があります。それらのいくつかを列挙しましょう:

利点 #1: 適度に複雑なインターフェイスをすばやく作成する方が簡単です。

利点 #2: 開発ツールと緊密に統合されているため、アプリの UI 内で一貫性を維持していることをほぼ確実に確信できます。たとえば、Table View Controller を作成したときに、コードの細部を少し見逃していて、Table View の上に余分な空白があったことを経験しました。IB を使用した場合、このエラーは発生しませんでした。

欠点 #1: オープンソースのライブラリとアプリの場合、IB のない開発者 (たとえば、非公式のツールチェーンを使用している開発者や、Theos などでジェイルブレイクされたデバイス向けに開発している開発者) は、コードを十分に活用できません。

欠点 #2: iOS 開発の初心者は、簡単に "怠け者" になり、完全な UI をコードから完全に構築する方法を学べない可能性があります。これは、非常に動的なインターフェースを構成する際に非常に便利なスキルであり、細かいディテールがたくさんあります。

Interface Builder を完全に無視すると、今後アプリを作成する際に不利になります。コードを書くことに固執した場合、将来取り組みたい複雑なアプリの開発が大幅に難しくなるでしょうか?

私が見ることができる唯一の欠点は、最初はウィジェットをドラッグアンドドロップするよりもコードを最初から書く方が遅いかもしれないということですが、この差も時間が経つにつれて小さくなります。

今は一人でアプリを作っているだけですが、Interface Builder の使い方を習ったことがないので、他の開発者と一緒に仕事をするようになると、かなり不利になるのでしょうか、それとも、コードの書き方を知っているだけでできるようになるのでしょうか?

一般に、グループで作業する場合、IB を使用できることは期待されるスキルですが、私の個人的な経験では、使用できない/使用しなくても大きな問題ではないことが確認されています。去年の夏、私はプロのモバイルバンキングアプリで企業のために働きました。私は IB の経験があまりなく、ほとんど使用したことがありませんが、最も生産性の高い開発者の 1 人でした。

于 2013-07-23T16:46:31.627 に答える
2

このトピックはすでに十分にカバーされています。私の視点を簡潔に述べさせてください。

初期の iOS 開発では、Interface Builder は非常にバグが多く、それを完全に回避することは、バグを減らす (したがって時間を節約する) ための正当な方法でした。

同じことはもうありません。すべてをコードから行う場合、ユーザー インターフェイスの作成に 3 倍の時間を費やすことになります。

また、ストーリーボードは、画面の流れを他の人に説明する簡単な方法です。

于 2013-07-23T17:56:06.187 に答える