6

私は長年、C、C++、C#、およびその他のいくつかの言語で、主に Windows と Linux だけでなく、組み込みプラットフォームでもプログラミングを行ってきました。最近、サイド プロジェクトとして iPhone プログラミングを始めたので、Apple II 時代以来初めて Apple プラットフォームを使用しています。Mac OSX、Xcode、iPhone SDK を開発しようとしている他の開発者はどう考えているのだろうか。これまでのところ、私の印象は次のとおりです。

  • Mac OSX: 非常に紛らわしいです。開いているウィンドウが多すぎて、何がどこにあるのかわからないことがよくあります。幸いなことに鳥瞰図があり、それがなければ道に迷ってしまいます。シェルには、少なくとも使い慣れたものがすべて含まれているため、非常に役立ちます。

  • Xcode: 私がよく知っている 2 つの環境である VisualStudio や Eclipse ほど快適ではありません。私はそれに慣れることができると思いますが、Apple が Eclipse を使用した方が良いのではないかと思っています。すべてのウィンドウがくっついている設定を見つける前は嫌いでしたが、今では我慢できます。

  • iPhone SDK: 確かに奇妙です。Apple が自分たちの環境をコントロールしたいという気持ちは理解できますが、今の時代、それは少し下品に見え、開発者の善意を破壊することで多くのことを逃しています。

  • Objective-C: 何年も前から知っていましたが、一度も調べたことはありませんでした。構文は不快ですが、実際にはこの言語に非常に興味をそそられます。これは、C++ と C# の間の興味深い第 3 段階だと思います。どちらも私はとても気に入っています。Apple テクノロジの人気が高まっているため、Obj-C が Mac サンドボックスから抜け出す可能性はありますか?

あなたの考えを読んで興味深く、

アンドリュー

4

7 に答える 7

5

私はあなたと同じ船に乗っています(やや)。私は .NET 1.0 以来、7 年間 C# で開発してきました。ここ数週間、私は Cocoa と Objective-C を独学してきました。ここに私の印象があります(あなたのメモのためのメモ)

  • 混乱が問題になる可能性があることに同意します。私は、XCode で開発するときは Spaces を多用する傾向があります (XCode を 1 つのスペースに、Interface Builder を別のスペースに、Instruments を 3 つ目のスペースに配置します)。Leopard を持っていない (したがってスペースがない) 場合は、Command-H を使用してアクティブなウィンドウを非表示にします。それを使用すると、物事がかなりきれいになる傾向があります(ただし、別のアプリにコマンドタブで移動するときに、現在のウィンドウを自動的にコマンドhできると便利です)。

  • XCodeがますます好きになりました。私は Visual Studio が嫌いです。Visual Studio は不安定で、遅く、まあまあ、つまらない IDE のようなものです。比較すると、XCode は高速で安定しており、ファイルの整理とフィルタリングの方法が気に入っています。私は自分の XCode ショートカットにあまり慣れていませんが、あるクラスから別のクラスにすばやく切り替える方法があることを願っています (ReSharper の ctrl +n ショートカットに似ています)。インテリセンスは、ユーザーへの表示方法に関しては優れている可能性がありますが、基本的にテンプレートを作成し、ctrl + / でメッセージ内の次の引数にジャンプできる方法が本当に気に入っています。

  • 私は XCode のドキュメントが嫌いです。ヘルプ システムが最悪で、なんらかの理由で探しているものが見つかりません。私は知る必要があることをグーグルで検索するだけです...彼らがドキュメントを改善することを願っています. これは今の私の最大の牛肉です。

  • Mac デスクトップ用の完全な Cocoa フレームワークを調べているので、まだ十分ではありません。これまでのところ、私は自分が見ているものを本当に、本当に気に入っています。1 つ言えることは、iPhone SDK でガベージ コレクションが許可されていればいいということです...

  • Objective-C - 私は一度も使用したことがありません。これが初めての試みです。最初は、メッセージングの構文と角括弧に少し戸惑いましたが、それは本当に成長しています。メソッドをすくい取り、そのメソッドが行うメッセージ呼び出しを確認するのはとても簡単です。使用すればするほど、Objective-C はいい感じになります... ただし、テンプレート化/ジェネリックは言語への追加として歓迎されます。

全体として、私の Mac 開発への進出は楽しいものでした。また、実際の Mac/iPhone プロジェクトで作業を開始できることに興奮しています (今日! やった!)。

