Đối với những người chưa từng tiếp xúc thì lập trình một ứng dụng trên Android hay iOS trông có vẻ là giống nhau . Nhưng sự thật là 2 hệ điều hành này đều có những đặc thù riêng. Có rất nhiều sự khác biệt như từ cơ sở kỹ thuật cho đến qui trình phát triển ứng dụng.
Không chỉ ở mức kỹ thuật mà còn ở trong cách thiết kế và chiến lược di động. Nói cách khác, ý tưởng của một ứng dụng sẽ phụ thuộc vào hệ điều hành được chọn. Chính vì thế, lập trình viên, những người đang chuyển từ hệ điều hành này sang bên khác, hoặc đang tiếp cận một ngôn ngữ lập trình khác, sẽ để ý đến điều này.
Cấu trúc của một project
Cấu trúc của một project iOS là tương đối tự do trong Xcode, khi mà bạn có thể tạo mới folder và file ở bất cứ nơi nào bạn muốn và khởi tạo tham chiếu giữa chúng. Tuy nhiên, sẽ luôn có một vài qui tắc nhất định (ví dụ như icon cho các độ phân giải khác nhau) mà bạn phải tuân thủ.
Khi viết một ứng dụng Android, chúng ta phải làm quen với một cấu trúc chặt chẽ hơn. Các qui tắc trong lập trình Android phải được tuân thủ cho dù đó là folder, file hay các tài nguyên. Bất kỳ qui trình lập trình ứng dụng Android nào đều sẽ luôn phải chặt chẽ.
Kiểm thử ứng dụng
Khâu kiểm thử ứng dụng là một phần không thể thiếu trong quá trình thiết kế ứng dụng di động, tương tự như vậy đối với games và các loại phần mềm khác. Chúng ta cần phải đảm bảo rằng ứng dụng của chúng ta hoạt động ổn định. Hệ giả lập iOS và Android được sử dụng cho mục đích này.
Sự khác biệt rõ ràng nhất là hệ giả lập iOS hoạt động nhanh hơn của Android. Tuy nhiên, hệ giả lập Android lại có ưu thế về hệ thống máy ảo với CPU ảo hóa, khiến việc trải nghiệm trở nên thực tế hơn so với iOS. Thức tế thì hệ giả lập iOS thường thất bại trong việc mô phỏng chính xác các thiết bị của Apple.
Vì lý do này, chúng ta thường xuyên phải kiểm thử trên thiết bị thật để kiểm tra chính xác các tính năng, đánh giá đúng các lỗi của ứng dụng.
Ngôn ngữ lập trình
Sự khác biệt của hệ điều hành đi kèm theo sự khác biệt về ngôn ngữ lập trình. Đây là sự khác biệt rõ ràng nhất của 2 hệ điều hành: iOS sử dụng ngôn ngữ Objective – C/ Swift, trong khi Android sử dụng Java. Tuy nhiên, trong tương lai gần, sự khác biệt này có thể sẽ không còn, vì với việc mã nguồn mở Swift, thì đang có thông tin cho rằng Google sẽ sử dụng Swift để lập trình Android.
Giao diện đồ họa
Ở khía cạnh kỹ thuật, lập trình viên sẽ dựng file XML để thiết kế giao diện trên Android, tương tự là file XIB của iOS. Tuy nhiên, một lần nữa iOS lại hơn Android ở các animation. Google đã cố gắng khắc phục điều này qua bản xem thử của Android L và tạo nên một xu hướng thiết kế mới là Material Design. Trong lúc đó thì Apple luôn tập trung vào những animation mềm mại, mạnh mẽ và rất cẩn thận trong việc để ý đến thẩm mỹ người dùng; Google- ở một góc nhìn khác thì đang giải quyết vấn đề này nhưng tối ưu phần cứng mới đang là mục tiêu chính của họ.
Nút back
Một sự khác biệt lớn nữa giữa 2 nền tảng đó là nút ‘Back’ có trong Android nhưng không xuất hiện ở trong iOS. Kiểu nút như vậy được dùng để chuyển view trong Android, tuy nhiên trong iOS, lập trình viên phải thiết kế theo hướng khác, đặt thao tác back ở đâu đó trong màn hình.
Những điểm khác biệt còn lại
- Delegate và Adapter: iOs sử dụng từ khóa ‘delegate’ khi áp dụng delegation pattern trong khi Android là từ ‘adapter’. Mặc dù khác nền tảng và từ khóa diễn đạt, nhưng đấy đều là những khái niệm chung.
- UIViewController và Activity: Chúng ta sử dụng clash Activity trong việc lập trình một view cụ thể trên thiết bị Android, còn với iOS, công việc này sẽ được đảm nhiệm bởi một controller tên là UIViewController. Nó được dùng để quản lý vòng đời của các sự kiện, các subviews.vv. Cả 2 đều chung một vai trò, mặc dù tên gọi là khac nhau.
- Tùy chọn và quyền truy cập: Những tác vụ này được quản lý tốt hơn trên thiết bị iOS, khi mà bạn có thể nhóm chúng lại trên phần setting tổng. Còn với Android, thì thao tác lại cầu kỳ hơn một chút.
- Bản đồ: chúng ta có thể sử dụng Apple maps hoặc Google Maps khi lập trình ứng dụng iOS. Tuy nhiên, Google Maps là tối ưu hơn và cũng được sử dụng chính trong các ứng dụng Android
Khác biệt khi tạo ứng dụng
Khi nói đến việc tạo ra các ứng dụng, sự khác biệt giữa các hệ điều hành không dễ tìm thấy ở khía cạnh kỹ thuật. Việc thiết kế và marketing bị ảnh hưởng rõ ràng ở một mức độ rất cơ bản. Chúng ta hãy cùng xem làm thế nào để đối phó với những sự khác biệt này
Chi phí
Chúng tôi đã thảo luận về sự khác biệt trong chi phí giữa việc tạo ra các ứng dụng dành cho Android hoặc iOS ở bài viết trước. Trong thực tế, quá trình phát triển iOS là tốn kém hơn một chú – mặc dù sự khác biệt không phải là quan trọng – dựa theo thực tế rằng nhu cầu cho các ứng dụng iOS là thấp hơn so với các ứng dụng Android và chi phí cho các tài nguyên chuẩn bị của Apple là đắt hơn nhiều.
Lợi nhuận
Chúng ta có thể nhận thấy rằng các ứng dụng iOS thường được bán trực tiếp cho người dùng và tương tự với các tính năng bên trong, còn ứng dụng Android thường được tải về miễn phí và được và lập trình viên sẽ kiếm tiền thông qua quảng cáo nhúng bên trong.
Nguồn: tacktalk.com