

Với sự bùng nổ không ngừng của ngành công nghiệp 4.0 và quá trình chuyển đổi số của các doanh nghiệp đang ngày càng gia tăng. Xuất hiện liên tục những ý tưởng mới, như: Trí tuệ nhân tạo (AI), Dữ liệu lớn (Big Data), Internet vạn vật (IoT), Đám mây (Cloud), Chuỗi khối (Blockchain), … Các khái niệm này trở nên quen thuộc hơn bao giờ hết, chúng được thảo luận rộng rãi trong thị trường công nghệ hiện nay.
Đồng hành cùng với sự phát triển đó là sự biến đổi của các doanh nghiệp công nghệ, họ đang dần trở thành một hệ sinh thái đa dịch vụ, nơi mà người dùng có thể trải nghiệm nhiều dịch vụ khác nhau trên cùng một nền tảng ứng dụng. Chẳng hạn như Tiki, ngoài việc mua sắm, người dùng cũng có thể tận hưởng các dịch vụ khác như đặt vé máy bay, mua bảo hiểm, dịch vụ tài chính điện tử, thậm chí là đặt lịch cắt tóc trên Tiki.
Với việc chuyển đổi này, trong cộng đồng phát triển ứng dụng công nghệ đã nảy sinh một khái niệm mới, đó là Siêu ứng dụng (Super App).
Trong loạt bài viết về “Hành trình tạo nên IDE cho Tini App” chúng ta sẽ tìm hiểu về Super App là gì; những thách thức trong việc phát triển Super App; Tini App ra đời như thế nào và mối quan hệ với Super App; để phát triển Tini App một cách hiệu quả, chúng ta cần phải xây dựng những yếu tố gì. Chúng ta cũng sẽ đào sâu vào công nghệ và kiến trúc của IDE cho Tini App. Danh sách nội dung bao gồm:
- Buổi khai mạc
- Khám phá về Tini App và lý do cần xây dựng IDE?
- Ngôn ngữ lập trình cho Tini App và công cụ biên dịch
- Chọn lựa giải pháp và xây dựng trình soạn thảo
- Tạo môi trường giả lập cho ứng dụng Tini App và các công cụ gỡ lỗi
- Xây dựng các tiện ích Tini Console và định hình phát triển trong tương lai
Khám phá về Tini App và lý do cần xây dựng IDE?

Trong phần mở đầu, chúng ta đã đề cập đến mục tiêu của loạt bài viết Quá trình xây dựng IDE cho Tini App, tập trung vào các thành phần và quá trình xây dựng IDE. Tuy nhiên, để dễ dàng tiếp cận kiến thức đó, ở phần này chúng ta sẽ giới thiệu sơ lược về Tini App, những khái niệm liên quan và lý do phải dành thời gian để xây dựng IDE.
Siêu ứng dụng là gì?
Siêu ứng dụng, hay còn gọi là Super App, là một khái niệm mới xuất hiện trong vài năm gần đây, khi các doanh nghiệp công nghệ bắt đầu chuyển đổi để trở thành các tổ chức đa dịch vụ.

