Tôi có một ứng dụng yêu cầu internet để đồng bộ hóa một dịch vụ web với một db dữ liệu lõi cục bộ. Sau đó, tìm nạp db cục bộ được sử dụng để cư trú các đối tượng khác nhau cho một MapView và một TableView trong một thanh tabbarcontroller. Im nhìn vào những 2 kịch bản:Quy trình làm việc hiệu quả nhất cho ứng dụng iOS này là gì?
Ưu điểm chính của "A" là tôi không cần phải tải trước các ứng dụng với một cơ sở dữ liệu, mặc dù một db nhỏ (khoảng 100 hồ sơ). Vấn đề là nó bị phức tạp. Nếu không có kết nối internet, trong MapView, người dùng sẽ thấy một bản đồ nhưng refreshButton bị vô hiệu hóa. Vì vậy, đó không phải là một vấn đề. Nhưng người dùng vẫn có thể vào xem bảng và anh ta sẽ thấy một cái bàn trống.
Ưu điểm chính của "B" là với db được tải trước, ứng dụng sẽ luôn có sẵn nguồn dữ liệu để vẽ và liệt kê. Tôi không thực sự biết làm thế nào để tải trước các ứng dụng với một db mặc dù.
Tôi muốn đi tuyến đầu tiên, "A". Câu hỏi chính của tôi là, kể từ bây giờ tôi vô hiệu hóa refreshButton trên MapView để nó chỉ hoạt động khi dữ liệu được nhận từ web ... mà sortArray trống khi khởi chạy. Vì vậy, nếu người dùng truy cập vào TableVC, nó sẽ trống. Khi nó đứng, người sử dụng đầu tiên phải bấm vào nút làm mới trước khi đi đến tableview.
Cách hiệu quả nhất để giải quyết vấn đề này là gì?
+1 giải thích hay. – Dilip
Cạnh trường hợp, họ là một nỗi đau để mã cho, nhưng họ rất quan trọng đối với kinh nghiệm người dùng. Tôi nghĩ "A" là lựa chọn tốt nhất của bạn (ý kiến của tôi). Bạn có thể chặn việc sử dụng toàn bộ ứng dụng bằng "Bạn cần tải xuống dữ liệu, nhận kết nối internet" nếu bạn không có dữ liệu ban đầu + không có kết nối. Bạn có thể viết mã để xử lý kịch bản "không có dữ liệu" trên mọi màn hình mà người dùng có thể truy cập khi họ không có dữ liệu. Hầu hết các bảng đều chứa một trường hợp "không có dữ liệu" để thêm một hàng thông báo cho người dùng. Câu trả lời hay nhất tùy thuộc vào các trường hợp sử dụng và các yêu cầu của bạn và thường thiên vị theo sở thích cá nhân. – DBD
Cảm ơn Dilip, tôi thực sự muốn có một mô-đun xcode để xử lý logic, để cho bạn thấy nó là gì theo mã của bạn bởi vì Im rất trực quan. DBD, mặc dù tôi nên tìm hiểu làm thế nào để mã cho các kịch bản khởi động đầu tiên và như vậy, tôi nghĩ rằng người dùng cần phải có kết nối internet cần thiết. Tôi không chắc chắn về việc chặn toàn bộ ứng dụng nhưng ít nhất là "không có dữ liệu". Mặc dù, đó là bản chất giống như chặn toàn bộ ứng dụng bởi vì họ sẽ không thấy gì ngoài vỏ. Sau đó, một lần nữa, trong điều kiện UX, tốt hơn là để cho họ thấy một cái gì đó. Vì vậy, Im stumped: (Tôi đoán tôi cần phải đi theo con đường khó khăn – marciokoko