Tạo ứng dụng Android đầu tiên của bạn

1. Trước khi bắt đầu

Cài đặt Android Studio trên máy tính của bạn nếu bạn chưa thực hiện việc này. Kiểm tra để chắc chắn rằng máy tính của bạn đáp ứng các yêu cầu về hệ thống cần thiết để chạy Android Studio (nằm ở cuối trang tải xuống). Nếu bạn cần thêm hướng dẫn chi tiết về quy trình thiết lập, hãy tham khảo lớp học lập trình về Tải xuống và cài đặt Android Studio.

Trong lớp học lập trình này, bạn sẽ tạo ứng dụng Android đầu tiên bằng mẫu dự án do Android Studio cung cấp. Bạn dùng Kotlin và Jetpack Compose để tuỳ chỉnh ứng dụng. Lưu ý rằng Android Studio sẽ được cập nhật và đôi khi có sự thay đổi về giao diện người dùng. Do đó, nếu giao diện Android Studio của bạn hơi khác so với ảnh chụp màn hình trong lớp học lập trình này thì cũng là điều bình thường.

Điều kiện tiên quyết

  • Kiến thức cơ bản về Kotlin.

Bạn cần có

  • Phiên bản mới nhất của Android Studio

Kiến thức bạn sẽ học được

  • Cách tạo ứng dụng Android bằng Android Studio
  • Cách chạy ứng dụng bằng Công cụ xem trước trong Android Studio
  • Cách cập nhật văn bản bằng Kotlin
  • Cách cập nhật Giao diện người dùng (UI) bằng Jetpack Compose
  • Cách xem trước ứng dụng bằng tính năng Xem trước trong Jetpack Compose

Sản phẩm bạn sẽ tạo ra

  • Một ứng dụng cho phép bạn tuỳ chỉnh phần giới thiệu của mình!

Đây là giao diện của ứng dụng khi bạn hoàn thành lớp học lập trình này (ngoại trừ việc ứng dụng sẽ được tuỳ chỉnh theo tên của bạn!):

13957184d295b16f.png

Bạn cần có

2. Tạo một dự án bằng mẫu

Trong lớp học lập trình này, bạn sẽ tạo một ứng dụng Android bằng mẫu dự án Empty Activity (Hoạt động trống) do Android Studio cung cấp.

Cách tạo dự án trong Android Studio:

  1. Nhấp đúp vào biểu tượng Android Studio để chạy Android Studio.

4853d32c0c91ae24.png

  1. Trong hộp thoại Welcome to Android Studio (Chào mừng bạn đến với Android Studio), hãy nhấp vào New Project (Dự án mới).

687a108b17ba9b20.png

Cửa sổ New Project (Dự án mới) mở ra với một danh sách các mẫu do Android Studio cung cấp.

2411487f7f8d88c0.png

Trong Android Studio, mẫu dự án là một dự án Android cung cấp bản thiết kế cho một loại ứng dụng nhất định. Mẫu dựng sẵn cấu trúc của dự án và các tệp cần thiết để Android Studio tạo dự án cho bạn. Mẫu bạn chọn sẽ cung cấp mã khởi đầu để giúp bạn bắt đầu nhanh hơn.

  1. Hãy chắc chắn rằng bạn đã chọn thẻ Phone and Tablet (Điện thoại và máy tính bảng).
  2. Nhấp vào mẫu Empty Activity (Hoạt động trống) để chọn mẫu đó cho dự án của bạn. Mẫu Empty Activity (Hoạt động trống) là mẫu dùng để tạo một dự án đơn giản mà bạn có thể dùng để tạo ứng dụng Compose. Mẫu này có một màn hình và hiển thị văn bản "Hello Android!".
  3. Nhấp vào Tiếp theo. Hộp thoại New Project (Dự án mới) sẽ mở ra. Hộp thoại này có một số trường để định cấu hình dự án.
  4. Định cấu hình dự án như sau:

Trường Name (Tên) dùng để nhập tên dự án cho loại lớp học lập trình "Thiệp chúc mừng" này.

Giữ nguyên trường Package name (Tên gói). Đây là cách sắp xếp các tệp trong cấu trúc tệp. Trong trường hợp này, tên gói là com.example.greetingcard.

Giữ nguyên trường Save location (Vị trí lưu). Trường này chứa vị trí mà bạn lưu tất cả các tệp liên quan đến dự án. Ghi lại vị trí của tệp trên máy tính để bạn có thể tìm thấy các tệp của mình.

Chọn API 24: Android 7.0 (Nougat) trên trình đơn trong trường Minimum SDK (SDK tối thiểu). Minimum SDK (SDK tối thiểu) chỉ phiên bản Android tối thiểu mà ứng dụng có thể chạy trên đó.

4b0786fccfc883fe.png

  1. Nhấp vào Hoàn tất. Quá trình này có thể tốn chút thời gian. Bạn có thể tranh thủ thưởng thức một tách trà trong lúc chờ đợi! Trong khi Android Studio đang thiết lập, thông báo và thanh tiến trình sẽ cho biết liệu Android Studio có vẫn đang thiết lập dự án của bạn hay không. Thông báo có thể như sau:

Hình ảnh này hiển thị một thanh tiến trình đang quay và văn bản

Một thông báo trông giống thông báo này cho bạn biết thời điểm thiết lập dự án.

Hình ảnh này hiển thị một thông báo đồng bố hoá Gradle có nội dung

  1. Bạn có thể thấy ngăn What's New (Tính năng mới) chứa thông tin cập nhật về các tính năng mới trong Android Studio. Bây giờ, hãy đóng ngăn này.

