私は新しい会社でiOSの開発を始めました。ここで彼らは、コードを保守するのは難しく、いくつかの制限があると言って、iterface-builderを絶対に使用しないように教えてくれました。
NetBeansでJavaアプリケーションのインターフェイスビルドを使用すると、多くの「不正なコード」が表示されますが、インターネット上に多くのIBコードが表示され、それがないコードはごくわずかです。
それで、iOS開発の初心者が誰もいない大規模な場合、IBを使用するのは悪い習慣ですか?
私は新しい会社でiOSの開発を始めました。ここで彼らは、コードを保守するのは難しく、いくつかの制限があると言って、iterface-builderを絶対に使用しないように教えてくれました。
NetBeansでJavaアプリケーションのインターフェイスビルドを使用すると、多くの「不正なコード」が表示されますが、インターネット上に多くのIBコードが表示され、それがないコードはごくわずかです。
それで、iOS開発の初心者が誰もいない大規模な場合、IBを使用するのは悪い習慣ですか?
(私が説明するいくつかの理由から、Interface Builderの使用に強い反対があることを事前に述べておきます)
ここで彼らは、コードを維持するのは難しく、いくつかの制限があると言って、InterfaceBuilderを絶対に使用しないように教えてくれました。
これは部分的にしか当てはまりません。私がInterfaceBuilderとXcodeを一般的に嫌う主な理由は、多くの初心者プログラマーがiOS /OSXアプリを開発する唯一の方法だと考えているからです。彼らは聞いたことがなく、コンパイラgcc
とclang
リンカーのエラーメッセージが何を意味するのかわからず、使用できずmake
、Objective-C言語とCocoa(Touch)APIの違いが何であるかを知りません。 IDEとコンパイラはです。
結局のところ、彼らはInterface BuilderとXcodeを、その風変わりで時々奇妙な/非論理的な機能(およびバグも)のすべてで使い始めますが、自明でない何かを開発する必要があるとき、彼らはそこでさえ気づいていませんは、たとえば、プログラムでビューとビューコントローラを作成するためのメソッドです(はい、StackOverflowでこの質問を見ました)。
そのため、悪用された場合(または、あまりにも早く使用された場合)、Interface Builderとすべての「便利な」機能により、プログラマーは悪い概念を学び、いくつかの重要な実践と経験を失うことになります。
ただし、必要なスキルをすべて備えた上級開発者であり、単純なテキストエディタとMakefileだけを使用してアプリケーション全体を最初から作成できると感じた場合は、必ずIBの使用が許可されます。コードを打ち出すよりも快適だと感じた場合は、そうすることをお勧めします。
したがって、要約すると、次のようになります。
Interface Builderを使用することは本当に悪い習慣ですか?
いいえ。むしろそれを悪用し、UI関連のプログラムによるアプローチを学ぶ努力をしないことは悪い習慣です。
スクリプト後:私はiOS開発の経験が豊富ですが、それでもInterfaceBuilderはかなり不便で一貫性がありません。私は通常、すべてにコードを使用します。しかし、それは私の個人的な好みのようです。ただし、1つの利点は、すべてをコードで作成すると、これらのApple固有のツールにアクセスできない別のプログラマーもプロジェクトに貢献できることです。これが「メンテナンスが難しい」部分が実現するポイントです...
たとえば、Macに十分なお金がなくなるまで、iOSアプリの開発にはLinuxを使用していました(はい、実際には可能です)。私はIBとXcodeを使用できませんでしたが、アプリケーションと微調整をたくさん行いました(もちろん、ジェイルブレイクされたiOSの場合)。それは問題ありませんでした。
スクリプト後#2:IBの使用を回避するもう1つの理由は、動的UIの必要性である可能性があります。アニメーションやカスタムUI要素などに大きく依存している場合、InterfaceBuilderですべてを行うのは困難です。去年の夏、アプリケーションのログイン画面を書き直さなければならなかったのですが、正直なところ、Interface Builderを使わなければならなかったら、デザイナーのアイデアをどうやって実現できたのかわかりません。UI / UXは非常に動的であり、変更する方法が非常に多いため、すべてのピクセルを細かく制御する必要がありました。そして、それはコードがIBよりも優れていることです。
私はIBが悪い習慣であるという考えに強く反対します。Interface Builderには、コードに比べて次の利点があります。
複雑な(そして単純な)グラフィカルインターフェイスを操作する場合、IBはコードをほんの一部に削減します。たとえば、IBでボタンを作成するのに数秒かかるのに対し、コードでは、特にボタンのスタイルを設定する
複数の解像度とデバイスをサポートするために自動サイズ変更マスクを使用するのは簡単です-Appleは現在、解像度に依存しないアプリを推進しているため、これは重要です
ビューのプロパティの変更/調整は、特に画像を操作する場合、コード行ではなく数回クリックするだけで済みます。
ただし、1つの欠点があります(私の頭に浮かぶ):
絶対違う。Interface Builderは、UIを非常にすばやく作成するための非常に強力な方法です。特にストーリーボードを使用すると、非常に少ないコードで機能的なアプリを作成できます。
「悪いコードを作成する」という問題は、IBがコードを作成しないため、ごみです。それが作成するファイルは、基本的に、作成したコードを補完するXMLファイルです。
私が開発したアプリのほとんどは、ほとんどがIBで開始されています。
明らかに、あなたはあなたのアプリの機能的なことをすることはできません。つまり、ボタンに何をすべきかを正確に伝えることはできません。ただし、作成した関数をポイントして、ほとんどコードなしで機能するボタンを取得できます。
iPadおよびiPhoneのiPhotoのUIのほとんどは、InterfaceBuilderで記述されています。
多くのことが言われていますが、私はまだこの議論のために私の2セントを与えるつもりです...
ある時点まで私はH2CO3に同意しますが、何かを達成するためにショートカットを使い続けるよりも、内部で何が起こっているのかを理解する方が良いでしょう。それはほとんどの場合うまくいきます、そしてそれは私がH2CO3に強く反対するところです、それは次のとおりです:
テクノロジー(C#、Java、HTML、iOSなど)を使用するほとんどの人は、会社がそれを使用する必要があるためにそれを使用します。他の誰かが実際にそれを使用するためにあなたにお金を払うからです。そして、あなたが実際に夜中に目が覚め、突然Cを学びたいという衝動に駆られたからではありません。
誰かが明日iOSアプリを作成するように頼み、これまでiOS用に開発したことがない場合、XIBやストーリーボードを使用せずにアプリを最初から作成するのではないかと思います(これは私が嫌いです)。
H2CO3が提案するのはユートピアです...あなたはその下で何が起こっているのかを本当に理解していますが、あなたはそのような「リート」なので、XIBのようなショートカットを使用することができます。まあ、物事はそのようには機能しません、そして遅かれ早かれあなたは翌朝何かを届けるためにいくつかのくだらないことをしなければならないでしょう。
私は、目の前にある最初のサードパーティライブラリを使用するよりも、XIBを使用する方が好きです。これは個人的な観点です。そして、それは手動でインターフェースを行うよりも合理的だと思います。たとえばライブラリを使用してダウンロード/アップロードするよりも、コードを理解して自分で行う方が好きです。
これをまとめるために、これを尋ねた人への私のアドバイスは次のとおりです。
物事がそのように行われる理由を理解するようにしてください。何よりも、直面する新しいプロジェクトごとに、より優れたプログラマーになるようにしてください。何か新しいもの(新しいiOSバージョン)が登場した場合は、1日か2日かけて、何が新しく、何を使用できるかを確認してください。XIBは使用するのにまったく問題ありUIView's
ませんが、手作業で作成するのに時間がかかるため、XIBが提供するすべての柔軟性を確認できます。そして何より、ストーリーボードから逃げる(^^)
PS:上級開発者は、「あなたよりも優れたカンフー」を持っている人だけではありません。それだけではありません。