Phân biệt ứng dụng gốc và ứng dụng web


Ứng dụng dành cho các thiết bị di động được phân thành ba loại chính bao gồm: ứng dụng gốc (Native App), ứng dụng web (Web App) và ứng dụng lai (Hybrid App). 

» Top 5 xu hướng thiết kế Apps 2015

Xu thế lập trình trên thế giới ngay càng hương tới di động trong đó Native application và web application đang trở nên mạnh mẽ hơn bao giờ hết. Về lịch sử thì native application ra đời trước mobile web application, Nổi bật lên khi kho ứng ứng APPSTORE của Apple ra đời, App World của Blackberry...


Mobile Application là một phần mềm được viết cho một thiết bị di động như điện thoại hoặc tablet.

Native Application: là một ứng dụng được thiết kế đặc biệt chỉ chạy trên một hệ điều hành của một thiết bị nào đó và thường phải điều chỉnh để chạy được trên các thiết bị khác nhau. Native App, được hiểu nôm na là ứng dụng gốc, hay ứng dụng được viết cho các thiết bị di động, chạy trên từng nền tảng (iOS, Android, RIM-OS, QNX…) khác nhau và tất nhiên là trên các thiết bị khác nhau để thực hiện một chức năng cụ thể như: danh bạ, lịch, phần mềm nghe nhạc, xem video trên điện thoại/tablet… và đa số các trò chơi trên thiết bị di động đều là ứng dụng gốc.

Ví dụ cụ thể:
1 game Angry bird bạn download trên AppStore tức là chúng phải chỉ chạy trên IOS, nếu bạn cài đặt trên HĐH khác thì nó không thể hiểu được.

Web Application: là ứng dụng chạy trên nền tảng web. Ứng dụng này sẽ chạy trên trình duyệt của thiết bị di động đó. Một số web app dành cho mobile như: http://m.facebook.com

Cụ thể với hơn với Facebook:

Facebook native app hiện tại có mặt trên các app store như Google market, Apple Store … mà user phải lên đó tải về và cài đặt trên máy, là ứng dụng được viết bằng native code cho từng hệ điều hành sử dụng nó. Facebook app trên Android sẽ được viết bằng Java, Facebook app trên iOS sẽ được viết bằng Object C.

Facebook Web app trong trường hợp này sẽ là http://m.facebook.com, chạy bằng trình duyệt của cả 2 HDH trên.

Về mặt tính năng thì cả 2 hầu như giống nhau 90% trở lên. Web app trên mobile có xu hướng phát triển về mặt giao diện và kỹ thuật càng giống với native app càng tốt. Tuy nhiên không phải những gì Native App làm được thì Web app cũng có thể (điều ngược lại sẽ đúng).

So sánh

 Ứng dụng gốc (Native App)

Ứng dụng web (Web App)

Truy cập Internet

Tùy loại phần mềm gốc mà có thể cần hay không cần Internet

Gần 100% các ứng dụng web yêu cầu kết nối Internet để sử dụng

Cài đặt/Nâng cấp ứng dụng

Tải và cài đặt trực tiếp lên điện thoại

Bản chất dựa trên trình duyệt web, cho nên người dùng phải nhớ link truy cập và chỉ cần "refresh" là có thể thấy ngay sự thay đổi (nếu có) về giao diện/phiên bản mới.

Giao diện người dùng

Giao diện cũng như khả năng đáp ứng là điểm mạnh của ứng dụng gốc. Giao diện được thiết kế ấn tượng, đáp ứng nhanh do giao diện đã được lưu trên máy người dùng nên không phải load giao diện về.

Đơn giản, không bắt mắt. Tuy nhiên, với sự tiến bộ của HTML5, Javascript (jQuery Mobile) đã và đang mang lại nhiều nét tươi mới cho các ứng dụng web.

Tính tương thích với thiết bị di động

Phụ thuộc nhiều vào hệ điều hành (iOS, webOS, RIMOS, QNX, Androi) và cả phần cứng (CPU, ROM, màn hình hiển thị…) của thiết bị.

Không phụ thuộc vào hệ điều hành, chỉ cần thiết bị hỗ trợ khả năng truy cập Internet; CSS, Javascript là một yếu tố quan trọng trong việc tạo nên giao diện cũng như tính tương thích với thiết bị.

Đa phương tiện

Phụ thuộc nhiều vào phần mềm phát nhạc/video.

Định dạng Adobe Flash chỉ được hỗ trợ trên một vài thiết bị (RIM OS7 trở lên, Android OS 2.1 trở lên)

Nghe nhạc/Video phụ thuộc nhiều vào trình duyệt có hỗ trợ hay không.

iOS sử dụng HTML5 trong việc hỗ trợ định dạng Flash.

Khả năng chia sẻ ứng dụng

Khó khăn trong việc chia sẻ ứng dụng giữa 2 hệ điều hành có nền tảng khác nhau như iOS và Android, iOS và BlackBerry. Tuy nhiên, gần đây các ứng dụng gốc trên Android đã có thể cài đặt được trên máy tính bảng PlayBook của RIM.

Chỉ cần gửi liên kết của ứng dụng web đó, người nhận sẽ tự biết phải làm gì để mở ứng dụng lên.

Sử dụng phần cứng của thiết bị

Các ứng dụng gốc có thể yêu cầu đến phần cứng của thiết bị như camera, thiết bị định vị GPS, thiết bị cảm ứng xoay…

Bị giới hạn thông qua trình duyệt

Phát triển phần mềm

