Đăng nhập

Bài 1: React Native là gì? Expo vs CLI

Chào bạn, chào mừng đến với bài học đầu tiên trong khóa học React Native.
Trong bài này, chúng ta sẽ cùng nhau tìm hiểu về:

  • React Native là gì?
  • Nó khác gì so với các cách làm app khác?
  • Hai cách phổ biến để bắt đầu học: Expo CLIReact Native CLI, nên chọn cái nào?
  • Và cuối cùng, bạn sẽ có một bài tập nhỏ để bắt đầu hành trình của mình.

Khái niệm cơ bản về React Native

Hãy tưởng tượng bạn được giao viết một ứng dụng di động. Thông thường, bạn sẽ phải học:

  • Swift hoặc Objective-C để làm iOS
  • Kotlin hoặc Java để làm Android

Như vậy là hai ngôn ngữ, hai môi trường, hai bộ công cụ, và bạn cần ít nhất hai người lập trình (nếu không muốn ôm hết một mình).

Đó là lý do tại sao React Native ra đời – một công cụ giúp bạn viết một lần bằng JavaScript, nhưng chạy trên cả Android và iOS. Bạn không cần viết lại app hai lần, không cần đội lập trình riêng cho từng nền tảng. Và vẫn đảm bảo được hiệu năng gần như ứng dụng gốc (native).

Nó không phải là trang web giả lập trong app. Mà nó thực sự dùng các thành phần giao diện gốc của hệ điều hành. Khi bạn viết <View>, nó sẽ biến thành UIView trên iOS và View trên Android – đó là thành phần thật của từng hệ.

Ví dụ thực tế

Công ty bạn đang muốn làm app quản lý nhân viên. Nếu dùng cách truyền thống, bạn cần 2 lập trình viên: một làm Android, một làm iOS. Nhưng nếu dùng React Native, một người viết là đủ.

Hoặc nếu bạn là một freelancer, một người bán hàng, hay một giáo viên muốn có app riêng, bạn không cần thuê hai bên phát triển. Chỉ cần biết React Native, bạn có thể tự làm app cho mình hoặc nhận dự án cho khách hàng.


React Native khác gì so với làm web?

Bạn có thể thắc mắc: “Nếu tôi đã biết ReactJS (dùng cho web), vậy học React Native có khác gì?”

Câu trả lời là: Cách tư duy giống nhau, nhưng công cụ thì khác.

ReactJS (Web)React Native (Mobile)
Dùng HTML: <div>, <span>, <button>Dùng component riêng: <View>, <Text>, <TouchableOpacity>
Dùng CSS hoặc styled-componentsDùng StyleSheet.create() hoặc thư viện CSS-in-JS
Chạy trên trình duyệtChạy trên điện thoại thật hoặc giả lập

Vì vậy, nếu bạn đã học qua ReactJS, bạn sẽ dễ bắt nhịp rất nhanh với React Native.
Còn nếu bạn chưa học ReactJS thì cũng không sao – chúng ta sẽ học từng bước một, từ gốc đến ngọn.


Expo CLI và React Native CLI – chọn cái nào?

Khi bạn bắt đầu học React Native, bạn sẽ gặp 2 cách khởi tạo dự án:

Cách 1: dùng Expo CLI

Đây là cách dễ nhất, nhanh nhất, phù hợp cho người mới. Expo là một bộ công cụ đóng gói sẵn rất nhiều tính năng, giúp bạn không cần cài Android Studio hay Xcode vẫn chạy app được.

Bạn có thể:

  • Tạo app chỉ với vài lệnh
  • Chạy app ngay trên điện thoại thật (bằng app Expo Go)
  • Không cần build APK hay IPA lúc đầu
  • Dễ chia sẻ app với bạn bè

Nhưng Expo có giới hạn: nếu bạn muốn dùng tính năng nâng cao như gọi native module tùy chỉnh, bạn phải eject ra khỏi Expo để chuyển sang CLI.

Cách 2: dùng React Native CLI (thuần)

Đây là cách “chính thống”, giống như lập trình native thực sự. Bạn cần:

  • Cài Android Studio (cho Android) hoặc Xcode (cho iOS)
  • Tự cấu hình môi trường
  • Build app, tạo giả lập, sign ứng dụng thủ công

Ưu điểm: Bạn có thể can thiệp sâu hơn vào ứng dụng, tích hợp native module, tùy biến mọi thứ.

Tóm lại:

Tiêu chíExpo CLIReact Native CLI
Dễ học✅ Rất dễ❌ Phức tạp hơn
Phù hợp cho người mới✅ Rất phù hợp❌ Chưa phù hợp
Tùy biến sâu❌ Hạn chế✅ Toàn quyền
Cần Android Studio❌ Không cần✅ Bắt buộc

Gợi ý của tôi:
Trong khóa học này, chúng ta sẽ bắt đầu bằng Expo CLI, để bạn có thể tập trung học lập trình chứ không phải lo cài môi trường. Sau này nếu bạn cần mở rộng, mình sẽ hướng dẫn bạn chuyển sang React Native CLI.


Bài tập sau bài học

Bài tập 1:
Tìm và liệt kê 3 ứng dụng phổ biến trên thế giới hoặc tại Việt Nam được xây dựng bằng React Native. Gợi ý: Facebook, Instagram, Discord, Shopee Food…

Bài tập 2:
Viết một đoạn mô tả ngắn (5–10 dòng):
Vì sao bạn chọn học React Native? Bạn muốn làm ứng dụng gì sau khóa học này?

Bài tập 3:
Tạo một tài liệu tổng hợp ngắn:

  • React Native là gì?
  • Ưu điểm so với native
  • So sánh Expo CLI và React Native CLI

Bạn có thể viết vào Notion, Word, hoặc đơn giản là một file .txt – miễn là bạn ghi lại để ghi nhớ và có thể ôn lại sau.


Kết luận

Trong bài học này, bạn đã hiểu:

  • React Native là gì và tại sao nó quan trọng
  • Điểm khác biệt giữa app native, web app và React Native
  • Cách khởi tạo dự án bằng Expo hoặc CLI
  • Và đặc biệt: bạn đã đặt viên gạch đầu tiên trên hành trình trở thành lập trình viên mobile

Ở bài tiếp theo, chúng ta sẽ cài đặt Expo CLI và tạo ứng dụng React Native đầu tiên.

Hẹn gặp bạn trong bài 2 nhé. Cứ bình tĩnh, không cần vội. Lập trình cũng giống như học một loại ngôn ngữ mới – học từng chữ, từng câu rồi sẽ nói được cả đoạn. Quan trọng nhất là: đừng bỏ cuộc giữa chừng.

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.