VnReview
Hà Nội

Vì sao iCloud không tốt như Apple hứa hẹn

Khi Apple cho ra mắt iCloud, nó rõ ràng được kỳ vọng sẽ loại bỏ các điều chỉnh và những file hệ thống để tiến tới một giải pháp đồng bộ tự động hóa. Steve Jobs đã cam kết là sẽ làm tốt hơn so với những gì ông đã làm với MobileMe – một dịch vụ web thất bại của Apple ra đời một vài năm trước. Với iCloud, tất cả những thay đổi bạn thực hiện với dữ liệu trên máy tính sẽ hiện ngay trên iPhone và ngược lại

Vậy nhưng hiện tại, sự thất vọng ngày càng tăng khi các nhà phát triển đối mặt với sự bất lực của Apple trong việc đưa ra khả năng tích hợp tốt hơn cho iCloud. Dưới đây là những gì các lập trình viên phản ánh về iCloud, được ghi lại bởi biên tập viên của The Verge.

Vì sao iCloud không thể hoạt động như Apple hứa hẹn

Steve Jobs giới thiệu iCloud vào năm 2011

Có lẽ hơn bất cứ ứng dụng nào khác của Apple, iCloud cần phải hoạt động một cách đơn giản và không bao giờ lỗi vặt. "Đơn giản là nó hoạt động tốt". Jobs thốt lên khi ông lần đầu tiên giới thiệu ứng dụng vào năm 2011, "Mọi thứ đều tự động hoàn toàn, và rất dễ dàng để đưa những ứng dụng của bạn vào trong hệ thống lưu trữ của Apple".

Gần hai năm sau, người dùng mong muốn có nhiều ứng dụng bên thứ ba được tích hợp vào iCloud hơn, nhưng điều đó thật sự rất khó khăn. "iCloud không hoạt động như chúng tôi mong muốn" – theo Daniel Pasco, CEO của xưởng phát triển Black Pixel – "Chúng tôi đã dành rất nhiều thời gian để giải quyết vấn đề này, nhưng việc đồng bộ hóa iCloud và Core Data có những vấn đề mà chúng tôi không thể giải quyết".

Đám mây không hoạt động

Đầu tiên, phải khẳng định iCloud có thể đem lại khả năng đồng bộ dữ liệu rất tốt, nếu như sử dụng chế độ đồng bộ văn bản. Không có gì phải nghi ngờ, iCloud là một công cụ hữu hiệu để sao lưu trực tiếp dữ liệu" Jumsoft, nhà phát triển của ứng dụng Money phát biểu, khiđề cập tới việc khả năng đồng bộ hóa dựa trên phương thức đồng bộ văn bản của iCloud đã được tận dụng trong những ứng dụng như Clear và Day One.

Không may là, rất nhiều ứng dụng muốn đồng bộ các file đòi hỏi phải sử dụng tới những dữ liệu với những phần phụ thuộc lẫn nhau. Đây là lúc các lập trình viên phải đụng tới giải pháp đồng bộ Core Data của iCloud, một công nghệ đang làm khó cho những người làm ứng dụng.

Vì sao iCloud không thể hoạt động như Apple hứa hẹn

Theo Apple thì iCloud có thể tích hợp với ứng dụng, và mọi chuyện đều diễn ra một cách tự động. Nhưng thực tế lại không được suôn sẻ như vậy

;"Tôi đã viết đi viết lại các đoạn mã để tích hợp cho iCloud với hy vọng tìm ra được lời giải" – Lập trình viên Michael Göbel viết trên blog – "Nhưng rõ ràng là Apple không làm điều tương tự".

Vấn đề là Apple đã thất bại trong việc cải tiến khả năng đồng bộ hóa dữ liệu ("Core Data") của iCloud, trong khi vẫn tiếp tục quảng cáo và tiếp thị iCloud như một giải pháp toàn diện.

Một lập trình viên nổi tiếng yêu cầu được giấu tên chia sẻ:

