OrientSoft sử dụng một số công nghệ phát triển ứng dụng (App) cho Mobile hiện nay như:
· Ứng dụng web (web-based app)
Ứng dụng là một loại chương trình có khả năng làm cho máy tính thực hiện trực tiếp một công việc nào đó người dùng muốn thực hiện.
Web app có thể được thiết kế chạy trên nền tảng web hoặc các trình duyệt của thiết bị di động. Ví dụ : https://m.facebook.com là một Web App cho di động.
Điểm mạnh:
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
- 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
Có thể được đánh dấu bởi các công cụ tìm kiếm thông minh (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ừ mạng xã hội hoặc từ các dich vụ quảng cáo trực tuyến như Google Ads.
Web mobile có thể chạy ở bất cứ thiết bị nào có cài trình duyệt web.
Chỉ cần thay đổi tại server là tất cả các user truy cập đều được cập nhật.
Điểm yếu:
Mặc dù HTML5 có tính tương thích rộng lớn nhưng cùng với đó là cả điểm yếu. Nó phụ thuộc vào trình duyệt, nền tảng, loại máy. Đặc biệt khi mức độ phân mảnh thị trường của các thiết bị di động lớn như hiện nay lại càng làm các nhà lập trình khó khăn trong việc lựa chọn đúng phần nào của HTML5 có thể sử dụng.
Về hiệu suất, web-based app không chạy nhanh như native app, và không mang lại trải nghiệm trọn vẹn mà nền tảng đó có thể cung cấp, đây cũng là lý do mà hầu hết các mobile game đều không dùng web app.
Luôn phải chạy online. Khi mạng chập chờn thì ứng dụng web cũng ngay lập tức thể hiện điểm yếu của mình.
Vì các lý do bảo mật: việc truy cập đến các file hệ thống, điểu khiển các thành phần trên thiết bị gần như là không thể.
Người dùng chưa quen với việc thao tác, xem thông tin phức tạp trên các thiết bị nhỏ như các smartphone.
Tốt nhất khi:
Phần mềm được phát triển với nguồn kinh phí thấp
Ứng dụng không cần đăng tải trên các App store
Lập trình viên có kinh nghiệm trong phát triển web (html, css, java script)
· Công nghệ Native App
Là những ứng dụng được viết riêng cho một loại nền tảng như iOS, Android, Windows Phone bằng các ngôn ngữ tương ứng của mỗi nền tảng đó ví dụ Java trên Android, Object C trên iOS, C# trên winphone.
Mỗi Native App chỉ chạy được trên một nền tảng và không thể mang sang các nền tảng khác.
Điểm mạnh:
- Về mặt hiệu suất 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.
- Về tính năng 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… Nói cách khác, native app có thể khai thác được sức mạnh phần cứng nhiều nhất của nền tảng. 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 đã lưu trước đó ở lần cuối cùng mà người dùng truy cập online.
Điểm yếu:
- 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 hệ điều hành 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
- 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 hệ điều hành, thủ tục đưa lên kho ứng dụng và chờ đợi chấp thuận 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ự cập nhật khi vào kho ứng dụng.
- Tính đa dạng phiên bản của hệ điều hành 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 hệ điều hành cũ hơn sẽ không cài đặt được.
Tốt nhất khi:
- Ứng dụng được xuất bản ra một nền tảng duy nhất
- Ứng dụng với những yêu cầu cao, vượt qua khả năng xây dựng của hybrid hoặc web.
- Ứng dụng yêu cầu cao về native UI hoặc đồ họa
Công cụ phát triển trên các hệ điều hành dành cho di động như:
Android
+ Ngôn ngữ lập trình: Java
+ Công cụ lập trình: Android Studio, Eclipse
IOS
+ Ngôn ngữ lập trình: Objective-C
+ Công cụ lập trình: Xcode
Window phone
+ Ngôn ngữ: C#
+ Công cụ: Visual studio 2015,Visual studio Code.
· Hybrid app
Là ứng dụng kết hợp của cả Mobile Web App và Native App. Theo đó, các phần cơ bản của ứng dụng vẫn viết bằng ngôn ngữ web, nhưng được đặt trong native container, nên vẫn có thể đưa lên các App Store.
Điểm mạnh:
- Hybrid có thể kết hợp điểm mạnh của cả native app và mobile app và khai thác được trải nghiệm cao nhất của nền tảng.
- Thời gian xây dựng ngắn, chi phí sản xuất thấp, có thể phát triển app cho nhiều nền tảng
- Dễ sửa chữa và bảo trì. Chỉ cần sửa trên 1 app cho tất cả các hệ điều hành
Nhược điểm:
- Khi xây dựng ứng dụng bằng Hybrid app không mượt mà so với Native app.
- Các thành phần của Hybrid như UI và UX cho người dùng không dễ tùy biến tùy vào mức độ hỗ trợ của ứng dụng.
Tốt nhất khi:
- Ứng dụng sẽ được xuất bản ra nhiều nền tảng
- Ứng dụng cần được đăng tải trên các App Store
- Lập trình viên có kinh nghiệm trong phát triển web (html, css, java script)
Công cụ phát triển trên các hệ điều hành dành cho di động như Android, ios, windowphone:
+ PhoneGap, Cordova, Xamarin, Ionic
+ Ngôn ngữ lập trình: HTML5, CSS3, ES6