2011-08-11 27 views
15

Tôi đến từ thế giới java, nơi các tập tin/lớp học nên được bố trí tốt trong các gói/thư mục trong sự hiểu biết của tôi.Có một "phương pháp hay nhất" cho Tổ chức trong Xcode 4 không?

Thực tiễn tốt nhất trong Xcode4 là gì? Tôi chưa thể tìm được hướng dẫn của Apple cho điều này. Nếu bất cứ ai có thể đẩy tôi đến đúng tài liệu, tôi sẽ rất vui.

Trong trường hợp không có tài liệu: cách tốt nhất để làm như vậy là gì? Tôi thấy nó hơi lạ khi có tất cả các lớp trong một thư mục dự án - bên trong khung nhìn Xcode hoặc cấu trúc tệp (cấu trúc filestructure lạ dường như không bằng cấu trúc hình ảnh trong Xcode). Tất nhiên dự án sẽ được kiểm soát phiên bản (trên GitHub).

Rất cám ơn trước!

+4

đúng, điều hướng dự án trong Xcode 4 không phải là cấu trúc tệp thực tế. Tôi nghĩ rằng ý tưởng là để bạn sắp xếp các tập tin của bạn tuy nhiên bạn muốn trong navigator dự án và để cho Xcode lo lắng về hệ thống tập tin thực tế. Cách bạn tham chiếu các tệp trong mã luôn luôn chỉ sử dụng tên tệp mà không có bất kỳ đường dẫn hệ thống tệp nào. Tôi giả sử trình biên dịch làm phẳng cấu trúc tại thời gian biên dịch hoặc một cái gì đó. Đối với các phương pháp hay nhất ... Tôi không chắc liệu có bất kỳ nguyên tắc nào của Nhà phát triển Apple hay không. Tôi chưa bao giờ thấy chúng, đi với những gì tốt nhất cho dự án của bạn. – mattacular

+0

Nhờ Moshe đặc biệt là để chỉnh sửa chủ đề, và cũng cho tất cả những người khác cho câu trả lời tuyệt vời của bạn! Rất, rất hữu ích. Có vẻ như Xcode hoạt động giống như iTunes khi làm việc với các tệp: các tệp có thể ở bất cứ đâu trên đĩa, nhưng bạn có thể sắp xếp chúng theo cách bạn muốn trong Xcode. – brainray

+0

Ngoài ra, hãy thử và chống lại sự cám dỗ để xả rác mã với C# ifdef's để tránh tái cấu trúc các mô-đun mã hoặc dự án. Bạn tạo mã càng phức tạp, càng có nhiều khả năng ai đó sẽ vượt qua nó và phá vỡ điều gì đó khác .. đặc biệt là dưới áp lực thời gian với rất nhiều phiền nhiễu. –

Trả lời

9

Trước hết, tôi muốn có các danh mục bộ điều khiển hỏa hoạn và các lớp liên quan được nhóm lại. Nhưng không chỉ trong các nhóm được tạo trong XCode, trong các thư mục thực. Vì vậy, khi tạo một nhóm thay vì tạo nó trong XCode, hãy tạo nó trong Finder trước, sau đó kéo thư mục đó vào XCode và tạo nó thành một nhóm. Bây giờ khi bạn thêm các tập tin mới trong nhóm đó họ cũng sẽ đi vào thư mục đó trên đĩa.

Vài suy nghĩ ngẫu nhiên khác:

Naming: vì bạn không có không gian tên, bạn phải thêm tiền tố lớp học của bạn với một tiền tố hai hoặc ba chữ (Apple khuyến cáo ba). Làm điều này ngay cả khi nó có vẻ lạ lúc đầu.

Tài nguyên: Các dự án mặc định muốn tách các tệp xib khỏi bộ điều khiển chế độ xem. Trong một ứng dụng có kích thước bất kỳ, tôi rất thích giữ các bộ điều khiển xem và các tệp xib được nhóm lại ở một vị trí. Bạn thậm chí có thể làm hình ảnh theo cách này mặc dù nói chung có rất ít nó dễ dàng hơn chỉ để nhóm những người ở một nơi.

Công cụ ứng dụng: Tôi thích nhóm tất cả các tệp ứng dụng khác nhau cụ thể (đại biểu ứng dụng, info.plist, tệp pch, main.m, v.v.) trong một nhóm Ứng dụng ở đầu danh sách để làm cho các bit dễ dàng để tìm.

+0

Rất cám ơn Kendall, được nhiều người đánh giá cao. – brainray

+0

Bạn đề cập đến, trước tiên bạn tạo một nhóm trong Trình tìm kiếm, sau đó trong Xcode. Nhưng whats cách tốt nhất để di chuyển các tập tin sau đó? Làm điều đó trong các kết quả tìm kiếm trong một câu hỏi "resave file" trong firebox của Xcode. Nếu sau đó tôi lưu lại vào thư mục mà tôi đã đặt tệp trong Trình tìm kiếm, tôi phải ghi đè lên tệp (vì nó đã tồn tại ở đó). Điều này hoạt động, nhưng có vẻ hơi không thích hợp. Có cách nào tốt hơn không? Cảm ơn một lần nữa! – brainray

+0

Tôi thường xóa nó khỏi XCode (chỉ xóa tham chiếu), di chuyển các tệp trong Trình tìm kiếm, sau đó kéo chúng trở lại XCode. Đó là một chút nhanh hơn và tránh các câu hỏi tập tin resave. –

