Hành trình chuyển đổi của Elsa từ Native sang Flutter

ELSA, ứng dụng học phát âm tiếng Anh hàng đầu với hàng triệu người dùng toàn cầu, đã và đang đối mặt với những thách thức lớn trong việc mở rộng mobile app của mình để đáp ứng nhu cầu ngày càng tăng của người dùng. Bằng cách chuyển đổi từ nền tảng Native sang Flutter, một framework đa nền tảng, có khả năng tối ưu hiệu suất và đẩy nhanh tốc độ phát triển sản phẩm, ELSA đã giải quyết được bài toán scale up của mình.

Thách thức scale up và bài toán của ELSA

Trong bối cảnh thị trường ứng dụng di động cạnh tranh khốc liệt, việc mở rộng ứng dụng là yếu tố then chốt để giữ vững vị thế và thu hút người dùng mới. Khả năng mở rộng (scalability) của ứng dụng được đánh giá dựa trên khả năng hoạt động ổn định, mượt mà khi:

  • Số lượng người dùng tăng đột biến: Ứng dụng phải đảm bảo hiệu suất ổn định khi có hàng triệu người dùng truy cập và sử dụng đồng thời.

  • Lượng dữ liệu xử lý ngày càng lớn: Việc lưu trữ, xử lý và phân tích lượng dữ liệu khổng lồ từ người dùng là một bài toán khó.

  • Quy mô đội ngũ phát triển mở rộng: Quản lý hiệu quả và duy trì sự phối hợp nhịp nhàng giữa các đội ngũ kỹ thuật là điều cần thiết.

ELSA, với vị thế dẫn đầu trong lĩnh vực edtech và hơn 50 triệu lượt tải xuống trên toàn cầu, cũng phải đối mặt với những thách thức không nhỏ trong việc mở rộng ứng dụng. Ứng dụng native ban đầu của ELSA, được phát triển riêng biệt trên hai nền tảng iOS và Android, đã bộc lộ một số hạn chế:

  • Lặp lại code: Việc viết code riêng cho từng nền tảng gây lãng phí thời gian và công sức của đội ngũ kỹ thuật.

  • Khó khăn trong việc đồng bộ tính năng: Đảm bảo tính năng mới được cập nhật đồng thời và hoạt động giống hệt nhau trên cả hai nền tảng là một bài toán phức tạp.

  • Thách thức về hạ tầng và kết nối: Mở rộng thị trường toàn cầu đòi hỏi ELSA phải giải quyết các vấn đề về hạ tầng, kết nối mạng và đảm bảo ứng dụng hoạt động ổn định ở nhiều quốc gia khác nhau.

  • Khó khăn trong việc tuân thủ luật pháp: Mỗi quốc gia có những quy định riêng về bảo mật thông tin và nội dung, ELSA cần đảm bảo ứng dụng tuân thủ đầy đủ các quy định này.

which-platform-should-I-choose

Giải pháp Cross-Platform Framework: Lựa chọn tối ưu cho ELSA

Để vượt qua những thách thức trên và tiếp tục mở rộng quy mô, ELSA đã nghiên cứu và lựa chọn giải pháp sử dụng Cross-Platform Framework – nền tảng phát triển ứng dụng đa nền tảng. Giải pháp này cho phép sử dụng chung codebase cho cả hai nền tảng iOS và Android, từ đó giải quyết triệt để vấn đề lặp lại code và giảm thiểu đáng kể thời gian phát triển sản phẩm mới.

Sau quá trình đánh giá kỹ lưỡng các lựa chọn Cross-Platform Framework hàng đầu hiện nay, ELSA đã quyết định lựa chọn Flutter – framework được phát triển bởi Google – làm nền tảng cho ứng dụng di động thế giới tiếp theo của mình.

Lý do ELSA chọn Flutter:

  • Sự trưởng thành và ổn định: Flutter là một framework đã được kiểm chứng với cộng đồng người dùng đông đảo và được ứng dụng trong nhiều sản phẩm lớn.

  • Khả năng đáp ứng yêu cầu kỹ thuật: Flutter cung cấp đầy đủ các công cụ và thư viện mạnh mẽ để đáp ứng các yêu cầu kỹ thuật phức tạp của ELSA.

  • Hiệu suất cao: Flutter nổi tiếng với hiệu suất vượt trội, mang đến trải nghiệm người dùng mượt mà, nhanh chóng.

  • Tính linh hoạt: Flutter cho phép tích hợp với code native khi cần thiết, đảm bảo khả năng tùy chỉnh cao.