Ví dụ về Siêu ứng dụng
Với Siêu ứng dụng, ứng dụng không chỉ đơn giản là một dịch vụ, mà người dùng có thể dễ dàng tìm kiếm và sử dụng thêm các dịch vụ vệ tinh xung quanh cùng với dịch vụ chính. Ví dụ, thay vì cài đặt nhiều ứng dụng khác nhau như: Thương mại điện tử, ví điện tử, bảo hiểm, … bây giờ, chỉ cần cài đặt một Siêu ứng dụng và tích hợp tất cả các dịch vụ mà người dùng cần. Điều này không chỉ mang lại lợi ích cho doanh nghiệp mà còn tiện lợi hơn cho người sử dụng, tạo ra một trải nghiệm mượt mà.
Các giải pháp để phát triển Siêu ứng dụng
Giải pháp đầu tiên cho việc chuyển đổi ứng dụng của doanh nghiệp thành một Siêu ứng dụng là “Tự thân làm mọi thứ”. Cụ thể, doanh nghiệp sẽ tự xây dựng đội ngũ để phát triển tính năng cho từng dịch vụ của đối tác.
- Ưu điểm: Có khả năng kiểm soát chất lượng sản phẩm tốt nhất, đảm bảo an toàn cho doanh nghiệp.
- Nhược điểm: Yêu cầu một đội ngũ nhân sự đủ lớn và có kinh nghiệm. Vì mỗi dịch vụ có thể có nhiều tính năng phức tạp và riêng biệt.
- Ưu điểm: Kết nối và phát triển dịch vụ của đối tác nhanh chóng hơn vì hầu hết các tính năng đều được đối tác cung cấp.
- Nhược điểm: Sản phẩm phụ thuộc vào đối tác, thiếu các giải pháp tự động kiểm tra chất lượng và có thể ảnh hưởng đến bảo mật nếu lựa chọn giải pháp công nghệ không thích hợp.
Các công nghệ để phát triển Siêu ứng dụng
Một giải pháp công nghệ hiệu quả nhất về hiệu suất ứng dụng là sử dụng Mã Native (Kotlin cho Android, Swift cho iOS hoặc Javascript cho Web, …). Nhược điểm của phương pháp này là cần một đội ngũ nhân sự đủ lớn và có thể phải cấp quyền truy cập vào mã nguồn cho những người bên ngoài.
Phương pháp công nghệ thứ hai là Cross-Platform như: React-Native, Flutter, Ionic, … Những phương pháp này có thể làm giảm hiệu suất một chút so với Mã Native nhưng lại mang lại tốc độ phát triển ứng dụng và giảm chi phí nhân sự. Nhược điểm cũng tương tự như Mã Native, vẫn cần đội ngũ nhân sự đủ lớn và có rủi ro về mặt bảo mật.
Sử dụng WebView để hiển thị trang web từ đối tác cũng là một phương pháp thường được sử dụng. Ưu điểm là chúng ta có thể tái sử dụng ứng dụng có sẵn, chỉ cần viết các cơ chế để giao tiếp với những ứng dụng đó. Nhược điểm là ứng dụng Web đôi khi mang lại trải nghiệm không tốt về hiệu suất.

Ví dụ về Siêu ứng dụng và Ứng dụng Mini
Ứng dụng Mini là một khái niệm mới, phát sinh từ thị trường Trung Quốc. Mini App có thể được hiểu đơn giản là một ứng dụng nhỏ, có thể coi như là một dịch vụ từ đối tác; và được Siêu ứng dụng xem như một kênh phân phối ứng dụng tới người sử dụng. Mini App có thể tận dụng được các lợi thế của các công nghệ đã nêu và khắc phục nhược điểm cần phải cung cấp quyền truy cập vào mã nguồn cho đối tác.
Tini App là gì?
Tini App là một dự án Mini App được Tiki phát triển. Trên thị trường hiện nay có nhiều phương án để xây dựng Mini App và phương án dễ triển khai nhất là xây dựng các thư viện (bao gồm các API giao tiếp với Siêu ứng dụng, các thành phần giao diện đã được xây sẵn) để cung cấp cho đối tác cùng với các tài liệu hướng dẫn. Các phương án này phụ thuộc vào công nghệ mà Siêu ứng dụng đang sử dụng, như Mã Native, Cross-Platform; và có thể mang theo rủi ro về bảo mật vì chúng đang chạy trên cùng một môi trường với Siêu ứng dụng, như đọc dữ liệu trái phép từ bộ nhớ, …

Ví dụ về quy trình phát triển một Tini App
Đối với Tini App, Tiki đã chọn phương án được xem là tốt nhất, đã được thị trường Trung Quốc xây dựng và chứng minh hiệu quả. Thay vì sử dụng các công nghệ có sẵn để cung cấp cho đối tác, Tiki xây dựng riêng bộ ngôn ngữ và các công cụ cho Tini App để các đối tác dựa vào đó phát triển sản phẩm của họ. Sau đó, ứng dụng sẽ được chuyển đổi để phù hợp với từng nền tảng, từng thiết bị khác nhau. Quá trình chuyển đổi này phải thông qua các công cụ xây dựng của Tiki, giảm thiểu tối đa rủi ro có thể gặp phải. Có thể hiểu đơn giản, Tini App như là một hệ điều hành thu nhỏ trên Tiki.
Vì sao cần phải xây dựng IDE cho Tini App
Vì đã phát triển bộ ngôn ngữ riêng, Tini App cần các công cụ lập trình, kiểm thử và các giải pháp hỗ trợ để tối ưu cho việc phát triển ứng dụng.
***
Mình sẽ chia sẻ thêm về kiến trúc và các công cụ phát triển Tini App. Bạn cũng có thể truy cập website developers.tiki.vn và cộng đồng Tini App community.tiki.vn để biết thêm thông tin.