"Những hứa hẹn về khả năng hỗ trợ Core Data của iCloud là nó sẽ giải quyết tất cả các vấn đề nan giải trong việc đồng bộ hóa dữ liệu bằng cách chia nhỏ từng thay đổi thành các đoạn. Tuy nhiên điều đó đã không xảy ra".

iCloud rõ ràng là đã bế tắc trong việc xử lý những dữ liệu mà lẽ ra phải được giải quyết một cách dễ dàng. Từ góc nhìn của người dùng, điều đó có nghĩa là bất chấp những cố gắng của lập trình viên, dữ liệu vẫn biến mất, hoặc thiết bị và dữ liệu ngừng đồng bộ với nhau.

 "Rất nhiều trường hợp như vậy phải mất hàng giờ để giải quyết và đôi khi hủy hoại vĩnh viễn tài khoản của bạn. Apple đã bất lực trong việc trợ giúp các khách hàng gặp phải vấn đề này". Một lập trình viên khác chia sẻ.  Gỡ bỏ Core Data ra khỏi ứng dụng "sẽ làm cho nó đơn giản hơn rất nhiều", Jumsoft nói.

Rất nhiều rắc rối đã xảy ra vì sự thật là Apple đã không tính tới những trường hợp mà người dùng làm những việc ngoài dự liệu, như thoát một tài khoản Apple và đăng nhập bằng một tài khoản khác.

"Làm sao chúng ta có thể xử lý trường hợp một người dùng thoát khỏi iCloud khi đang chạy một ứng dụng và sau đó đăng nhập lại và chạy tiếp ứng dụng?" – một lập trình viên đã viết như vậy trên diễn đàn hỗ trợ của Apple. Strezaviết trên blog: "Thực tế là việc đồng bộ hóa dữ liệu rất khó nhọc, và chất lượng đường truyền không phải lúc nào cũng đảm bảo. Bạn phải viết rất nhiều đoạn mã phức tạp để xử lý vấn đề và cập nhật".

Cách duy nhất để giải quyết những vấn để dạng này là trả lời từng email hỗ trợ, và trong một vài trường hợp phải trợ giúp người dùng khôi phục lại dữ liệu iCloud bằng tay, một việc rất tốn thời gian đối với các lập trình viên.

Sai sót của iCloud dẫn tới việc hỏng file hoặc mất dữ liệu đã làm lung lay niềm tin của khách hàng. Diễn đàn của Apple đang tràn ngập những lời than phiền về việc đồng bộ hóa với iCloud. Lập trình viên Brian Arnold chia sẻ trên diễn đàn hỗ trợ của Apple:

"Tôi cũng đã từng phải nhận những lời phàn nàn của khách hàng và những đánh giá một sao cho ứng dụng. Tuy nhiên tôi chưa nhận được câu trả lời thỏa đáng cho việc tại sao những lỗi này lại xuất hiện, hoặc tôi cần làm gì để giải quyết chúng".

Một lập trình viên khác chia sẻ với The Verge: "iCloud với Core Data là cơn ác mộng tồi tệ nhất của một lập trình viên. Nó gây bực bội, tức giận và tiêu tốn hàng trăm giờ làm việc".

Vì sao iCloud không thể hoạt động như Apple hứa hẹn

iCloud đem lại sự tiện lợi cho người dùng, nhưng đối với nhiều lập trình viên thì đó lại là ác mộng

Sau khi xem quảng cáo tuyệt vời của Apple, người dùng muốn ứng dụng phải được tích hợp vào iCloud, nhưng vấn đề nan giải là nhà phát triển không thể thực hiện được điều đó.

"Một điều mấu chốt cần phải hiểu là người dùng biết về chức năng của iCloud phần lớn dựa trên những ứng dụng khôngsử dụng Core Data để đồng bộ hóa." - Greg Pierce, lập trình viên của AgileTortoise, đã nói với tôi như vậy.

Khi Apple sử dụng iCloud, họ hầu như không cần dùng đến Core Data để đồng bộ hóa thông tin. Ví dụ, những ứng dụng như Keynote sử dụng cách thức đồng bộ văn bản đơn giản hơn rất nhiều. Keynote cần phải hoạt động tốt, vì thế Apple đã thực hiện rất kỹ chức năng đồng bộ văn bản.

