Dan Tech Academy
Sau bài này bạn sẽ
  • Xác thực GitHub access bằng GitHub CLI và clone private course repository
  • Mở đúng repository root trong Android Studio thay vì một nested module folder
  • Hiểu Gradle sync đầu tiên làm gì và phân loại error đầu tiên khi sync fail
Thời lượng12 phút
Độ khóBeginner

Clone Repo và Mở Project Lần Đầu

Mở project app production thật thay vì một toy starter project.

Video đang cập nhật

Video bài học sắp lên sóng

Trong lúc chờ, bạn hãy đọc bản text của bài học bên dưới: đầy đủ lý thuyết, code mẫu và checklist thực hành.

Bản quay đang trong khâu hậu kỳ

Mục Tiêu Bài Học

Học viên sẽ hoàn thành bài này với:

  • GitHub account đã access được private course repository,
  • Course codebase đã được clone vào workspace sạch,
  • Android Studio đang mở đúng project root,
  • Hiểu rõ Gradle sync đầu tiên đang làm gì.

Trước Khi Clone 1 Repo Trên GitHub

Cần đảm bảo:

  • GitHub access: Bạn có account, và thấy private repository.
  • Git authentication: máy tính của bạn có thể clone được code từ GitHub.
  • Project root: Android Studio mở đúng root folder, không phải nested module.

Tài liệu official:

Phần 1: Xác Nhận GitHub Access Trong Browser

Nếu course invite trỏ tới private GitHub repository, hãy mở link đó trong browser trước.

Kiểm tra các điểm này trước khi chạm vào terminal:

  1. Đã đăng nhập đúng GitHub account khi mua Khóa Học.
  2. Repository page mở được và không trả về 404.
  3. Thấy nút xanh Code hoặc clone URL.

Phần 2: Chọn Cách Authenticate

Có hai cách clone phổ biến:

CáchKhi nào dùngVí dụ
HTTPSDefault đơn giản; hợp với GitHub CLI hoặc credential manager loginhttps://github.com/org/repo.git
SSHHợp nếu bạn đã quen SSH keys và biết cách debug key problemsgit@github.com:org/repo.git

Bạn hãy cài GitHub CLI. Việc này sẽ giúp bạn không phải copy-paste personal access token vào terminal commands.

Cài xong CLI, chạy:

bash
gh --version
gh auth login
gh auth status

Làm theo browser login flow. Nếu gh auth status báo bạn đã login đúng account, máy này đã có authentication path sạch.

Đừng paste personal access token vào notes, screenshots, Discord, support messages hoặc shell history.

Phần 3: Tạo Workspace Sạch

Đừng clone course repository vào một folder download ngẫu nhiên. Hãy đặt nó ở nơi bạn sẽ giữ xuyên suốt course.

Ví dụ tốt:

bash
mkdir -p ~/Desktop/kotlin/dan-tech-academy
cd ~/Desktop/kotlin/dan-tech-academy

Bây giờ clone repository URL từ course dashboard hoặc GitHub access invite:

bash
git clone <course-repo-url>

Dùng đúng private repository URL mà bạn được cấp quyền.

Nếu clone fail với Repository not found, hãy kiểm tra browser access trước.

Nếu clone fail vì authentication prompt, hoàn tất GitHub CLI login hoặc credential manager setup rồi thử lại.

Phần 4: Mở Đúng Android Studio Folder

Android project thường có nhiều folder. Bạn phải mở repository root:

  • không phải folder app,
  • không phải feature,
  • không phải core,
  • không phải một nested module.

Root folder nên có các file/folder tương tự:

text
settings.gradle.kts
build.gradle.kts
...

Nếu bạn không thấy settings.gradle.kts, hãy dừng lại. Khả năng cao bạn đang ở sai folder.

Mở Android Studio, chọn Open, rồi chọn repo root folder. Để IDE import Gradle project.

Đây là chỗ người mới rất hay mất một giờ: Android Studio mở được nhiều folder, nhưng chỉ root folder mới cho Gradle đủ bản đồ project.

Phần 5: Để Gradle Sync Chạy Xong

Tài liệu official: Gradle build lifecycle.

First sync có thể chậm vì Gradle đang dựng local model cho project. Thường nó cần:

  • Đọc settings.gradle.kts để tìm included modules.
  • Đọc project và module build files.
  • Tải Gradle plugins và library dependencies.
  • Resolve Kotlin, Android Gradle Plugin, Compose và test tooling versions.
  • Build IDE indexes để Android Studio hiểu code.

Đây là bình thường. Đừng cancel first sync chỉ vì progress bar đứng yên.

Nguyên tắc rất đơn giản: chờ tới khi có success rõ ràng hoặc error đầu tiên rõ ràng.

Stack trace dài thường chỉ có một nguyên nhân thật nằm gần phía trên.

Định Hướng Nhanh, Chưa Cần Tìm Hiểu Sâu Về Module

Bạn chỉ cần bản đồ thô, chưa cần đi sâu vào từng module vội:

Khu vựcCách hiểu cho người mới
appApp entry point và wiring
featureScreens và user flows
domainUse cases và business rules
dataRepository implementations và external services
coreShared technical foundations
themeDesign system styling
ui-componentsUI building blocks dùng lại

Chúng ta sẽ học architecture kỹ ở các module sau. Hiện tại, chiến thắng rất đơn giản: bạn mở được project và biết mình đang đứng ở đâu.

Bảng Xử Lý Lỗi

Dạng lỗiKiểm tra trước
Repository page trả về 404Sai GitHub account hoặc chưa accept invite
Repository not found khi cloneBrowser access và clone URL
Authentication cứ hỏi lạigh auth status hoặc Git credential manager
Android Studio không có Gradle taskBạn mở nested folder thay vì repo root
Không tìm thấy SDKMở SDK Manager và xác nhận SDK location
Gradle không tải được dependenciesKiểm tra network, proxy, VPN hoặc repo access
JDK mismatchDùng bundled JDK của Android Studio
Plugin version errorXác nhận bạn đang mở đúng repo branch
Thiếu google-services.jsonHọc tiếp bài 04 trước khi kỳ vọng full app build

Checkpoint

Trước khi qua bài tiếp theo, ghi lại trạng thái clone và open-project:

bash
git status

Bạn hoàn tất bài này khi:

  • Android Studio đang mở repository root, không phải nested folder.
  • Gradle sync thành công, hoặc nếu sync fail, bạn đã copy được error rõ ràng đầu tiên và phân loại nó là access, SDK, JDK, network, dependency hoặc missing local config.
Đăng nhập