React Native tại Airbnb (Phần 1): Mở đầu

Tác giả: Gabriel Peal

Vào năm 2016, chúng tôi đã quyết định dồn hết đầu tư và tâm huyết vào React Native. Và hai năm sau, chúng tôi muốn chia sẻ cho cả thế giới về những trải nghiệm của mình và cả những dự tính của mình trong tương lai.

10 năm trước khi Airbnb ra đời, thì đó là thời kì mới sinh sôi nảy nở của thiết vị smartphone. Kể từ đó, smartphone đã trở thành một thiết bị quá sức cần thiết trong cuộc sống hằng ngày của chúng ta, đặc biệt là khi con người ngày càng vươn xa ra thế giới. Là một cộng đồng cung cấp giải pháp du lịch mới cho hàng triệu người dùng, một app toàn cầu là điều cần thiết. Các thiết bị mobile giờ đây sẽ là ưu tiên hàng đầu, hoặc cũng có thể là công cụ giao tiếp duy nhất mà họ dùng đến khi ở xa nhà.

Khởi điểm với chỉ 3 khách đặt phòng trên đường Rausch Street vào năm 2008, giờ đây con số đã lên đến hàng triệu lượt booking hằng năm. Các app cho phép host (chủ nhà) có khả năng quản lý danh sách đặt nhanh chóng và người đi du lịch nhiều gợi ý và cảm hứng để khám phá các địa điểm mới ngay tầm tay.

Để bắt kịp với lưu lượng sử dụng thiết bị hiện nay, chúng tôi đã phát triển đội ngũ hơn 100 kĩ sư mobile xuất sắc nhất để mang đến những trải nghiệm người dùng mới tuyệt vời hơn và cải thiện cái sẵn có.

Tuyển dụng React, việc làm React Native cho SV mới ra trường

“Đặt cược” vào React Native

Chúng ta phải liên tục phân tích các công nghệ mới để cải thiện trải nghiệm người dùng của cả người đi lẫn host tại Airbnb, và maintain được trải nghiệm tốt cho developer. Trong năm 2016, một trong những công nghệ mới đó chính là React Native. Từ đó chúng tôi đã nhận ra được tầm quan trọng của mobile đối với mình nhưng căn bản là không có đủ kĩ sư để hiện thực hoá nó. Vì thế, chúng tôi bắt đầu tìm đến những option thay thế khác. Website của chúng tôi được build chủ yếu dựa trên React – một web framework cực kì hiệu quả và được ưa chuộng rộng rãi tại Airbnb. Chúng tôi xem React Native như một cơ hội mới mở đường cho sự phát triển của mobile cũng như chuyển code đi nhanh chóng hơn bằng cách tận dụng bản chất cross-platform của nó.

Khi bắt đầu đầu tư vào React Native, chúng tôi cũng biết rằng có rất nhiều rủi ro. Chúng tôi đã add vào codebase của mình một platform mới, nhanh hơn nhưng chưa được kiểm chứng mà có thể tách nó ra thay vì hợp nhất nó lại. Mục tiêu của Airbnb với React Native gồm có:

  1. Giúp Airbnb tiến xa nhanh chóng hơn.
  2. Maintain quality bar được viết bằng native.
  3. Viết product code chỉ một lần cho mobile thay vì phải hai lần.
  4. Cải thiện trải nghiệm của developer.

Trải nghiệm của chúng tôi

Trong vòng 2 năm qua, thí nghiệm này đã biến thành một nỗ lực thực sự. Chúng tôi đã build lên một sự kết hợp cực kì bền vững trong app để kích hoạt được nhiều feature phức tạp như các shared element transitions, parallax, và geofencing cũng như các bridge trong cấu trúc hạ tầng phức tạp hiện có như networking, experimentation và internationalization.

Chúng ta đã cho ra mắt một loạt các sản phẩm cho Airbnb dùng React Native. React Native cho phép chúng tôi launch Experiences, một đứa con mới của Airbnb, cũng như hàng tá feature khác từ review đến quà tặng. Đây là thời điểm chúng tôi đã cho ra lò nhiều feature dù cho chưa có đủ kĩ sư để đạt được mục tiêu mình.

Các team khác nhau sẽ có những trải nghiệm khác nhau với React Native. React Native đã được chứng minh là một tool hết sức tuyệt vời mặc dù vẫn tồn đọng nhiều thách thức về kĩ thuật và tổ chức đối với các team khác. Trong series này, chúng tôi sẽ cung cấp một số kinh nghiệm của mình và những dự định trong tương lai sắp tới.

Trong phần 2, chúng tôi sẽ liệt kê một loạt những thứ hiệu quả và không hiệu quả với React Native.

Trong phần 3, chúng tôi sẽ liệt kê một số thách thức tổ chức hiện tại mà chúng tôi đang đối mặt khi build một mobile team xuyên platform.

Trong phần 4, chúng tôi highlight chỗ đứng hiện tại của mình bằng React Native và tương lai của Airbnb.

Trong phần 5, đúc kết những kinh nghiệm sâu sắc nhất về React Native và tận dụng nó tốt hơn.

Bài viết gốc được đăng tải tại Medium

  Tiki đã dùng React Native như thế nào?

  Đi phỏng vấn vị trí React Native cần trang bị những gì?