2008-09-25 24 views
12

Tôi đã phát triển bằng C++ nhiều năm trước, nhưng những ngày này tôi chủ yếu là kỹ sư phần mềm Java. Do tôi sở hữu một chiếc iPhone, tôi đã sẵn sàng cho một chiếc MacBook vào tháng tới, và tôi thường quan tâm đến việc bắt đầu với Mac OS developmentmt (sử dụng Objective C), tôi nghĩ tôi sẽ đặt câu hỏi này lên đó: Next?Nhà phát triển Java đáp ứng mục tiêu-C trên Mac OS

Cụ thể hơn, tôi nên chọn những cuốn sách nào và có bất kỳ tài nguyên web nào mà một số người có thể chỉ cho tôi không? Một số cuốn sách mà tôi đang lên kế hoạch để mua:

Bất cứ ai quen thuộc với những tiêu đề này? Cuối cùng, tôi sẽ rất quan tâm đến một bản tóm tắt về những gì tôi nên chuẩn bị để mong đợi, một khi tôi bắt tay vào cuộc hành trình này. Là một người phát triển trong Java sử dụng IntelliJ IDEA, một số khác biệt chính nào tôi sẽ nhận thấy khi tôi chuyển sang viết mã ObjectiveC trong Xcode? Sự khác nhau giữa phát triển máy tính để bàn Mac OS và phát triển iPhone là gì? Được sử dụng để thu gom rác Java, tôi nên biết gì về quản lý bộ nhớ/bộ nhớ rác của ObjectiveC. Bất kỳ vấn đề ngôn ngữ cụ thể khác mà bất kỳ ai muốn chỉ ra? Làm thế nào về xây dựng giao diện người dùng? Có gần Swing hơn không, xây dựng các tệp tài nguyên Visual C++ mã tương tác với, hoặc nó giống như một số IDE của borland sẽ tạo mã cho guis?

Trả lời

11

Sau khi mua cả trong những cuốn sách trong câu hỏi của bạn, tôi khuyên bạn nên Cocoa Lập trình cho Mac OS X như một cách nhanh chóng để học ngôn ngữ và khuôn khổ Cocoa, và có lẽ là cách nhanh nhất để bắt đầu sản xuất thực ứng dụng trong Cocoa. Tôi khuyên bạn nên nó. Lập trình trong Objective-C 2.0 là một cuốn sách tham khảo tuyệt vời, nhưng nếu bạn đã biết C, sẽ không có gì nhiều để dạy bạn rằng bạn không thể lấy từ cuốn sách khác. Tuy nhiên, nếu bạn cần một danh sách tất cả các từ khóa dành riêng trong Objective-C, thì đó là cuốn sách để đi đến.

Tất cả giao diện người dùng có thể được tạo theo cách thủ công, nhưng bạn sẽ thấy dễ dàng hơn khi sử dụng Interface Builder, đi kèm với XCode, để bố trí giao diện người dùng. Bạn sẽ kết thúc với rất ít mã. Với các ràng buộc, bạn thậm chí có thể loại bỏ mã không liên quan trực tiếp đến việc đặt giao diện. Các chi tiết có trong sách Lập trình Cacao cho Mac OS X.

Điều lớn nhất tôi bỏ lỡ từ Java là API thu thập. Trong Cocoa, bạn chỉ nhận được NSSet, NSArray và NSDictionary, và không có tương tự với giao diện Comparable. Các lớp này cũng không thay đổi, nhưng có các phiên bản có thể thay đổi được như NSMutableArray.

Tôi thực sự chưa chơi với Bộ sưu tập rác trong Mục tiêu-C 2.0. Trong các phiên bản trước của Objective-C, quản lý bộ nhớ đã được xử lý bằng các phương thức giữ lại, giải phóng và tự động phát hành. Các đối tượng được tạo ra với số lượng giữ lại 1. Giữ lại số lượng tăng lên, giải phóng nó và các đối tượng tự động phát hiện phức tạp hơn một chút. Một lần nữa, cuốn sách lập trình Cocoa giải thích nó tốt. Bộ sưu tập rác là một lựa chọn, và nếu nó được bật, các phương pháp giữ lại, giải phóng và tự động làm không có gì. Tuy nhiên, nếu bạn đang viết một thư viện hoặc khung làm việc để người khác sử dụng, bạn nên lập trình nó như thể việc thu gom rác bị tắt. Bằng cách đó, các ứng dụng có thể sử dụng nó cho dù họ có bật thu gom rác hay không.

Đối với tài nguyên web, http://cocoadevcentral.com/ là trang web tuyệt vời với hướng dẫn cho người mới bắt đầu. Các CocoaDev Wiki tại http://www.cocoadev.com/ chứa thông tin chi tiết về rất nhiều chủ đề, và bạn thường có thể tìm thấy một số thông tin hữu ích và những người trên danh sách gửi thư cocoa-dev http://lists.apple.com/mailman/listinfo/cocoa-dev

Phát triển iPhone hơi khác một chút và chi tiết bị hạn chế bởi NDA. Tuy nhiên, nếu bạn được Apple chấp thuận để có quyền truy cập vào trung tâm phát triển iPhone, Apple đã cung cấp một số bản xem trước video tuyệt vời về sự khác biệt, hướng dẫn bạn đến tài liệu bạn cần để chuyển từ Mac OS X sang lập trình OS X.

1

Nhận lập trình Cocoa cho Mac OS X. Hầu hết các câu hỏi của bạn sẽ được trả lời bằng sách đó. Bạn cũng có thể bắt đầu đọc Become an XCoderCocoa Dev Central.

SDK iPhone vẫn còn trong NDA nên bạn sẽ không thể tìm thấy bất kỳ tài nguyên trực tuyến nào về nó ngoại trừ tài nguyên do Apple cung cấp.

Giao diện người dùng Cocoa dựa trên MVC. Bạn sử dụng Trình tạo giao diện để thiết kế các khung nhìn của bạn và sau đó liên kết nó với các mô hình và bộ điều khiển của bạn. Mục tiêu C là một hỗn hợp của C và Smalltalk.

+1

Rất tiếc, không chấp nhận câu trả lời của bạn. Nó rất hữu ích. Tôi chỉ muốn giúp đỡ các newbie (Michael Buckley) bằng cách chấp nhận của mình. Cảm ơn! –

+0

Không sao cả. Câu trả lời của anh ta có nhiều thông tin hơn tôi. Tôi thậm chí đã bình chọn nó! – jop

0

Một tùy chọn khác cho bạn là jaiPhon, cho phép bạn viết các ứng dụng java được dịch sang iPhone-nói tại thời gian xây dựng.

Tôi không biết nếu nó là availanle được nêu ra, hoặc nếu đó là thương mại-ware hoặc bất cứ điều gì, nhưng nó thú vị không có ít hơn.

http://www.jaiphon.com/

+0

Thú vị. Thành thật mà nói, tôi sẽ nghĩ rằng có cái gì đó để nói cho việc học Objective C, môi trường lập trình và xCode. Việc thiếu sự hỗ trợ Java bản địa cho iPhone là thất vọng nhưng tôi thích những gì tôi đã đọc về các công cụ phát triển Mac. –

+0

chờ một phút .. Tôi đã kiểm tra trang web của họ ... trông giống như đồ dùng hơi ... :-( –

+0

Bạn sẽ cần phải học cách làm việc với hệ thống ở cấp độ mà trình gỡ rối và các công cụ khác tiếp xúc với bạn, hoặc bạn sẽ –

0

Ngoài ra kiểm tra này:

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

Đây là một dự án mà cố gắng để có thể xuyên biên dịch chương trình viết bằng nhiều ngôn ngữ nguồn với một loạt các ngôn ngữ mục tiêu. Một trong những trường hợp thử nghiệm ban đầu là viết các chương trình trong Java và chạy chúng trên iPhone. Xem video trên trang web là đáng giá.

Với điều đó đã nói, tôi chưa thử. Dự án có vẻ khá beta, và không có nhiều hoạt động trên trang SourceForge của họ.

0

Bạn đã quen với các dấu ngoặc vuông chưa?

Đây là một số brief of its rationale từ quan điểm của tôi. Tôi hy vọng điều này cũng có thể hữu ích.

0

Tôi nghĩ bạn sẽ cảm thấy khá khỏa thân khi nhảy từ IntelliJ sang Xcode. Nhưng đây chỉ là quan điểm về công cụ. Mang thêm quần áo (TextMate + FScript)!

+0

textmate trên xcode để phát triển obj-c? i không đồng ý. xcode là tuyệt vời. Và nó hoàn toàn miễn phí;) – lajos

+0

Tôi chắc chắn nhớ rất nhiều từ IntelliJ. Nhưng, XCode dường như xảy ra một bộ triết lý rất khác đằng sau nó vì vậy tôi sẽ dự trữ phán quyết cho đến khi hiểu những triết lý đó và bắt đầu viết một số ứng dụng không tầm thường bằng cách sử dụng nó. –

Các vấn đề liên quan