Các lập trình viên di động vẫn hay nói đùa nhau là người dùng iOS dễ chịu bao nhiêu thì lập trình viên iOS lại gặp khó chịu bấy nhiêu. Nguyên nhân của việc này là trải nghiệm người dùng trên iOS tương đối tốt và mượt mà và an toàn, tuy nhiên với lập trình viên thì để một ứng dụng được lên chợ là cả một câu chuyện dài dòng. Trong bài này chúng ta hãy cùng nhau nói về những thuận lợi và khó khăn khi lập trình iOS nhé.

Thuận lợi

Sự tương thích

iOS nói chung hay các sản phẩm của Apple nói chung có tính đóng gói rất cao và hoạt động tương đối ổn định, không có quá nhiều loại sản phẩm với đủ kích thước màn hình như android nên chúng ta không cần quá lo lắng về sự tương thích của chúng ta chạy trên các phiên bản của hệ điều hành hay các dòng thiết bị.
Sự tương thích cũng thể hiện thông qua việc chúng ta có thể sử dụng simulator để chạy ứng dụng trong quá trình phát triển, và khi triển khai lên thiết bị thật chúng ta sẽ nhận được kết quả tương tự.

Một công cụ lập trình duy nhất

Nếu như bạn là người bị mắc hội chứng khó lựa chọn thì lập trình iOS sẽ cực kỳ dễ chịu khi bạn chỉ có một lựa chọn duy nhất là sử dụng XCode. Công cụ này sẽ tích hợp mọi thứ mà bạn cần để tạo ra một ứng dụng.

Tạo dự án tương đối dễ dàng

Bạn sẽ chỉ đơn giản là mở XCode lên, chọn File -> New -> Project… Sau đó chọn loại dự án là App, đền tên dự án và nhấn ok là xong.

Swift là một ngôn ngữ lập trình tốt

Swift ra đời sau Objective-C và rất nhiều ngôn ngữ khác, chính vì thế mà nó đồng thời khác phục được và thừa hưởng được rất nhiều ưu điểm về cú pháp của các ngôn ngữ khác.

struct ContentView: View {
    var body: some View {
        SocketProxy.getInstance().connectToServer();
        return Text("Hello, world!")
            .padding()
    }
}

Ví dụ sử dụng từ khoá let, var để khai báo biến thay vì kiểu rõ ràng. Giản lược đi các tù khoá không cần thiết. Swift khi ra đời đã tạo lên cơn sốt và thậm chí các lập trình viên cho rằng nó sẽ thay thế các ngôn ngữ truyền thống. Tuy nhiên điều này vẫn chưa xảy ra khi ngôn ngữ này vẫn có phần gắn chặt với Apple nên có vẻ công động cũng không mặn mà đề chuyển toàn bộ sang swift.

Debug tương đối dễ dàng

XCode mặc định hỗ trợ chạy dạng debug, bạn chỉ cần đặt breakpoint vào dòng nào bạn cần debug, sau khi chương trình chạy đến đó thì nó sẽ tự động được dừng lại để bạn kiểm tra được giá trị các biến.

Cộng đồng tương đối lớn

Có rất nhiều người yêu mến Apple, iPhone nên cộng đồng người sử dụng và lập trình viên rất đông đảo và sẵn sàng trả lời bạn các câu hỏi.

Khó khăn

Tốn kém trong việc mua máy tính

Để lập trình iOS gần như bắt buộc chúng ta phải mua một máy tính của Apple, ví dụ như MacBook để có thể cài được XCode và có đủ môi trường để phát triển ứng dụng.
Tuy nhiên một máy MacBook có giá tương đối đắt tiền, ngay cả máy cũ cũng có giá vài chục triệu, nên các lập trình viên có hoàn cảnh khó khăn sẽ khó có thể theo đuổi được lập trình iOS.

Khó tích hợp các thư viện

Mặc dù đã có sự hỗ trợ đến từ Cocoapods (https://cocoapods.org/) để quản lý các phụ thuộc của dự án đơn giản hơn, tuy nhiên việc tích hợp các thư viện vào một dự án iOS vẫn quá khó khăn và gặp các lỗi khó hiểu, phải mất nhiều công sức để tích hợp.

Báo lỗi không rõ ràng

Nhiều khi bạn gặp một lỗi mà bạn không thể hiểu nổi cái lỗi đó là cái gì do các thông báo không chỉ rõ cho bạn chỗ nào bị lỗi, hoặc các thông báo lỗi trông rất xa lạ. Khi chương trình bị crash thì nó cũng chưa chắc đã cung cấp được một stacktrace dễ hiểu như lập trình với Android java hay kotlin.

ld: warning: object file (/Users/tvd12/Library/Developer/Xcode/DerivedData/swift-connection-eknqldukhfytryczinkjzffecgxw/Build/Products/Debug-iphonesimulator/libezyfox-client.a[2](EzyNull.o)) was built for newer 'iOS-simulator' version (14.4) than being linked (14.0)

Trên đây là một warning không thực sự dễ hiểu.

Chấp nhận sống với warning

Trong dự án iOS nhiều khi có rất nhiều warning mà bạn không đủ thời gian hoặc khả năng để fix hết, bạn phải sống chung với nó nên nếu bạn bị OCD thì thật là ác mộng.

Cài đặt để phát hành quá vất vả

Để có thể phát hành một ứng dụng iOS không hề đơn giản chút nào, bạn phải trải qua 7x7 49 bước với đủ các khái niệm về certificate, sign, … bạn có thể tham khảo hướng dẫn này: https://learn.microsoft.com/vi-vn/power-apps/maker/common/wrap/code-sign-ios . Ngoài ra bạn cũng phải mua tài khoản Apple developer hàng năm với giá 99$ và nó không hề rẻ so với Google là 25$ trọn đời.

Kiểm duyệt khắt khe và mất thời gian

Nếu như Android đơn giản là bạn phát hành ứng dụng lên chợ qua google play console thì gần như là xong, thi thoảng Google họ có kiểm duyệt tự động nhưng với iOS thì khác. Apple review cực kỳ gắt để bảo về người dùng, nên bạn có thể bị từ chối cả chục lần, thậm chí ứng dụng của bạn có điều gì đáng ngờ thì no hope để được kiểm duyệt.

Tổng kết

Như vậy chúng ta đã cùng nhau tìm hiểu về thuận lợi và khó khăn khi lập trình iOS.


Cám ơn bạn đã quan tâm đến bài viết|video này. Để nhận được thêm các kiến thức bổ ích bạn có thể:

  1. Đọc các bài viết của TechMaster trên facebook: https://www.facebook.com/techmastervn
  2. Xem các video của TechMaster qua Youtube: https://www.youtube.com/@TechMasterVietnam nếu bạn thấy video/bài viết hay bạn có thể theo dõi kênh của TechMaster để nhận được thông báo về các video mới nhất nhé.
  3. Chat với techmaster qua Discord: https://discord.gg/yQjRTFXb7a