于 2008-09-19T16:45:09.243 に答える
3

私はあなたの感情に同意します。Microsoft開発ツール(およびeclipse)からXCodeに移行するのは、やや厳しいものです。XCodeはただ感じます...いくつかの点で未完成です。確かに、VSやEclipseに期待するような洗練されたものはありません。

SDKも同様であり、その多くは十分に文書化されておらず、何かが必要であることがわかっている多くの穴がありますが、そうではありません。オーディオ/ビデオファイルの再生を注意深く制御しようとすることは一例です。

ただし、Objective-Cは優れています。その癖や特異性にもかかわらず、私はこの言語が本当に好きです(nullへのメッセージは実行時の例外ではありませんか?本当に?)C ++の目が構文に慣れると、緩く型付けされた匿名メッセージングは​​実際にプレイするのが本当にクールになりますと(多少危険でRTEが発生しやすい場合)

于 2008-09-19T16:36:46.080 に答える
2

iPhoneアプリの開発も本格的に始めたいと思っています。Motorola、Blackberry、および Windows Mobile の開発を少し行いましたが、これらはすべてクールで、優れたドキュメントがあり、SDK へのアクセスとインストールが簡単でした。これまでのところ、開発環境が Mac でしか利用できないように見えるという点で、Apple は少しエリート主義的であると感じています。また、ライセンスの概念もあまり好きではありません。実際にアプリを公開できるようにしたい場合は、それらを確認する必要があります。彼らは、できるかできないか、またはあなたのアプリが優れた製品で実行できると見なされるかどうかについて、最終的な決定権を持っています. オープン ソース コミュニティがアプリケーションを維持および作成すること、または私のような iPhone 初心者が製品用のアプリケーションを作成し始めることさえも難しくしていると私は信じています。

于 2008-09-19T16:49:25.240 に答える
2

私はいくつかの小さな iPhone アプリに取り組んできましたが、開発者が SOAP Web サービスに簡単にアクセスできるようにするフレームワークのコンポーネントがそれらのアプリに含まれていないことに驚きました。企業の IT 環境で働いている人で、痛みを感じている人はいますか?

于 2008-09-19T17:08:14.040 に答える
1

私は iPhone プログラミングと XCode も初めてです。多くのプラットフォームで何年にもわたってプログラミングを行ってきましたが、私の印象はあなたの印象にかなり近いものです (いくつかの違いがあります)。

  • Mac OSX: 私は約 2 年前に (実験として) Windows から切り替えましたが、そのままでいました :) - 元に戻すことはないと思います。Unix の基盤を持つことは非常にクールで、私は派手な GUI が好きです + インターフェイスの基本的なシンプルさが好きです。慣れるまで2ヶ月ほどかかりましたが、元に戻ることは考えられません。私は MacBook のキーボード レイアウトと OSX のキーボード制限の一部が嫌いです。ユーザビリティの洞察力に誇りを持っている会社が、これほどお粗末な決定を下すのはおかしい。おそらく最も良い例は、コンテキスト メニュー (右クリック) のキーボード ショートカットがないことと、Home、End、PgUp などのタスクを実行するのに 2 つのキーが必要であるという事実です。私の主なアドバイスは、できるだけ多くのキーボードの学習に時間を費やすことです。可能な限りショートカット。&もインストールすることをお勧めしますQuicksilverPath Finder1PasswordThingsTextMateText WranglerおよびTransmit

  • Xcode: 私はあなたに完全に同意します。XCode はかなり原始的だと思います。私がよく使っている IntelliJ IDEA と比較すると、Apple は少なくとも 7 年前に立ち往生しているように感じます。

    • コード ナビゲーションは非常に原始的で、あまりにも多くのウィンドウが飛び回っています
    • ずっとマウスを使わなければならない
    • テンプレートは非常に制限されており、コンテキストやスコープに関係のない単純なマクロ概念に基づいています
    • リファクタリングは、いくつかの単純なアクションに限定されます
    • メソッドのオーバーライドなどの些細なタスクを簡単に達成することさえできません
    • コードセンスは素晴らしいですが、タイピングを理解していればもっと良かったかもしれません...

    皮肉なことに、まじめな Mac 開発者は、自分たちが問題を抱えていることさえ理解していません...彼らは対処しなければならない混乱に慣れすぎているため、より良い世界を想像することができません...あなたを助ける代わりに、 XCode が邪魔をし続けます。最新の Java IDE (Eclipse、IntelliJ) と比較した場合、この環境がどのようにひどいものであるかについて、私は何十もの例を思いつくことができますが、それは時間の無駄だと思います - Apple は他人から学ぶことを誇りに思っているようです... Java の発明者がObjective-C から学ぶことをためらわなかったという事実を考えると、面白いです。私からの唯一のアドバイス (私自身に対しても) は、XCode を開くたびに深呼吸をして、この環境に慣れている専門家からできる限り多くを学ぶことです。

  • iPhone SDK: それよりもさらに悪いことです。数か月前にモバイル アプリを iPhone に移植することを検討しましたが、Apple がアプリ ストアから拒否する可能性があり、事前に知ることができないので気にしないことにしました (彼らは、iTunes に近すぎるという理由で、過去に似たようなアプリを却下しました!)

  • Obj-C: Objective-C は非常に優れていると思います。数日後にはぎこちないメッセージング構文に慣れますが、ガベージ コレクションが恋しくなりますか?私の初期の C/C++ 時代への時間。私はこの言語のニュアンスを学び始めたばかりですが、今のところ気に入っています。Obj-C のベスト プラクティスについては、公式ドキュメントには記載されていないかなりの数のヒントがウェブ上に散らばっており、私はそれらから多くのことを学びました (たとえば、stackoverflowに関する次の議論を参照してください) 。

