Blog

Sự khác nhau trong quá trình xây dựng ứng dụng iOS và Android
Thiết kế ứng dụng di động

Sự khác nhau trong quá trình xây dựng ứng dụng iOS và Android

Android và iOS là hai hệ điều hành phát triển nhất hiện nay.

  • iOS là hệ điều hành trên các thiết bị di động của Apple. iOS chiếm 26% thị phần điện thoại thông minh vì iOS chỉ dành riêng cho dòng sản phẩm của Apple. Giao diện người dùng dựa trên thao tác bằng tay và có thể thao tác với hệ điều hành này thông qua nhiều động tác bằng tay trên màn hình cảm ứng của các thiết bị Apple.
  • Android là hệ điều hành phổ biến được thiết kế dành cho các thiết bị di động có màn hình cảm ứng. Nó chiếm 75% thị phần điện thoại thông minh trên thế giới. Giao diện người dùng của Android dùng tay tác động trực tiếp. Android sử dụng cảm ứng chạm tương tự như các động tác ngoài đời thực để xử lý đối tượng trên màn hình.

Đố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ác biệt trong quá trình phát triển

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. Bên cạnh đó đá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 ngôn 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.

Ứng dụng từ bên thứ ba

  • Hệ điều hành iOS sử dụng AppStore riêng với khoảng 500.000 ứng dụng iOS và được tải về khoảng 15 tỷ lần với tài khoản iTunes trên thiết bị của Apple.
  • Hệ điều hành Android sử dụng các ứng dụng của bên thứ ba có trên Google Play và các kho ứng dụng khác. Các ứng dụng này sẽ được lọc ra để phù hợp với thiết bị của người dùng. Nó cho phép người dùng duyệt, tải về và cập nhật ứng dụng do Google Play phát 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.
  • UI View Controller và Activity: Chúng ta sử dụng class 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à UI View Controller. 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à khác 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í

Trong thực tế, quá trình phát triển iOS là tốn kém hơn một chút. 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. Bên cạnh đó, 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í. Lập trình viên sẽ kiếm tiền thông qua quảng cáo nhúng bên trong.

 

Blog Advertising