Tôi khá mới đối với Cocoa. Tôi đã nói chuyện với anh trai của tôi, những người đặt cùng một vài ứng dụng iPhone và tôi đã nói điều gì đó về Trình tạo giao diện. Anh ấy nói rằng anh ấy không sử dụng nó - anh ấy xây dựng giao diện người dùng của anh ấy theo lập trình. Anh ta nói theo cách này, anh ta không phải lo lắng về việc tải NIB. Tôi hiểu rằng việc sử dụng Interface Builder thực sự tạo ra các thể hiện của các đối tượng view/window/button/etc được serialized và phải được deserialized khi bạn tải ứng dụng, nhưng là deserialization đắt tiền? Cấp, anh ấy nói về iPhone và tôi đang phát triển trên MacBook Pro, nhưng vẫn vậy.Không sử dụng Trình tạo giao diện có mua cho tôi bất kỳ thứ gì không?
Trả lời
Tôi chưa thấy tranh luận nào về việc sử dụng IB vì lý do hiệu suất và đã sử dụng cả hai phương pháp mà tôi không thấy bất kỳ sự khác biệt nào. Đối với các ứng dụng dữ dội hơn, tôi thường không chỉ sử dụng IB vì khó xây dựng các khung nhìn tùy chỉnh phức tạp với nó. Vì vậy, thực sự tôi có xu hướng sử dụng IB cho các ứng dụng đơn giản hơn và đi với các phương pháp tiếp cận progammatic cho các ứng dụng phức tạp hơn. Cách tiếp cận này rõ ràng là hiệu suất tối ưu hóa là tốt.
Ngay cả đối với các ứng dụng phức tạp, tôi sẽ sử dụng IB để bố trí các bit con của giao diện người dùng trong các khung nhìn đơn giản chứa và sau đó cắm chúng lại với nhau trong giao diện người dùng lớn hơn theo lập trình. – bbum
Nếu cả hai phương pháp đều hữu ích, tôi khuyên bạn nên đi theo cách của Apple; tức là sử dụng Trình tạo giao diện (IB). Bạn sẽ nhận được ít mã hơn để viết (và ít mã hơn ít lỗi hơn, ít bảo trì hơn, ít công việc hơn);), một dự án trừu tượng tốt hơn, bạn sẽ sẵn sàng hơn nhiều để kế thừa các goodies tương lai đến từ Apple (nhớ Cocoa Bindings…), và chẳng mấy chốc bạn cũng sẽ hiệu quả hơn.
Hiểu những gì IB đang làm cho bạn (bằng cách thực hiện phương pháp anh trai của bạn) là rất kiến thức có giá trị; vì vậy nếu bạn có thể làm cả hai trên một số dự án li'l, hãy làm điều đó. (Như những người khác đã nói, đối với UI phức tạp, điều này sẽ cho phép bạn bỏ qua nó ở lần.) Nhưng vẫn còn, cuối cùng, tôi khuyên bạn nên sử dụng IB.
Ồ, và chỉ cần lưu ý/chỉnh sửa nhanh: chúng tôi không nói về việc tuần tự hóa ở đây, mà là về lưu trữ; như IB cũng sẽ lưu trong NIB của bạn các ID và mối quan hệ của các đối tượng của bạn. –
Hoàn toàn học IB! Đó là giá trị nó và sẽ giúp bạn tiết kiệm vô số thời gian trên đường dài. Sau đó sử dụng nó khi bạn có thể. Khi bạn không thể (độ phức tạp cao), bạn luôn có cách tiếp cận có lập trình nhưng bạn sẽ thấy nó dễ dàng hơn để duy trì ngòi (IB) khi ứng dụng của bạn phát triển và già đi.
Mặc dù Interface Builder là một phần mềm cũ, với nguồn gốc của nó trong phát triển NeXTSTEP, nó vẫn là (IMO) một cách tao nhã để tạo ra các khía cạnh trực quan của phần mềm.
Trong số này interview with Aaron Hillegass, ông nói rằng "những người lập trình Cocoa có kinh nghiệm đã đặt rất nhiều thông minh về ứng dụng của họ vào tệp NIB. Kết quả là dự án của họ có ít mã hơn."
Và như chúng ta đều biết: "Less source code is better"
Nó phụ thuộc rất nhiều vào loại ứng dụng. Hệ thống ERP với vài trăm nghìn trang không được xây dựng với Interface Builder, theo như tôi biết.
- 1. Paypal Mua ngay nút mà không cần gửi bất kỳ thứ gì?
- 2. XMLStarlet không chọn bất kỳ thứ gì
- 3. Có bất kỳ thứ gì gọi là chuẩn GUI không?
- 4. Khi nào tôi nên sử dụng Trình tạo giao diện?
- 5. Có thể sử dụng https (máy chủ riêng) mà không phải trả bất kỳ thứ gì không?
- 6. Tôi có thể sử dụng lại màu sắc trong Trình tạo giao diện không?
- 7. Tôi có thể tạo đối tượng cho giao diện không?
- 8. Regex cho bất kỳ thứ gì giữa []
- 9. Sử dụng Trình tạo giao diện cho UITableViews
- 10. Tôi có thể đặt bất kỳ thứ gì bên trong DL/DT/DD không?
- 11. Tiêm phụ thuộc với Guice: Thứ gì đó không có trong bất kỳ hướng dẫn nào
- 12. Có mã "printf" không in bất kỳ thứ gì, được sử dụng để bỏ qua một tham số không?
- 13. Điều gì đang sử dụng URL RESTful mua cho tôi?
- 14. Các phương thức không có lớp trong Python có hữu ích cho bất kỳ thứ gì không?
- 15. Có bất kỳ thứ gì như NSPredicateEditor tồn tại cho iOS không?
- 16. Log4Net StringMatchFilter không lọc bất kỳ thứ gì
- 17. Bất kỳ tài liệu nào tốt cho giao diện cblas?
- 18. Bất kỳ SDK Scala hoặc giao diện nào cho AWS?
- 19. Trong c + + có bất kỳ Sự kiện/đại biểu/giao diện/thông báo nào! có gì không?
- 20. Thứ tự tab trong trình tạo giao diện?
- 21. Trường hợp sử dụng cho Phân đoạn không có giao diện người dùng là gì?
- 22. Bất kỳ cách nào để sử dụng HTML làm giao diện cho một chương trình C/C++?
- 23. Chương trình 'có` được sử dụng cho bất kỳ điều gì đáng kể?
- 24. Trình tạo giao diện cho hướng dẫn dành cho iPhone
- 25. Tôi có thể di chuyển các hạn chế tự động trong Trình tạo giao diện không?
- 26. Tôi có thể lập trình cho Android bằng bất kỳ ngôn ngữ JVM nào không?
- 27. Tôi có nên sử dụng Perl/Tk, Tcl :: Tk hoặc Tkx cho giao diện Perl không?
- 28. Trình tạo giao diện có sử dụng phương thức -init để khởi tạo bộ điều khiển chế độ xem không?
- 29. CSS có bất kỳ thứ gì giống như jQuery: has()?
- 30. jQuery có hữu ích trên bất kỳ thứ gì ngoài tài liệu không?
Anh trai của bạn đang lãng phí thời gian của mình. Sử dụng IB cho đến khi nó không làm những gì bạn cần. – bbum