31/08/2018, 15:21

Là 1 lập trình viên, đây chính là lý do tôi không thích iOS

Bài viết cung cấp thêm 1 góc nhìn đa chiều cho cộng đồng dev iOS. Trong vai trò người dùng, iOS là 1 platform tuyệt vời. Tuy có hơi nhàm chán và nghiêm ngặt nhưng lại đẹp và mạnh mẽ (hầu hết thời điểm là như vậy) Nhưng khi bạn là 1 dev thì mọi thứ lại rất khác. Giải quyết iOS (và ...

Bài viết cung cấp thêm 1 góc nhìn đa chiều cho cộng đồng dev iOS.

Trong vai trò người dùng, iOS là 1 platform tuyệt vời. Tuy có hơi nhàm chán và nghiêm ngặt nhưng lại đẹp và mạnh mẽ (hầu hết thời điểm là như vậy)

Nhưng khi bạn là 1 dev thì mọi thứ lại rất khác. Giải quyết iOS (và Apple nói chung) cũng giống như cố gắng nói chuyện với 1 con robot hoang tưởng trong vai trò sĩ quan biên giới Xô Viết trong tác phẩm của Kafka.

Safari của iOS là 1 đống hỗn độn

Đây là 1 trong những trình duyệt đáng sợ mà tôi vinh dự được làm việc cùng kể từ khi mình bắt đầu lập trình web vào cuối những năm 90s. Tôi đã tổn thất rất nhiều hacks cần phải thực thi để code chạy được trong Safari của iOS hoặc chính web views của nó. Đây là điều khó lòng chấp nhận trong 1 thế giới tuân thủ các chuẩn mực như năm 2016.

Chẳng hạn, bạn không thể định rõ chiều cao của 1 <iframe>. Trong khi bạn có thể làm điều này ở trình duyệt bất kì, kể cả IE6 – 1 trong những trình duyệt bị ghét nhất trên thế giới, bởi vì <iframe> tag đã ra đời từ năm 1999. Vấn đề này vẫn còn tiếp diễn từ năm 2011.

Bạn có thể thắc mắc: Tại sao Apple không cho phép cơ chế trình duyệt khác chạy trên iOS? Hoặc tại sao Apple lại không đầu tư nhiều nguồn lực hơn vào dự án Webkit như Google đã làm với Chromium?

Bạn không thể (dễ dàng) test các iOS vesions cũ

Một ngày nào đó, tôi muốn test simulator với iOS 7 & kết quả là? Bạn không thể. Tất nhiên ở khía cạnh nào đó thì vẫn được, nhưng bạn phải tải phiên bản Xcode cũ, không được hỗ trợ, chỉ chạy trên Mavericks.

Vì vậy, hoặc là bạn còn giữ macs cũ, hoặc là bạn còn giữ các thiết bị iOS cũ và cầu nguyện Apple không phá mọi thứ thêm nữa. Chính sách của Apple là kiên định, không quan tâm lắm đến cảm nhận của người ngoài. Nếu bạn không thể upgrade thiết bị của mình, bạn là người buồn. Hãy mua 1 thiết bị mới nếu bạn muốn có quyền sở hữu những ứng dụng không dính bug.

Chứng nhận và các hồ sơ dự phòng

Giải quyết vấn đề giấy chứng nhận iOS rất tẻ nhạt, quan liêu và khó hiểu. Thỉnh thoảng, kể cả docs của Apple, Xcode và Member Center cũng không thể giải quyết những gi đang xảy ra.

Gần đây, tôi đã mất 2 ngày để cố nhận diện tại sao mình lại không thể tạo 1 giấy chứng nhận nào đó và cuối cùng cũng nhận ra câu trả lời trong 1 số tài liệu của Mozilla. Xcode chỉ cung cấp 1 button xám và không ai trả lời trong forum lập trình viên của Apple.

Là 1 developer, bạn không nên cần sự cho phép của Apple để chạy code trên các thiết bị của mình, cũng như hầu hết các platform bất kì trên thế giới, kể cả macOS.

iOS AppStore

AppStore cũng là nguồn cơn bực dọc. Ví dụ, cách đây vài giờ, 1 ứng dụng của tôi đang lập trình đã bị từ chối vì 1 ai đó ở Apple không thích screenshots của tôi.

“Chúng tôi nhận thấy screenshot(s) không phản ánh đầy đủ ứng dụng của bạn khi sử dụng”

Rõ ràng là tôi đã tải lên những screenshots của ứng dụng mà không có bất kì sự thay đổi nào. Nếu Apple muốn nhiều screenshots hơn hoặc họ nghĩ là chúng không đẹp, vậy tại sao Apple lại không nói như thế? Không, Bạn xứng đáng nhận 1 câu trả lời thực sự hơn 1 câu tự động. Trong khi đó, Apple tốn mất 1 tuần để cho biết liệu Apple có thích screenshots của bạn hay không. Chúc bạn may mắn khi lên 1 kế hoạch ra mắt ứng dụng.

Tồi tệ hơn là những gì xảy ra với ứng dụng Dash iOS. Apple nhận ra 1 dev đứng sau 1 ứng dụng thành công đã gian lận trong phần review và quyết định chấm dứt ứng dụng của lập trình viên đó.

“Quyết định của Apple là cuối cùng và không thể kháng cáo”

Dĩ nhiên, chúng ta đều cho rằng Apple hoàn hảo và không bao giờ mắc lỗi lầm. Vậy tại sao bạn lại muốn kháng cáo việc như thế?

Điều tồi tệ nhất

Apple không chỉ thúc giục bạn compile trên 1 máy tính Apple thực sự đắt đỏ mà bạn còn phải trả tiền để có được quyền lợi của 1 lập trình viên iOS. Một ngày nào đó, khi Apple cho phép chương trình iOS developer miễn phí đến tất cả mọi người và Apple sẽ nhận được tràng pháo tay lớn. Thật là cử chỉ cao thượng!

Trong khi đó, bạn có thể lập trình miễn phí hầu hết mọi nền tảng trên thế giới, và thậm chí còn compile được từ nền tảng bất kì, như compile 1 ứng dụng Windows trên macOS hoặc 1 ứng dụng Android trên Linux.

Lập trình iOS có nhiều rào cản như thế. Không biết có dev nào nản lòng muốn bỏ cuộc không?

Nguồn: IDE Academy via Medium

0