Và đến khi cần phải sử dụng Core Data, thậm chí phần mềm của Apple cũng chẳng khá hơn chút nào so với những lập trình viên bên thứ ba. Trailers  - ứng dụng đơn giản của Apple sử dụng Core Data để đồng bộ - đã không thể lưu lại được các mục ưa thích của người dùng. Một lập trình viên đã nói với tôi: "Những công nghệ gì được chính Apple sử dụng mới là những thứ tốt nhất".

Apple vẫn giữ yên lặng

Lập trình viên Justin Driscoll đặt câu hỏi trên diễn đàn hỗ trợ của Apple: "Có ai ở Apple có thể đưa ra bình luận về tình thế hiện giờ không?  Tôi đã trả tiền và lên kế hoạch chạy chương trình quảng cáo cho ứng dụng vào ngày mai, vậy mà giờ có vẻ tôi sẽ phải gỡ ứng dụng đó khỏi danh sách bán hàng". Apple đã không hề giúp đỡ những lập trình viên gặp khó khăn với việc đồng bộ iCloud, mà thay vào đó họ lại tập trung chuyển hướng những yêu cầu trợ giúp về phía bản cập nhật tiếp theo của iOS hoặc Mac.

Các vấn đề đã được nêu ra một năm trước tại hội nghị các nhà phát triển toàn cầu của Apple (WWDC), khi các lập trình viên xếp hàng dài tại bàn hỗ trợ của Apple với hy vọng nhận được câu trả lời cho vấn đề tại sao iCloud lại khó tích hợp đến vậy. Tài liệu hướng dẫn của Apple về việc tích hợp iCloud rất ít, vì vậy các lập trình viên muốn nhận được câu trả lời trực tiếp từ Apple. "Có thể bạn từng nghĩ rằng tích hợp iCloud với Core Data sẽ dễ dàng như đi chơi. Không may là vào lúc này thực tế lại trái ngược hoàn toàn".

"Hãy cố chờ tới phiên bản iOS 6" – Apple đã phát biểu như vậy tại WWDC. Đồng thời công ty cũng đưa ra một đoạn mã mẫu mà lập trình viên có thể sử dụng để đông bộ hóa Core Data, nhưng nó vẫn chưa hoàn thiện. "Rõ ràng là mọi chuyện đã khá hơn khi lên iOS 6, nhưng thế vẫn chưa đủ" – một lập trình viên đã nói như vậy. Vấn đề một phần là do tại Apple chỉ có bốn người để lãnh đạo dự án Core Data vào thời điểm này năm ngoái, một nguồn tin thân cận với Apple cho biết. Công ty không hề tỏ vẻ gì là muốn sửa lỗi đồng bộ hóa Core Data.

Apple từ chối bình luận về thông tin này.

Chẳng thiếu giải pháp, nhưng vẫn phải dùng iCloud

Rất nhiều lập trình viên gạo cội đã rút ra bài học và từ bỏ việc đồng bộ hóa iCloud với Core Data. Một lập trình viên từng có ứng dụng bán rất chạy trên iPhone và Mac chia sẻ:

"Cuối cùng, khi chúng ta nhìn vào sự kết hợp iCloud + Core Data (cho ứng dụng của mình), đó hoàn toàn là một việc làm chẳng đi đến đâu. Một vài vấn đề với iCloud Core Data về mặt lý thuyết là không thể giải quyết được và một vài vấn đề khác chỉ là những lỗi hiển nhiên trong quá trình hoàn thiện".

Nhiều phương án đồng bộ dữ liệu cũng đã được đưa ra, nhưng không có cái nào đạt được mục tiêu mà iCloud đã đề ra hai năm trước: tạo ra một giải pháp đồng bộ hóa liền mạch "tự động làm việc" mà không cần đăng nhập hay cài đặt thêm bất cứ cái gì.