Để đánh giá hiệu quả của việc chuyển đổi sang Flutter, ELSA tập trung vào một số thước đo (metrics) quan trọng, bao gồm:

  • Lượng code dùng chung: Mục tiêu là tối đa hóa lượng code chung giữa hai nền tảng.

  • Tỷ lệ crash: Giảm thiểu tối đa số lượng lỗi crash để đảm bảo trải nghiệm người dùng mượt mà.

  • Hiệu suất hiển thị: Đánh giá tốc độ tải trang, độ mượt của animation và các yếu tố ảnh hưởng đến trải nghiệm thị giác của người dùng.

  • Mức độ sử dụng bộ nhớ (RAM) và CPU: Đảm bảo ứng dụng hoạt động mượt mà trên các thiết bị có cấu hình khác nhau.

  • Lượng pin tiêu thụ: Tối ưu hóa lượng pin tiêu thụ để kéo dài thời gian sử dụng thiết bị.

Ngoài hiệu suất, ELSA cũng xem xét các tiêu chí quan trọng khác khi lựa chọn Flutter:

  • Khả năng tích hợp: Flutter có thể dễ dàng tích hợp với các dịch vụ backend và thư viện của bên thứ ba.

  • Hỗ trợ kiểm thử: Flutter cung cấp các công cụ mạnh mẽ để viết unit test, integration test và UI test.

  • Hỗ trợ lâu dài: Flutter là một dự án mã nguồn mở được hỗ trợ bởi Google, đảm bảo sự phát triển bền vững trong tương lai.

Chiến lược chuyển đổi “lai” và bài học kinh nghiệm

Thay vì “đập đi xây dựng lại” toàn bộ ứng dụng, ELSA lựa chọn chiến lược chuyển đổi “lai” (Hybrid Approach), kết hợp giữa ứng dụng native hiện tại và các module Flutter mới. Cách tiếp cận này mang lại một số lợi ích:

  • Giảm thiểu rủi ro: Việc chuyển đổi từng phần giúp ELSA kiểm soát rủi ro tốt hơn và dễ dàng khắc phục sự cố nếu có.

  • Đảm bảo hoạt động liên tục: Người dùng vẫn có thể sử dụng bình thường các tính năng hiện tại trong quá trình chuyển đổi.

Quy trình chuyển đổi của ELSA:

  1. Chia nhỏ ứng dụng thành các module: ELSA chia ứng dụng thành các module độc lập, mỗi module đảm nhiệm một chức năng cụ thể.

  2. Ưu tiên chuyển đổi các module quan trọng: ELSA ưu tiên chuyển đổi các module có giá trị cao đối với người dùng và có tiềm năng sử dụng lại code cao.

  3. Tích hợp module Flutter vào ứng dụng native: ELSA sử dụng các kỹ thuật kết hợp code để tích hợp mượt mà các module Flutter vào ứng dụng native hiện tại.

  4. Kiểm tra, đánh giá và lặp lại: Sau khi tích hợp, ELSA thực hiện kiểm tra kỹ lưỡng, thu thập phản hồi từ người dùng và điều chỉnh cho phù hợp.

Bên cạnh việc chuyển đổi sang Flutter, ELSA cũng thực hiện song song các hoạt động:

  • Loại bỏ các tính năng không cần thiết: Giúp giảm kích thước ứng dụng và tập trung vào những gì thực sự quan trọng.

  • Tối ưu codebase: Cải thiện chất lượng code, giảm thiểu lỗi và nâng cao hiệu suất ứng dụng.

Bài học kinh nghiệm từ ELSA:

  • Không có giải pháp “phù hợp cho tất cả”: Mỗi dự án có những đặc thù riêng, cần lựa chọn giải pháp phù hợp nhất với bối cảnh và mục tiêu của mình.

  • Thiết lập mục tiêu rõ ràng và thước đo cụ thể: Xác định rõ mục tiêu cần đạt và cách thức đo lường hiệu quả để đánh giá kết quả.

  • Kiểm tra, đánh giá giải pháp một cách kỹ lưỡng: Thực hiện kiểm tra kỹ lưỡng, thu thập phản hồi từ người dùng và điều chỉnh cho phù hợp.

  • Chuẩn bị sẵn sàng đối mặt với thử thách: Quá trình chuyển đổi có thể gặp phải những khó khăn không lường trước, cần chuẩn bị tâm lý và phương án dự phòng.

Với chiến lược rõ ràng, bài bản và sự chuẩn bị kỹ lưỡng, ELSA đã và đang từng bước hiện thực hóa mục tiêu xây dựng một ứng dụng di động có khả năng mở rộng cao, đáp ứng nhu cầu ngày càng tăng của người dùng trên toàn cầu. Hành trình chuyển đổi từ Native sang Flutter của ELSA là một ví dụ điển hình cho thấy sự linh hoạt và khả năng thích ứng nhanh chóng của các doanh nghiệp công nghệ Việt Nam trong bối cảnh thị trường cạnh tranh khốc liệt.

Bài viết được tổng hợp và điều chỉnh bằng AI. Nội dung từ buổi thuyết trình của anh Sơn Vũ tại Vietnam Mobile Summit 2024