c4b2b7748563ebb7.png

  1. Nhấp vào Split (Phân tách) ở trên cùng bên phải của Android Studio. Như vậy, bạn có thể xem cả mã và bản thiết kế. Bạn cũng có thể nhấp vào Code (Mã) để chỉ xem mã hoặc nhấp vào Design (Bản thiết kế) để chỉ xem bản thiết kế.

b17a701425679ff1.png

Sau khi nhấn vào Split (Phân tách), bạn sẽ thấy 3 khu vực:

c24906abb54b261a.png

  • Chế độ xem Project (Dự án) (1) hiện các tệp và thư mục trong dự án của bạn
  • Khung hiển thị Code (Mã) (2) là nơi bạn chỉnh sửa mã
  • Chế độ xem Design (Bản thiết kế) (3) là nơi bạn xem trước giao diện ứng dụng của mình

Ở chế độ xem Design (Bản thiết kế), bạn sẽ thấy một ngăn trống có văn bản sau:

Văn bản có nội dung

  1. Nhấp vào Build & Refresh (Tạo và làm mới). Quá trình tạo có thể mất một chút thời gian. Tuy nhiên, khi quá trình này hoàn tất, bản xem trước sẽ hiện hộp văn bản có nội dung "Hello Android!" (Xin chào Android!). Hoạt động trống trong Compose chứa tất cả các mã cần thiết để tạo ứng dụng này.

a86077be9d06a909.png

3. Tìm tệp dự án

Trong phần này bạn sẽ tiếp tục khám phá Android Studio qua việc làm quen với cấu trúc tệp.

  1. Trong Android Studio, hãy xem thẻ Project (Dự án). Thẻ Project (Dự án) hiện các tệp và thư mục trong dự án của bạn. Khi bạn thiết lập dự án, tên gói là com.example.greetingcard. Bạn có thể xem gói đó ngay tại thẻ Project (Dự án). Về cơ bản, gói là một thư mục chứa mã. Android Studio sắp xếp dự án theo một cấu trúc thư mục gồm tập hợp các gói.
  2. Nếu cần, hãy chọn Android trên trình đơn thả xuống trong thẻ Project (Dự án).

52051aa2a3038b89.png

Đây là cách sắp xếp và chế độ xem chuẩn đối với các tệp mà bạn sử dụng. Những thông tin này sẽ hữu ích khi bạn viết mã cho dự án của mình vì bạn có thể dễ dàng truy cập vào các tệp mà bạn đang làm việc trong ứng dụng. Tuy nhiên, nếu bạn xem các tệp trong trình duyệt tệp, chẳng hạn như Finder hoặc Windows Explorer, thì thứ bậc tệp được sắp xếp rất khác.

  1. Chọn Project Source Files (Tệp nguồn dự án) từ trình đơn thả xuống. Giờ đây, bạn có thể duyệt qua các tệp theo cách tương tự như trong mọi trình duyệt tệp.

84dc993206449d28.png

  1. Chọn Android một lần nữa để quay lại chế độ xem trước. Hãy sử dụng chế độ xem Android cho khoá học này. Nếu cấu trúc tệp của bạn trông có vẻ lạ, hãy kiểm tra để đảm bảo bạn vẫn đang ở chế độ xem Android.

4. Cập nhật văn bản

Vậy là bạn đã làm quen với Android Studio. Đã đến lúc bắt đầu tạo thiệp chúc mừng!

Nhìn vào chế độ xem Code (Mã) của tệp MainActivity.kt. Lưu ý rằng có một số hàm được tạo tự động trong mã này, cụ thể là các hàm onCreate()setContent().

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            GreetingCardTheme {
                // A surface container using the 'background' color from the theme
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    Greeting("Android")
                }
            }
        }
    }
}

Hàm onCreate() là điểm truy cập đến ứng dụng Android này và gọi các hàm khác để tạo giao diện người dùng. Trong các chương trình Kotlin, hàm main() là điểm vào/điểm xuất phát khi thực thi. Trong các ứng dụng Android, hàm onCreate() sẽ thực hiện vai trò đó.

Hàm setContent() trong hàm onCreate() dùng để xác định bố cục của bạn thông qua các hàm có khả năng kết hợp. Tất cả các hàm được đánh dấu bằng chú thích @Composable có thể được gọi từ hàm setContent() hoặc từ các hàm khác có khả năng kết hợp. Chú thích này sẽ cho trình biên dịch Kotlin biết rằng hàm này được Jetpack Compose dùng để tạo giao diện người dùng.

Tiếp theo, hãy xem hàm Greeting(). Hàm Greeting() là hàm có khả năng kết hợp. Lưu ý: hãy chú giải @Composable phía trên hàm đó. Hàm có khả năng kết hợp này lấy một số dữ liệu đầu vào rồi tạo nội dung hiển thị trên màn hình.

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
    Text(
        text = "Hello $name!",
        modifier = modifier
    )
}

Bạn đã tìm hiểu về các hàm trước đây (nếu bạn cần ôn lại, hãy tham khảo phần Tạo và sử dụng các hàm trong codelab Kotlin). Tuy nhiên, các hàm này có một vài điểm khác biệt với những hàm có khả năng kết hợp.

178c1b8d480aefe2.png

    1. Bạn thêm chú giải @Composable trước hàm này.
    1. Tên hàm @Composable được viết hoa.
    1. Các hàm @Composable không thể trả về bất kỳ giá trị nào.
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
    Text(
        text =