質問

私は何年も前に C++ で開発したことがありますが、最近は主に Java ソフトウェア エンジニアです。私は iPhone を所有しており、来月には MacBook を購入する準備ができており、Mac OS 開発 (Objective C を使用) を始めることに一般的に興味があることを考慮して、この質問を外に出しておこうと思いました。次は何?

具体的には、どのような本を買えばよいでしょうか。また、誰かが教えてくれそうな Web リソースはありますか?購入を予定している書籍の一部:

これらのタイトルを知っている人はいますか?最後に、この旅に乗り出したときにどのようなことを想定しておくべきかについての概要を知りたいと思っています。IntelliJ IDEA を使用して Java で開発する者として、Xcode で ObjectiveC コードを作成する際に気づく重要な違いは何ですか?Mac OS デスクトップ開発と iPhone 開発の違いは何ですか?Java ガベージ コレクションには慣れていますが、ObjectiveC のガベージ コレクション/メモリ管理について知っておくべきことは何ですか。他に言語固有の問題で、誰かが指摘したいことはありますか?UI の構築についてはどうですか?コードが対話する Visual C++ リソース ファイルを構築するのは Swing に近いのでしょうか、それとも gui 用のコードを生成するボーランド IDE に近いのでしょうか?

役に立ちましたか?

解決

ご質問の本を両方購入したので、言語と Cocoa フレームワークを学ぶための簡単な方法として、Mac OS X 用の Cocoa プログラミングをお勧めします。これはおそらく、Cocoa で実際のアプリケーションの作成を開始する最も早い方法です。ぜひお勧めします。『Objective-C 2.0 でのプログラミング』は優れた参考書ですが、すでに C を知っている場合は、他の本から学べないことはあまり学べません。ただし、Objective-C のすべての予約キーワードのリストが必要な場合は、この本を参照してください。

すべてのユーザー インターフェイスはプログラムによって生成できますが、XCode に付属の Interface Builder を使用してユーザー インターフェイスをレイアウトする方がはるかに簡単であることがわかります。最終的にはコードが大幅に減ります。バインディングを使用すると、インターフェイスのレイアウトに直接関係しないコードを削除することもできます。詳細は、『Cocoa Programming for Mac OS X』という書籍に記載されています。

私が Java に欠けている大きな点の 1 つは、コレクション API です。Cocoa では、NSSet、NSArray、NSDictionary を取得するだけで、Comparable インターフェイスに相当するものはありません。これらのクラスも不変ですが、NSMutableArray などの可変バージョンがあります。

実は私は Objective-C 2.0 のガベージ コレクションを試したことがありません。Objective-C の以前のバージョンでは、メモリ管理は、retain、release、および autorelease メソッドによって処理されました。オブジェクトは保持カウント 1 で作成されました。インクリメントされたカウントを保持し、デクリメントされたカウントを解放し、オブジェクトを自動解放するのは少し複雑です。繰り返しますが、Cocoa プログラミングの本で詳しく説明されています。ガベージ コレクションはオプションであり、これがオンになっている場合、retain、release、および autorelease メソッドは何も行いません。ただし、他の人が使用するライブラリやフレームワークを作成している場合は、ガベージ コレクションがオフになっているかのようにプログラムする必要があります。そうすることで、アプリケーションはガベージ コレクションがオンになっているかどうかに関係なく、それを使用できます。

Webリソースに関しては、 http://cocoadevcentral.com/ は初心者向けのチュートリアルを備えた素晴らしいサイトです。CocoaDev Wiki (次の場所) http://www.cocoadev.com/ 多くのトピックに関する詳細情報が含まれており、通常は Cocoa-dev メーリング リストでいくつかの有用な情報や人々を見つけることができます。 http://lists.apple.com/mailman/listinfo/cocoa-dev

iPhone の開発は少し異なり、詳細は NDA によって制限されています。ただし、Apple の承認を得て iPhone デベロッパー センターにアクセスできる場合、Apple は相違点を説明する優れたビデオ概要をいくつか提供しており、Mac OS X から iPhone OS X プログラミングに移行するために必要なドキュメントを参照できます。

他のヒント

Mac OS X 用の Cocoa プログラミングを入手してください。あなたの質問のほとんどはその本で答えられます。読み始めることもできます XCoder になる そして Cocoa デベロッパー セントラル.

iPhone SDK はまだ NDA の下にあるため、Apple が提供するものを除いて、それに関するオンライン リソースを見つけることはできません。

Cocoa UI は MVC に基づいています。Interface Builder を使用してビューを設計し、それをモデルとコントローラーにバインドします。Objective C は、C と Smalltalk を組み合わせたものです。

もう 1 つのオプションは、jaiPhon です。これを使用すると、ビルド時に iPhone の言語に翻訳される Java アプリを作成できます。

それがまだ利用可能なのか、それとも商用ウェアなのかその他なのかはわかりませんが、それでも興味深いものです。

http://www.jaiphon.com/

こちらもチェックしてください:

http://www.xmlvm.org/overview/

これは、さまざまなソース言語で書かれたプログラムをさまざまなターゲット言語にクロスコンパイルできるようにするプロジェクトです。最初のテスト ケースの 1 つは、Java でプログラムを作成し、iPhone 上で実行することでした。サイト上のビデオを見るのは価値があります。

そうは言っても、私は試していません。このプロジェクトはかなりベータ版のようで、SourceForge サイトにはあまり活動がありません。

角括弧についてはもうご存知ですか?

ここにあります その理論的根拠の簡単な説明 私の視点から。これも役立つことを願っています。

IntelliJ から Xcode にジャンプすると、かなり裸に感じると思います。しかし、これはツールの観点から見たものです。追加の衣服 (TextMate+FScript) を持参してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top