Vậy còn Dropbox? Nó được xem là giải pháp phổ biến nhất, nhưng vẫn không thể thay thế iCloud. Thứ nhất, tích hợp Dropbox nghĩa là yêu cầu người dùng đăng nhập và thêm một lần cho phép ứng dụng hoạt động.

"Tôi muốn hỗ trợ iCloud mặc dù tôi thích Dropbox, bời vì như vậy sẽ bớt đi một bước cho đối với những người không muốn phải có một tài khoản Dropbox chỉ để đồng bộ dữ liệu". – Justin Williams, lập trình viên của Elements phát biểu.

Thứ hai, Dropbox sử dụng loại đồng bộ văn bản. Nếu bạn đã bao giờ thử đồng bộ một thư viện iPhoto với Dropbox, bạn sẽ biết rằng Dropbox cũng gặp bế tắc. Như Jumsoft và một vài nhà phát triển đã xác nhận, đồng bộ văn bản không phải là điều mà họ theo đuổi: viễn cảnh trong mơ là có được cơ sở dữ liệu giữa hai hoặc nhiều thiết bị được đồng bộ hoàn toàn. Thật ra, chưa ai có thể làm tốt công việc trong không gian iOS, vì thế iCloud vẫn là một thứ để hy vọng.

Lý do cuối cùng khiến chúng ta phải mệt mỏi dành hàng giờ cho iCloud? Apple thích giới thiệu những ứng dụng có sử dụng giải pháp của họ, như Game Center hay đồng bộ iCloud. "Nếu bạn không thể kết hợp iCloud vào kho ứng dụng của mình, Apple sẽ không bao giờ giới thiệu nó" . Đối với các lập trình viên, "được giới thiệu" có thể có ý nghĩa quyết định đối với sự thành công của ứng dụng.

Vẫn phải chờ đợi

Vì sao iCloud không thể hoạt động như Apple hứa hẹn

Các lập trình viên liệu có thể tìm được câu trả lời ở WWDC 2013?

WWDC 2013 đang gần kề, và vẫn còn hàng tá những vấn đề đồng bộ cho iCloud chưa được giải quyết. Vậy thì những lỗi này có thể khắc phục được?

"Cách tiếp cận của Apple rất mới lạ và thú vị, và có thể họ sẽ cho ra đời một phiên bản hoàn chỉnh – nhưng chức năng của nó sẽ khác nhiều so với những giải pháp đồng bộ thông dụng, ở đó sẽ không có một máy chủ trung tâm nào trong ‘đám mây'. Vì vậy quá trình hoàn thiện sẽ rất dễ gặp trục trặc, và tôi không chắc nó có thể mở rộng cho những gói dữ liệu lớn hơn". Theo cách nói của những người không chuyên thì "quá khó để giữ được cơ sở dữ liệu đồng bộ với vô vàn những phần độc lập".

"Hy vọng duy nhất của chúng tôi lúc này là đưa những lỗi này vào hố đen là hệ thống phát hiện lỗi của Apple và mong rằng nó sẽ sửa được chúng",một lập trình viên hàng đầu khác của iOS nói.

Sẽ thật tuyệt nếu Apple cho thấy họ đang cố gắng cải thiện Core Data, nhưng tôi được biết rằng không hề có sự tương tác nào giữa hãng với các nhà phát triển về việc này. Chỉ có vài lần trao đổi hiếm hoi tại WWDC hay trên đường phố giữa các lập trình viên và nhân viên của Apple, những người biết về vấn đề nhưng không đưa ra bất kỳ thời hạn chót nào cho một giải pháp.

"Tôi muốn Apple nói với chúng ta rằng họ sẽ giải quyết mọi vấn đề với iCloud ở phiên bản iOS 7 và chúng ta cuối cùng cũng có thế sử dụng nó mà không gặp khó khăn gì sau hai năm nữa, nhưng tôi sẽ không hy vọng quá nhiều" – một lập trình viên phát biểu. Một người khác đã kiên quyết hỗ trợ iCloud trong một thời gian dài nói rằng, "Nếu Apple không sửa lỗi ở phiên bản iOS 7, chúng ta sẽ phải từ bỏ thôi".

Anh Minh

Chủ đề khác