25

Tôi đã sử dụng RestKit trong hai năm qua, nhưng gần đây tôi đã bắt đầu nghĩ về việc chuyển đổi từ khung nguyên khối này vì nó dường như thực sự quá mức cần thiết.Chuyển từ RestKit sang AFNetworking thuần túy 2.0

Dưới đây là ưu của tôi cho việc di chuyển về phía trước:

  1. Có nhu cầu lớn trong việc sử dụng NSURLSession cho nền lấy về và RestKit chỉ có chi nhánh thực nghiệm cho chuyển đổi sang AFNetworking 2.0. Không có ngày thực tế khi quá trình chuyển đổi hoàn tất. (Lý do chính)
  2. Không cần hỗ trợ CoreData trong thư viện mạng vì không cần lưu trữ dữ liệu ngoại tuyến đầy đủ chức năng.
  3. Có đau đầu với khái niệm phản hồi/yêu cầu mô tả mới vì chúng không hỗ trợ các tham số khác nhau trong mẫu đường dẫn (ví dụ: tham số mã thông báo truy cập) và không có cách nào để tạo hoạt động yêu cầu đối tượng trong một dòng với bộ mô tả tùy chỉnh. Ở đây tôi mất tính năng của đối tượng quản lý như mặt tiền.

I. Sự mất mát lớn nhất của RestKit cho tôi trong quá trình lập bản đồ đối tượng. Bạn có thể đề xuất các thư viện độc lập mà bạn sử dụng cho thấy chúng linh hoạt và ổn định không?

II. Và khi tôi buồn, tôi cần không có bộ nhớ đầy đủ chức năng nhưng tôi vẫn cần một số hỗ trợ bộ nhớ đệm ở một số nơi. Tôi đã nghe nói rằng NSURLCache đã trở nên hữu ích trong bản phát hành hệ điều hành cuối cùng. Bạn đã sử dụng nó và chiến lược là gì? Nó có trả về các câu trả lời API khi kết nối mạng bị ngắt không?

III. Có ai phải đối mặt với cùng một vấn đề? Bạn đã áp dụng giải pháp nào? Có thể ai đó có thể đưa ra một số lời khuyên về kiến ​​trúc mà người đó sử dụng trong nhiều ứng dụng với AFNetworking thuần túy?

+3

Giả sử bạn đang làm việc với JSON, AFNetworking + [Mantle] (https: // github.com/MantleFramework/Mantle) là một sự kết hợp tốt. –

+0

Thật không may, bạn đã hỏi một số câu hỏi và chúng không phù hợp với Stack Overflow. –

+9

Cảm ơn Mantle. Tại sao chúng không phù hợp? Tôi nghĩ rằng tất cả các chủ đề lập trình có thể được thảo luận ở đây. Câu hỏi của tôi không có câu trả lời nhưng có thể mọi người muốn chia sẻ suy nghĩ về điều này. – yariksmirnov

Trả lời

3

I. Đồng ý với những người đã nhận xét, AFNetworking + Mantle là cách đơn giản và hiệu quả để tương tác với API Restful và thay thế quá trình ánh xạ đối tượng của RestKit mà bạn bỏ lỡ.

II. Để trả lời các yêu cầu hỗ trợ bộ nhớ đệm của bạn phụ thuộc nhiều vào ngữ cảnh. Tuy nhiên, tôi đã tìm thấy các yêu cầu chức năng gần đây của mình để lưu trữ mô hình xem cho màn hình của một bộ điều khiển cụ thể và chỉ lưu vào bộ nhớ cache dữ liệu tham chiếu được API trả lại cho phép tôi giữ logic ứng dụng tương đối đơn giản trong khi mang lại cho người dùng một số tính liên tục. Một thông báo lỗi đơn giản cho các vấn đề kết nối có thể được xử lý một cách cắt ngang.

III. Một suy nghĩ về kiến ​​trúc có liên quan đến khía cạnh này là để đảm bảo rằng các API ứng dụng phụ thuộc vào việc cung cấp dữ liệu theo trải nghiệm ứng dụng. Điều này cho phép ứng dụng của bạn tập trung vào những gì nó tốt (một trải nghiệm người dùng rất trơn tru) và chuyển logic vào API gần hơn với các phụ thuộc API như dữ liệu. Điều này có lợi ích hơn nữa là giảm sự chattiness của ứng dụng.

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