Phát triển ứng dụng : Nên sử dụng công nghệ nào ? (p.4)

 

1-nua-mobile-app-ko-phai-native-3-1024x1024[1]

Để phát triển ứng dụng có một số lựa chọn sau về cồng nghệ phát triển. Mỗi công nghệ đều có mỗi ưu nhược điểm khác nhau, tuy nhiên nhìn vào nhu cầu của bạn mà chọn công nghệ cho phù hợp nhằm mang lại hiệu quả tốt nhất.

Native Code

Native Code là công nghệ nhằm xây dựng các ứng dụng đặc thù được xây dựng bằng công nghệ riêng của mỗi nền tảng cung cấp. Vd: trên Android viết bằng Java, trên iOS viết bằng Swift hoặc Object C, trên Windows Mobile viết bằng C#, v.v..
Đặc thù của Native Code là chỉ có để hoạt động trên một nền tảng đặc thù, ứng dụng viết cho nền tảng này không để chạy trên nền tảng khác. Phần lớn các ứng dụng hiện tại được xây dựng bằng cách này.

Lợi điểm của Native Code

  • Tận dụng tối đa được phần cứng và những hổ trợ của thiết bị, do đó tốc độ xử lý, các hiệu ứng hoạt động mượt mà.
  • Do sử dụng công nghệ chính thống của hãng nên các phần mềm hổ trợ phát triển ứng dụng(IDE), các thư viện lập trình, môi trường phát triển, môi trường kiểm thử, thiết bị giả lập được hổ trợ gần như tối đa và được cập  nhật thường xuyên.
  • Tài liệu học tập, cộng đồng lập trình viên đông đảo và có qui chuẩn, các thông tin được cập nhật chính thống mà mới nhất.

Bất lợi của Native Code

  • Nếu phát triển trên nhiều nền tảng (chẳng hạn trên Android, iOS, Windows Mobile) phải lập trình 3 phiên bản khác nhau nên tốn thời gian và nhân lực hơn.
  • Song song với khó khó khăn đó, việc điều chỉnh nâng cấp phải tùy thuộc vào từng hệ điều hành và những nâng cấp sửa đổi trên nền tảng đó.
  • Trong một số trường hợp, bạn sẽ phải cập nhật để ứng dụng của bạn phù hợp với các phiên bản hệ điều hành mới.

Cross platform

Cross platform là một dạng công nghệ viết ứng dụng lai, giúp bạn tiết kiệm thời gian phát triển ứng dụng, từ một lần code mà bạn có thể chạy được trên nhiều nền tảng ứng dụng. Đa số chúng hoạt động dựa trên môi trường web browser được tích hợp sẵn trong hệ điều hành, do đó sử dụng công nghệ web client để hiển thị giao diện và sử dụng các api trung gian để giao tiếp với hệ điều hành. Tuy nhiên có những phân mảnh sau:

Html5

Điển hình nhất là Apache Cordova (Phone gap) sử dụng thuần công nghệ web và thông qua các api của Framework để giao tiếp với hệ điều hành. Để có các hiệu ứng và cách tương tác tương tự như App Native, hiện có rất nhiều Framework hổ trợ như Jquery mobile, Sencha Touch, v.v.. do đó giúp ích rất nhiều trong việc xây dựng một giao diện giống như Native. Tuy nhiên, do hoạt động trên môi trường web phải thông qua một trình duyệt mà không phải là chạy trực tiếp trên hệ điều hành, do đó sẽ hoạt động chậm chạp hơn đối với một số ứng dụng nặng. Do đó, công nghệ này phù hợp với các ứng dụng không đòi hỏi các hiệu ứng nặng, tương tác đơn giản.

Xamarin, titanium

Là một bước tiến so với công nghệ sử dụng html5, tương tác sâu và trực tiếp hơn với hệ điều hành thông qua các hàm Native từ api. Do đó khi build ứng dụng, một phần mã nguồn sẽ được chuyển thành ngôn ngữ native giúp cải thiện về hiệu năng hoạt động , xử lý các hiệu ứng hoạt động mượt mà đáng kể. Nói là tốt so với html5 nhưng so với Native Code vẫn không thể bằng được, do chúng phải sử dụng thông qua các hàm api native. Đồng thời, trên mỗi hệ điều hành, phải có những điều chỉnh và cách xử lý riêng để chúng có thể hoạt động, đôi khi những điều chỉnh này lại gây tốn thời gian rất nhiều.

Kết luận

  • Nếu bạn cần một ứng dụng nội bộ, không đòi hỏi các hiệu ứng phức tạp hãy sử dụng công nghệ Cross platform html5 để đem lại hiệu quả tốt nhất, chi phí đầu tư thấp nhất.
  • Nếu ứng dụng của bạn, đòi hỏi mức hiệu ứng tương đối, trong giới hạn tạm chấp nhận. Đòi hỏi các xử lý về logic tính toán hơn là giao diện đồ họa. Đây là lúc bạn cân nhắc các Cross platform xamarin/tinanium/v.v.. . Góp phần giảm thời gian và chi phí phát triển đáng kể.
  • Game, ứng dụng liên quan đến hiệu ứng và đồ họa cao luôn luôn nên sử dụng Native code. Chỉ có chúng mới khai thác tối đa hiệu năng của hệ điều hành và thiết bị.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *