Lịch sử React Native: Framework phát triển ứng dụng mã nguồn mở của Facebook

Ngày đăng: 14/10/2021   -    Cập nhật: 02/12/2021
React Native là một trong những framework phát triển ứng  dụng di động phổ biến nhất được thiết kế và phát triển bởi Facebook. Facebook công khai mã nguồn của React Native vào năm 2015. Danh tiếng của React Native có được là do nó cho phép thực thi code JavaScript trên các smartphone, và đây cũng là điều mâu thuẫn với chính bản thân nó, và khiến nó là một framework thú vị

Trong bài viết này chúng ta sẽ lần theo lịch sử của React Native từ khoảnh khắc hình thành ý tưởng của Facebook. Tuy nhiên, để hiểu rõ hơn về concept phía sau React Native, chúng ta cần phải quay lại xa hơn nữa và hiểu được tại sao Facebook lại cần đến React.
 

Tại sao Facebook phát triển React dành cho Web

React được sinh ra tại Ads Org của Facebook. Khi Tom Occhino, trưởng nhóm React tại Facebook lúc bấy giờ, đã nói trong buổi hội thảo đầu tiên về React.js tổ chức vào năm 2015, tất cả bắt đầu một cách rất đơn giản, nhanh chóng và dễ hiểu. Kiến trúc MVC điển hình được sử dụng cho phát triển và triển khai nền tảng quảng cáo của Facebook. Nhưng khi các chức năng mới được thêm vào thì câu chuyện bắt đầu phức tạp lên.

Codebase trở nên lớn hơn và khi có càng nhiều kĩ sư được bổ sung vào nhóm để  giúp xử lý codebase ngày càng lớn, công việc bắt đầu chậm lại. Bộ code trở nên khó đoán hơn bởi các bản cập nhật và updates và re-render dồn dập của ứng dụng kể cả với các thay đổi nhỏ nhất trong view. Bộ code cồng kềnh đến mức mà các kỹ sư còn không chắc chắn được rằng thay đổi dữ liệu ở đâu sẽ cập nhật phần nào của ứng dụng.

Bạn không cần phải là một lập trình viên để biết rằng nếu bạn không còn kiểm soát được quan hệ nhân-quả của hệ thống, thì đó sẽ là dấu chấm hết cho sản phẩm. Một trong những kỹ sư của nhóm, Jordan Walke, quyết định phải làm gì đó bởi nó không chỉ khiến cho hệ thống không những hoạt động kém hiệu quả mà còn gây xáo trộn trải nghiệm người dùng. Mặc dù nó đang sử dụng một mô hình không chỉ “nghe có vẻ đúng”, mà đã được chứng minh là đúng trong thời gian thực.

Vào năm 2011 Jordan đã xây dựng một bản mẫu để cải thiện hiệu năng của hệ thống và trải nghiệm người dùng; anh đã gọi nó là FaxJS.

Jordan sau đó đã làm việc với bản mẫu này để cho ra đời React framework vào năm 2012.
 

React tách ra khỏi khối phát triển Facebook

Cũng trong năm 2012, Instagram được Facebook mua lại. Khi các lập trình viên của Instagram nhìn vào khối phát triển web của Facebook, họ muốn sử dụng React cho một số ứng dụng mà họ dự định phát triểm. Tuy nhiên, ở thời điểm đó, React được gắn chặt với khối phát triển Facebook.

Một trong các lập trình viên, Pete Hunt, cảm thấy rằng sẽ đáng để tách React khỏi khối Facebook. React đã được tách ra thành công và công khai mã nguồn vào năm 2013.


 

Facebook tiến vào thị trường di động trước tiên và thách thức bắt đầu

Năm 2012 Facebook quyết định trở thành công ty di động đầu tiên. Đây là một bước ngoặt lớn với một công ty chuyên về lập trình web. Thách thức lớn đầu tiên đó là phải render các ứng dụng web lên các thiết bị di động. Facebook thử dùng HTML5 để render các ứng dụng trên web di động nhưng đã thất bại thê thảm.

Mark Zuckerberg đã nói trong sự kiện năm 2013 của TechCrunch event rằng tiếp tục với HTML5 là quyết định tồi tệ nhất mà họ đã chọn.

Các kỹ sư của Facebook đã thử đặt WebView vào một mobile native container, từ đó tái sử dụng WebView đã có sẵn trên các máy chủ của họ. Nhưng điều đó cũng không hề có tác dụng.

Các thiết bị di động và máy vi tính có một số khác biệt cơ bản mà đã gây ra các vấn đề trong việc render ứng dụng web di động:
  • Thiếu API bàn phím — WebView không có API bàn phím, là thứ thiết yếu nhất cho web di động để phát hiện có bàn phím trên màn hình hay không.
  • Các sự kiện cử chỉ và chạm – Hệ điều hành di động OS chất đầy các ứng dụng với những thao tác cử chỉ và chạm, nhanh hơn rất nhiều so với bất kỳ sự kiện onClick nào. Đôi khi các sự kiện cử chỉ rất phong phú như các cử chỉ dùng 2 hoặc 3 ngón tay. WebView không có các code cần thiết để đáp ứng điều này.
  • Thiếu khả năng quản lý hình ảnh — không giống như trình duyệt máy tính, bộ nhớ đệm của trình duyệt di động không thể truy vấn được để biết hình ảnh đã được tải hay chưa. WebView được sử dụng trong mobile native container không thể đáp ứng công việc quản lý hình ảnh.
Đó là khi mà các lập trình viên nhận ra rằng phải có các ứng dụng gốc để nâng cao trải nghiệm người dùng. Nhưng lập trình ứng dụng gốc cũng có những khó khăn riêng của nó:
  • Quá trình lặp của các ứng dụng gốc là rất chậm bởi mỗi phiên bản mẫu phải được chấp thuận bởi Playstore trước khi được phát triển, kiểm thử và ra mắt.
  • Coding là công việc bắt buộc , khiến các ứng dụng phức tạp và khó quản lý hơn.
  • Mỗi nền tảng cần có codebase riêng. Do vậy, mỗi ứng dụng cần ít nhất 2 codebase cho iOS và Android.

React Native ra đời

Christopher Chedeau làm một lập trình viên trẻ gia nhập nhóm Facebook Photos năm 2012. Khi anh thấy tình thế mà công ty đang gặp phải, để chuyển đổi sang ứng dụng di động, anh ta quyết định bắt tay vào giải quyết vấn đề.

Jordan Walke đã tạo ra được một UILabel trong iOS từ JavaScript. Chedeau đã phối hợp cùng Jordan, Ashwin Bharambe và Lin He để hoàn thiện bản mẫu và đưa nó đi vào hoạt động trong 2 ngày. Và họ đã thành công.

Kết thúc 2 đó, họ có thể tạo ra các phần tử UI gốc từ luồng JavaScript chạy trực tiếp trên thiết bị của người dùng. Đây có thể là giải pháp cho vấn đề chậm trễ quá trình lặp của các ứng dụng gốc.
 

Hackathon nội bộ của Facebook

Một cuộc thi Hackathon nội bộ được tổ chức tại Facebook vào mùa hè năm 2013 và khi nó kết thúc, các kỹ sư đã bị thuyết phục rằng bản mẫu có thể được sử dụng để phát triển một framework dành cho lập trình ứng dụng di động sử dụng JavaScript. Jordan và Christopher đã huy động cả một nhóm để xây dựng công nghệ này và họ đã cho ra đời cái mà hiện nay chúng ta gọi là React Native.

 
React Native open sourced

Framework cơ bản của React Native được ra mắt tại Hội thảo React.JS Conf Tháng 1 Năm 2015. Tháng 3 cùng năm, React Native trở thành mã nguồn mở và có trên GitHub.

Vào Tháng 9, React Native cho Android cũng được ra mắt.

Năm 2016 Các lập trình viên Facebook của React Native framework công bố rằng React Native có thể hỗ trợ cả các nền tảng Windows và Tizen.

 
Các vấn đề được giải quyết bởi React Native

2 công ty OS di động lớn – Apple và Google – sẽ không bao giờ hợp tác cùng nhau để cung cấp một nền tảng lập trình ứng dụng thống nhất. Facebook đã cung cấp giải phảp thay thế tốt nhất — một framework cho phép các lập trình viên ứng dụng di động sử dụng JavaScript để phát triển các ứng dụng và and compile và biên dịch chúng vào codebase cho bất kỳ nền tảng nào. Và trong quá trình đó, nó đã giải quyết được những vấn đề nan giải mà các nhà phát triển ứng dụng gốc gặp phải.

Bất cứ khi nào cần phải tiến hành các thay đổi trong code, các lập trình viên chỉ cần thực hiện một lần trong code JavaScript. Khi biên dịch, mỗi codebase được cập nhật tự động và ra mắt trên các kho ứng dụng tương ứng.
 

Tương lai của React Native

React Native đã được hàng triệu lập trình viên trên thế giới để tạo ra các sản phẩm cung cấp các trải nghiệm người dùng tuyệt vời một cách nhanh chóng và hiệu quả về chi phí. Sau đây là một vài số liệu từ GitHub về kho lưu trữ dữ liệu của React Native cho đến ngày 2/9/2020:
 
Lượt xem 3.1k
Số sao 89.9k
Lượt sao chép 19.9k
Số lượt pull request trong vòng 1 tháng qua 61
Số chủ đề giải đáp thắc mắc đã đóng 237
Số chủ đề giải đáp thắc mắc còn mở 119
 
Trong hội thảo F8 năm 2019, Kỹ sư của Facebook, Eli White nói rằng họ đang tập trung vào các chủ sở hữu sản phầm mà đang phát triển và duy trì sản phẩm sử dụng React Native. Chính Facebook cũng đang sử dụng React Native để phảt triển trải nghiệm người dùng và chất lượng sàn giao dịch của họ.
 
Kết luận

React Native là một nền tảng lập trình ứng dụng di động được phát triển bởi Facebook dành cho công việc phát triển phần mềm nội bộ. Nó trở thành mã nguồn mở vào tháng 3 năm 2015 dành cho lập trình ứng dụng di động iOS. Đến tháng 9, một phiên bản cho Android cũng được ra mắt. Sau đó, nó cũng hỗ trợ cả các nền tảng Windows và Tizen. 

Lập trình ứng dụng bằng React Native cho phép các lập trình viên viết code bằng JavaScript mà có thể được biên dịch vào iOS, Android, hay bất kỳ nền tảng nào được hỗ trợ theo nhu cầu. Sử dụng phương pháp này giúp đẩy nhanh quả trình lặp, cho phép các lập trình viên ra mắt các phiên bản trên kho ứng dụng nhanh hơn.


Chờ chút: Nếu bạn đang tự học Front end và muốn đi làm nhanh về lĩnh vực này thì hãy tham gia ngay  KHÓA HỌC FRONT END chuyên nghiệp với React.js và React Native. Đào tạo từ số 0 cho người mới bắt đầu. Hỗ trợ giới thiệu thực tập / Việc làm sau khóa học.

---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
 
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python
 

Bình luận Facebook
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!