于 2009-02-03T10:25:50.253 に答える
1

個人的には、この時点でドキュメントは非常に優れていると思います。どの Objective C クラスでも、option-doubleClick でその用語のドキュメントを表示できます。リストにある特定のクラスを使用するサンプル プロジェクトがある場合 (少なくとも多くの iPhone 固有のクラス)。

また、最初に開始するときに Research Assistant をオンにして、Code Sense をオンにすることも検討してください (デフォルトでオンになっているとは思わないでください)。XCode + Interface Builder の組み合わせは、慣れると非常に強力です。率直に言って、コードへの統合がどのように機能するか、またはコードなしでインテリジェントにサイズ変更するインターフェイスを設計する機能に関して、これより優れたインターフェイス ビルダーを使用したことはありません。大量の追加作業。

于 2008-09-21T04:41:05.817 に答える
0

私も C# のバックグラウンドを持っており、ベータ 2 から iPhone SDK を使用しています。Xcode に比べて VS が少し不格好であるというクランリーの意見に完全に同意します。Xcode はまったく異なり、使い始めると完全に異質です。VSも昔はそうでした。学習曲線に慣れると、それは素晴らしい経験になります。私が開発しているアプリは C# サーバー サイド (Web サービス) を使用しており、Xcode から Web サービス コードを記述するために VS に切り替える必要があるのは絶対に嫌です。Obj-C は、デリゲート (.NET デリゲートとは大きく異なります)、メッセージ、カテゴリ、および存在するその他すべての奇妙な点など、それがどのように最適に機能するかを理解すれば、非常に楽しく使用できます。

私は .NET の前に Java と Flex のプログラミングを行っていましたが、.NET のドキュメントは Java のドキュメントよりもずっと嫌いでした。彼らはそれをカットしません。個人的には、Xcode のドキュメントと検索システムが驚くべきものであることに気づきました。大量のサンプル コードを含むドキュメントからリンクされた無数の PDF ガイドがあります。これについて考えてみてください。iPhone SDK は、約 2 か月前からベータ版ではなくなりました。ドキュメントは、何年にもわたる成熟度を示しています。そうです、それは Obj-C が登場してから 1 年以上経ち、フレームワークが似ているからです。

全体として、私が見つけた最大の問題は、多くの .NET 開発者が iPhone の時流に乗って Obj-C を C# や VB のように使おうとしているということです。iPhone のドキュメントはおろか、基本的な Obj-C のドキュメントも読めず、非常に苛立ち、最終的に失敗します。ディスカッション フォーラムは、このシナリオでいっぱいです。iPhoneのプログラミングは簡単ではありません。新しい言語を学ぶのは簡単ではありません。時間と多くの try.fail.try が必要です。それは .NET ではないので、始める前にその考え方を失ってください。

于 2008-09-19T17:08:26.520 に答える