Cần nhiều thời gian, tài nguyên để phát triển sản phẩm cho từng nền tảng khác nhau (iOS, RIMOS, webOS, Android…)

Mọi thứ rất dễ dàng. Quá trình cập nhật cũng khá đơn giản, không phải built phần mềm lại từ đầu rồi xuất bản.

Cung cấp

Người phát triển phần mềm cần phải xin phép nhà cung cấp để có thể đưa sản phẩm của mình lên các kho lưu trữ ứng dụng trực tuyến như Apple App Store, Blackberry AppWorld, Google Play…

Chia sẻ liên kết website, người dùng đã có thể sử dụng dễ dàng

 

Điểm mạnh và yếu của Native application:

Điểm mạnh:

- Về mặt lợi nhuận quy thành tiền, native app dễ dàng thu phí và an toàn với các phương thức thanh tóan như iTunes và Google Checkout, dễ dàng tiếp thị và chào bán trên các chợ ứng dụng như App Store và Google market. Các chợ ứng dụng thúc đẩy nhu cầu tiêu dùng và đảm bảo công việc kinh doanh của nhà phát triển thứ 3. Với Mobile web app thì việc kinh doanh và trả thanh toán cho ứng dụng vẫn còn nhiều thủ tục, không nhất quán, không an toàn và không thúc đẩy mạnh mẽ tiêu dùng.

- Về mặt performance thì native app chạy nhanh hơn mobile app trong hầu hết trường hợp. Tuy nhiên sự chênh lệch ở các ứng dụng có thể là nhỏ, chấp nhận được và khó nhận biết bởi người dùng. Hiện tại, với game thì native app vượt bậc và thắng tuyệt đối.

- Về tính năng thì native app có khả năng truy cập các phần cứng (như camera, GPS, thiết bị thu âm … ) và có thể truy cập đến các quyền local như : sao chép, tạo, ghi, đọc tập tin (trên bộ nhớ của mobile), các thông tin danh bạ, thông tin cá nhân, thực hiện cuộc gọi, nhắn tin … Trong khi Mobile Web app thì không thể (có trường hợp có thể đọc file, như upload).

- Ở chế độ offline: Native app có lợi thế so với mobile web app (luôn phải chạy online). Ở offline-mode, native app sẽ dùng những dữ liệu đã cache trước đó ở lần cuối cùng mà người dùng truy cập online.

-Người dùng không cần nhớ link truy cập.

Điểm yếu:

- Không thể cross platform: một native app chỉ có thể chạy trên một hệ điều hành nhất định.

- Với mỗi HDH thì người lập trình phải viết riêng native code cho nó , dẫn đến không nhất quán giữa các phiên bản ứng dụng, chi phí phát triển cao và đòi hỏi khả năng thành thạo nhiều ngôn ngữ ở lập trình viên. Đôi khi đòi hỏi lập trình viên phải sử dụng những công cụ độc quyền và chỉ được làm việc trên một môi trường duy nhất như: dùng xcode trên Mac OS (nếu bạn muốn phát triển ứng dụng cho iOS).

- Hơn nữa, việc bảo trì hay nâng cấp sẽ làm mất nhiều thời gian. Do phải sửa chữa từng app trên từng HDH, thủ tục đưa lên chợ ứng dụng và chờ đợi approval (đôi khi bị reject vì vi phạm một số điều lệ của nhà phát triển chợ ứng dụng), nên bản cập nhật không đến tay người dùng ngay lập tức, hơn nữa họ phải tự update khi vào chợ ứng dụng.

- Tính đa dạng phiên bản của HDH làm cản trở việc phổ dụng các native app. Các thiết bị chạy phiên bản HDH cũ hơn sẽ không cài đặt được.

 Điểm mạnh và yếu của Mobile web application:

Điểm mạnh:

- Cross platform: Có thể chạy trên tất cả trình duyệt của mobile hỗ trợ phiên bản HTML và javascript

- Không cần cài đặt trên máy.

- Thuận lợi cho các nhà phát triển:

- Với một phiên bản duy nhất cho tất cả, nên giảm chi phí và thời gian cho phát triển, bảo trì, cũng như nâng cấp sau này.

- Ngôn ngữ lập trình phổ dụng là HTML và Javascript mà hầu hết các lập trình viên đều biết.

- Không giới hạn môi trường lập trình, lập trình viên có thể làm việc trên hầu hết các HDH.

- Ứng dụng không cần phải được build lại qua SDK hoặc một công cụ phát triển độc quyền khác như xCode (chỉ cần deploy lên server và chạy).

- Việc cập nhật phiên bản sẽ đến ngay lập tức và trong suốt với người dùng (ngay sau khi deploy) mà không cần thông qua thủ tục và chờ đợi approval như các chợ ứng dụng.

- Có thể được đánh dấu bởi search engines (tốt cho SEO).

- Dễ dàng quảng bá: người dùng có thể tìm thấy thông qua search engine, share link từ email, từ social netwoks hoặc từ các dich vụ quảng cáo trực tuyến như Google Ads.

Điểm yếu:

- Về performance, không chạy nhanh , không thích hợp cho các ứng dụng game, nhạc, phim...

- Luôn phải chạy online, không thể phát triển ở chế độ offline.

- Thích hợp cho các ứng dụng, dich vụ thường là miễn phí, vì thủ tục thanh toán không an toàn và nhanh chóng, dẫn đến thu hút tiêu dùng kém.

- Thường người dùng phải nhớ link truy cập thì họ mới có thể truy cập vào được.


Có thể bạn quan tâm
13/10/2015
1474