2

Tôi chưa từng gặp bất kỳ điều gì làm/không có khi nói đến cách bạn tổ chức dự án của mình trong XCode. Tôi có thể sai, nhưng tôi tin rằng bất kỳ thư mục và bố trí bạn tạo ra trên của riêng bạn là hoàn toàn tước đi lúc biên dịch anyway.

Ví dụ: nếu bạn có hình ảnh được lồng vào Tài nguyên/Hình ảnh/Nền/image.png, bạn vẫn chỉ tham chiếu tên tệp .png chứ không phải cấu trúc thư mục.

Tôi sẽ phải nói rằng bạn vẫn có thể tổ chức dự án của mình khi bạn thấy phù hợp. Mượn một số từ java và đặt nó ra bất cứ điều gì làm việc tốt nhất.

7

Trước hết, hãy xem cấu trúc dự án mặc định. Mặc dù không hoàn hảo nhưng có một số "Nhóm" mặc định trong Xcode. Sử dụng chúng như một hướng dẫn chung. (Như bạn đã đề cập, Nhóm không phải là thư mục hệ thống tệp, mặc dù khi bạn nhập tài nguyên, bạn sẽ được nhắc với tùy chọn tạo nhóm cho thư mục.)

Mặc dù không có nhiều quy ước chính thức về cấu trúc tệp bạn có thể làm, như tôi làm, để làm xước cái tổ chức đó. Tôi tạo một vài thư mục con trong thư mục dự án của mình trên đĩa. Dưới đây là một số trong số họ:

  • Audio: Tập tin âm thanh cũng có thể nhận được nhóm của mình.

  • Thư viện bên ngoài: Nếu tôi nhập mã của người khác, tôi sẽ tạo nhóm gọi là "thư viện" và sau đó là một nhóm con cho mỗi thư viện.

  • Hình ảnh: Trong đó, bạn có thể tạo thư mục con/nhóm con nếu muốn. (Một cho các biểu tượng, một cho menu chính, vv)

  • Đối tượng quản lý: Khi tôi sử dụng Core Data trong các dự án của tôi, tôi sẽ thường xuyên tạo ra các lớp con thông qua các công cụ mô hình Xcode của. Tôi thích giữ những người trong một nhóm riêng biệt và một thư mục riêng biệt.

  • Xem bộ điều khiển: Tùy thuộc vào dự án, tôi có thể nhóm các bộ điều khiển chế độ xem khác nhau. Ví dụ: tôi có thể giữ tất cả "người biên tập" và "người xem" của tôi trong các nhóm riêng biệt.

Cuối cùng, Nhóm giúp quản lý dự án của bạn dễ dàng hơn và Thư mục giúp việc quản lý tệp dễ dàng hơn. Nó hoàn toàn tùy thuộc vào bạn làm thế nào để làm điều này. Như Bill Brasky chỉ ra, tại thời điểm biên dịch, không có tổ chức nào thực sự tạo ra sự khác biệt.(Nếu bạn muốn phát điên, hãy xem màn hình "Xây dựng giai đoạn" trong Xcode 4. Giai đoạn sao chép là một mớ hỗn độn của tất cả các tệp liên quan của bạn.)

1

Thực sự theo ý thích của bạn. Trình tổ chức không phản ánh cấu trúc tệp thực tế. Cuối cùng, các tệp nguồn vừa được biên dịch thành một tệp nhị phân và tất cả các tài nguyên đều được đưa vào thư mục "Tài nguyên" trong gói cho ứng dụng của bạn. Tôi chỉ mở rộng thiết lập mặc định — Tôi đặt Tài nguyên vào thư mục tài nguyên, được nhóm lại khi cần thiết. Trong một trò chơi, tôi có thể có các nhóm cho các biểu tượng, hình nền, Sprites, Audio, và những người khác. Đối với một ứng dụng năng suất, tôi chỉ có thể có Textures và Icons. Tất cả các thư viện và khung bên ngoài đều đi vào nhóm Frameworks (Tôi hiếm khi bận tâm đến việc tổ chức chúng, trừ khi một số thư viện như Dropbox SDK hoặc GData đã có trong một nhóm gọn gàng. Thường thì nó chỉ là một tập tin). Trong nhóm Sources, tôi có thể nhóm theo các khung nhìn chức năng, chẳng hạn như Thư viện tài liệu, Chế độ xem chỉnh sửa hoặc Tiện ích (cho chương trình chỉnh sửa tài liệu) hoặc Menu chính và Gameplay cho trò chơi. Đối với một dự án nhỏ hơn, tôi có thể nhóm bởi bộ điều khiển (chia thành bộ điều khiển xem và bộ điều khiển mô hình nếu cần thiết), mô hình và chế độ xem. Nếu bạn đến từ một dự án Java, không có gì sai với việc giữ cho tổ chức hiện tại của bạn; trong thực tế, theo mặc định khi bạn thêm vào Xcode, nó sẽ tạo nhóm mới theo thư mục trên đĩa.

Mọi thứ đều được làm phẳng trong gói cuối cùng, và tổ chức của bạn không ảnh hưởng đến hệ thống tệp. Sử dụng bất cứ điều gì là cần thiết cho dự án - không sử dụng cấu trúc tương tự cho một bản sao Tetris như bạn sẽ cho một ... ứng dụng y tế chuyên nghiệp hoặc một cái gì đó.

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