Kiến thức cơ bản về cách tạo ứng dụng Android bằng Compose là một khoá học trực tuyến theo tiến độ riêng về cách xây dựng ứng dụng Android bằng các phương pháp hay nhất và mới nhất. Khoá học này trình bày kiến thức cơ bản về cách tạo ứng dụng bằng Jetpack Compose, bộ công cụ nên dùng để xây dựng giao diện người dùng trên Android.

Mục tiêu khoá học

  • Tìm hiểu kiến thức cơ bản về Kotlin và Jetpack Compose
  • Tạo một loạt ứng dụng Android cơ bản
  • Dùng cấu trúc ứng dụng Android, thư viện Jetpack và xử lý dữ liệu theo các phương pháp Phát triển Android hiện đại

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

  • Kỹ năng máy tính cơ bản
  • Kỹ năng toán học cơ bản
  • Một máy tính có thể chạy Android Studio (xem yêu cầu về hệ thống)
  • (Không bắt buộc) Thiết bị Android
Bài 1: Ứng dụng Android đầu tiên

3 lộ trình | Thời lượng: 10 giờ

Tìm hiểu kiến thức cơ bản về lập trình và tạo ứng dụng Android đầu tiên của bạn.
  • Viết các chương trình Kotlin đơn giản cho thấy kết quả đầu ra dưới dạng văn bản.
  • Tải và cài đặt Android Studio.
  • Tạo ứng dụng Android có giao diện người dùng đơn giản để hiển thị văn bản và hình ảnh.
  • Chạy ứng dụng trên thiết bị hoặc trình mô phỏng.
Giới thiệu về Kotlin

Lộ trình 1 | Thời lượng: 3 giờ
Tìm hiểu các khái niệm lập trình cơ bản trong Kotlin.

Trước khi bạn bắt đầu
Lớp học lập trình
Chào mừng bạn đến với khoá học Kiến thức cơ bản về Compose trên Android!
Video
Chương trình đầu tiên của bạn trên Kotlin
Lớp học lập trình
Tạo và sử dụng các biến trong Kotlin
Lớp học lập trình
Tạo và sử dụng các hàm trong Kotlin
Lớp học lập trình
Thực hành: Khái niệm cơ bản về Kotlin
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Thiết lập Android Studio

Lộ trình 2 | Thời lượng: 4 giờ
Cài đặt và thiết lập Android Studio, tạo dự án đầu tiên của bạn và chạy dự án đó trên một thiết bị hoặc trình mô phỏng.

Giới thiệu về Android Studio
Video
Tải và cài đặt Android Studio
Lớp học lập trình
Tạo ứng dụng Android đầu tiên của bạn
Lớp học lập trình
Chạy ứng dụng đầu tiên của bạn trên Trình mô phỏng Android
Lớp học lập trình
Cách kết nối Trình mô phỏng Android
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Tạo một bố cục cơ bản

Lộ trình 3 | Thời lượng: 3 giờ
Tạo một ứng dụng Android có giao diện người dùng đơn giản để hiển thị văn bản và hình ảnh.

Giới thiệu về Jetpack Compose
Video
Thiết kế ứng dụng thiệp sinh nhật
Video
Tạo ứng dụng đơn giản với thành phần kết hợp văn bản
Lớp học lập trình
Thêm hình ảnh vào ứng dụng Android
Lớp học lập trình
Thực hành: Kiến thức cơ bản về Compose
Lớp học lập trình
Dự án: Tạo ứng dụng danh thiếp
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Bài 2: Xây dựng giao diện người dùng của ứng dụng

3 lộ trình | Thời lượng: 21 giờ

Tiếp tục tìm hiểu những kiến thức cơ bản về Kotlin và bắt đầu tạo thêm các ứng dụng giàu tính tương tác hơn.
  • Sử dụng các điều kiện, loại hàm, lớp và biểu thức lambda trong Kotlin.
  • Tìm hiểu cách hoạt động của tính năng cấu trúc (composition) và tái cấu trúc (recomposition).
  • Thêm một nút vào giao diện người dùng ứng dụng và phản hồi thao tác nhấn của người dùng.
  • Tạo một ứng dụng hoạt động với dữ liệu do người dùng nhập.
  • Tìm hiểu cách sử dụng trạng thái để hiển thị dữ liệu và tự động phản ánh các thay đổi khi dữ liệu được cập nhật.
  • Viết mã kiểm thử đơn vị để kiểm thử các hàm riêng biệt.
Khái niệm cơ bản về Kotlin

Lộ trình 1 | Thời lượng: 8 giờ
Tìm hiểu thêm các khái niệm cơ bản về Kotlin, lập trình hướng đối tượng và hàm lambda.

Khái niệm cơ bản về Kotlin
Video
Viết các điều kiện trong Kotlin
Lớp học lập trình
Sử dụng thuộc tính rỗng trong Kotlin
Lớp học lập trình
Sử dụng các lớp và đối tượng trong Kotlin
Lớp học lập trình
Dùng các loại hàm và biểu thức lambda trong Kotlin
Lớp học lập trình
Thực hành: Kiến thức cơ bản về Kotlin
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Thêm một nút vào một ứng dụng

Lộ trình 2 | Thời lượng: 6 giờ
Tìm hiểu cách phản hồi một lượt nhấp vào nút trong một ứng dụng Android.

Giới thiệu về ứng dụng Dice Roller (Đổ xúc xắc)
Video
Tạo ứng dụng Dice Roller có thể tương tác
Lớp học lập trình
Sử dụng trình gỡ lỗi trong Android Studio
Lớp học lập trình
Thực hành: Hành vi nhấp chuột
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Tương tác với giao diện người dùng và trạng thái

Lộ trình 3 | Thời lượng: 7 giờ
Tạo một ứng dụng tính tiền boa dựa trên hoạt động đầu vào của người dùng.

Tìm hiểu trạng thái trong Compose
Video
Giới thiệu về công cụ tính tiền boa
Video
Giới thiệu về trạng thái trong Compose
Lớp học lập trình
Tính toán tiền boa tuỳ chỉnh
Lớp học lập trình
Viết bài kiểm thử tự động
Lớp học lập trình
Dự án: Tạo ứng dụng Art Space
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Bài 3: Hiển thị danh sách và sử dụng Material Design

3 lộ trình | Thời lượng: 15 giờ

Tạo ứng dụng hiển thị danh sách dữ liệu và tìm hiểu cách làm cho ứng dụng thêm bắt mắt với Material Design.
  • Sử dụng các lớp, hàm và tập hợp dữ liệu trong Kotlin.
  • Tạo danh sách có thể cuộn trong một ứng dụng hiển thị cả văn bản và hình ảnh.
  • Thêm trình nghe lượt nhấp để tương tác với các mục trong danh sách.
  • Thêm thanh ứng dụng vào ứng dụng và sửa đổi giao diện của ứng dụng.
  • Dùng Material Design để xây dựng giao diện người dùng hiện đại và trực quan bằng màu sắc, hình dạng và kiểu chữ.
Kiến thức cơ bản khác về Kotlin

Lộ trình 1 | Thời lượng: 8 giờ
Tìm hiểu thêm về các khái niệm lập trình bằng Kotlin, giúp bạn xây dựng những ứng dụng Android hay và thú vị hơn.

Kiến thức cơ bản khác về Kotlin
Video
Các thành phần chung, đối tượng và tiện ích
Lớp học lập trình
Dùng các tập hợp trong Kotlin
Lớp học lập trình
Các hàm bậc cao hơn với tập hợp
Lớp học lập trình
Thực hành: Lớp và Tập hợp
Lớp học lập trình
Bài kiểm tra
Tạo một danh sách có thể cuộn

Lộ trình 2 | Thời lượng: 4 giờ
Tạo một ứng dụng hiển thị danh sách văn bản và hình ảnh có thể cuộn được bằng cách sử dụng tính năng Compose.

Giới thiệu về ứng dụng Affirmations
Video
Thêm danh sách có thể cuộn
Lớp học lập trình
Thay đổi biểu tượng ứng dụng
Lớp học lập trình
Thực hành: Xây dựng lưới
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Tạo các ứng dụng đẹp mắt

Lộ trình 3 | Thời lượng: 3 giờ
Làm cho ứng dụng của bạn trở nên bắt mắt và trực quan hơn với Material Design, ảnh động và các phương pháp hay nhất về hỗ trợ tiếp cận.

Giới thiệu về Material Design qua Compose
Video
Dùng Jetpack Compose để tuỳ chỉnh giao diện Material
Lớp học lập trình
Thêm ảnh động đơn giản nhờ Jetpack Compose
Lớp học lập trình
Kiểm thử khả năng hỗ trợ tiếp cận
Lớp học lập trình
Thực hành: Tạo ứng dụng Superheroes
Lớp học lập trình
Dự án: Tạo ứng dụng 30 Days (30 ngày)
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Học phần 4: Điều hướng và cấu trúc ứng dụng

3 lộ trình | Thời lượng: 27 giờ

Tìm hiểu các phương pháp hay nhất về cấu trúc ứng dụng để tạo các ứng dụng phức tạp hơn. Giúp người dùng dễ dàng điều hướng qua lại, vào và rời khỏi các màn hình trong ứng dụng để mang lại trải nghiệm nhất quán và dễ dự đoán cho họ.
  • Giải thích các hoạt động và vòng đời của chúng.
  • Tìm hiểu về cấu trúc Android hiện đại.
  • Sử dụng mẫu StateFlow và UDF để làm việc với trạng thái và sự kiện.
  • Thêm ViewModel để lưu dữ liệu và trạng thái.
  • Thiết lập và sử dụng thành phần Điều hướng bằng Compose.
  • Tìm hiểu về khái niệm giao diện người dùng thích ứng.
  • Sử dụng các kích thước lớp cửa sổ để thiết kế cho nhiều kích thước màn hình.
  • Thêm một ngăn điều hướng vào ứng dụng.
Thành phần cấu trúc

Lộ trình 1 | Thời lượng: 9 giờ
Tìm hiểu về cấu trúc ứng dụng và cách sử dụng ViewModel, Trạng thái giao diện người dùng (UI State) và StateFlow để tạo những ứng dụng phức tạp hơn.

Chào mừng bạn đến với Bài 4!
Video
Các giai đoạn trong Vòng đời hoạt động
Lớp học lập trình
Giới thiệu về Cấu trúc ứng dụng
Video
Cấu trúc: Lớp giao diện người dùng
Video
ViewModel và Trạng thái trong Compose
Lớp học lập trình
Viết bài kiểm thử đơn vị để kiểm thử ViewModel
Lớp học lập trình
Thực hành: Thêm ViewModel vào Dessert Clicker
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Điều hướng trong Jetpack Compose

Lộ trình 2 | Thời lượng: 6 giờ
Tìm hiểu cách sử dụng thành phần Điều hướng để tạo các ứng dụng phức tạp hơn, phù hợp với nhiều màn hình hơn cũng như cách di chuyển và truyền dữ liệu giữa các thành phần kết hợp khác nhau.

Giới thiệu về thành phần Điều hướng và ứng dụng Cupcake
Video
Lớp học lập trình
Kiểm thử ứng dụng Cupcake
Lớp học lập trình
Thực hành: Thêm thành phần điều hướng
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Điều chỉnh cho phù hợp với nhiều kích thước màn hình

Lộ trình 3 | Thời lượng: 13 giờ
Trong lộ trình này, bạn sẽ tìm hiểu cách điều chỉnh ứng dụng sao cho phù hợp với nhiều kích thước màn hình và mang lại trải nghiệm tốt hơn cho người dùng, cũng như cách kiểm thử giao diện người dùng thích ứng.

Bố cục thích ứng
Video
Giới thiệu về ứng dụng Reply (Trả lời)
Video
Tạo ứng dụng thích ứng bằng tính năng điều hướng động
Lớp học lập trình
Tạo ứng dụng bằng bố cục thích ứng
Lớp học lập trình
Thực hành: Xây dựng ứng dụng Sports
Lớp học lập trình
Dự án: Tạo ứng dụng My City
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Bài 5: Kết nối Internet

2 lộ trình | Thời lượng: 14 giờ

Sử dụng coroutine của Kotlin để thực hiện nhiều thao tác cùng một lúc. Đồng thời, hãy tìm hiểu về HTTP và REST để thu thập dữ liệu trên Internet bằng Retrofit. Sau đó, sử dụng thư viện Coil để thể hiện hình ảnh trong ứng dụng của bạn.
  • Mô tả thông tin cơ bản về tính năng đồng thời và cách sử dụng coroutine trong ứng dụng Android.
  • Xác định và tìm hiểu về lớp dữ liệu này trong cấu trúc ứng dụng Android hiện đại.
  • Triển khai kho lưu trữ để tập trung hoá quyền truy cập dữ liệu.
  • Sử dụng Retrofit để truy xuất dữ liệu từ máy chủ từ xa.
  • Tải và hiển thị hình ảnh bằng thư viện Coil.
  • Triển khai tính năng chèn phần phụ thuộc để phân tách các lớp, giúp bạn dễ dàng kiểm thử, duy trì và mở rộng ứng dụng.
Lấy dữ liệu trên Internet

Lộ trình 1 | Thời lượng: 6 giờ
Triển khai coroutine để thực hiện đồng thời các thao tác mà không chặn ứng dụng, đồng thời tìm hiểu về HTTP và REST để lấy dữ liệu trên Internet.

Kết nối Internet
Video
Giới thiệu về coroutine trong Kotlin Playground
Lớp học lập trình
Giới thiệu về coroutine trong Android Studio
Lớp học lập trình
Giới thiệu về HTTP/REST
Video
Lấy dữ liệu trên Internet
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Tải và hiển thị hình ảnh từ Internet

Lộ trình 2 | Thời lượng: 3 giờ
Áp dụng các phương pháp hay nhất về cấu trúc cho ứng dụng và dùng Coil để tải xuống và hiển thị hình ảnh.

Cấu trúc: Lớp dữ liệu
Video
Thêm kho lưu trữ và chèn phần phụ thuộc theo cách thủ công
Lớp học lập trình
Tải và hiển thị hình ảnh từ Internet
Lớp học lập trình
Thực hành: Tạo ứng dụng Amphibians (Động vật lưỡng cư)
Lớp học lập trình
Dự án: Tạo ứng dụng Bookshelf (Giá sách)
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Bài 6: Khả năng lưu trữ cố định dữ liệu

3 lộ trình | Thời lượng: 10 giờ

Tìm hiểu cách lưu trữ dữ liệu trên thiết bị, đồng thời giúp ứng dụng luôn hoạt động qua mọi tình trạng gián đoạn mạng để mang lại trải nghiệm mượt mà và nhất quán cho người dùng.
  • Tìm hiểu kiến thức cơ bản về SQL để chèn, cập nhật và xoá dữ liệu khỏi cơ sở dữ liệu SQLite.
  • Sử dụng thư viện Room để thêm cơ sở dữ liệu vào ứng dụng Android.
  • Sử dụng Trình kiểm tra cơ sở dữ liệu để kiểm tra và gỡ lỗi các vấn đề về cơ sở dữ liệu.
  • Sử dụng Preference DataStore để lưu trữ lựa chọn ưu tiên của người dùng.
Giới thiệu về SQL

Lộ trình 1 | Thời lượng: 2 giờ
Tìm hiểu cách sử dụng SQL để đọc và thao tác với dữ liệu trong một cơ sở dữ liệu quan hệ.

Giới thiệu về Cơ sở dữ liệu và SQL
Video
Sử dụng SQL để đọc và ghi vào cơ sở dữ liệu
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Dùng Room để lưu trữ cố định dữ liệu

Lộ trình 2 | Thời lượng: 6 giờ
Dùng thư viện Room để dễ dàng tạo và sử dụng cơ sở dữ liệu quan hệ trong một ứng dụng Android.

Luồng Kotlin trong thực tế
Video
Kiểm thử luồng
Bài viết
API Kotlin cho Room
Video
Lưu trữ cố định dữ liệu bằng Room
Lớp học lập trình
Đọc và cập nhật dữ liệu thông qua Room
Lớp học lập trình
Thực hành: Tạo ứng dụng Bus Schedule (Lịch trình xe buýt)
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Lưu trữ và truy cập dữ liệu bằng các khoá với DataStore

Lộ trình 3 | Thời lượng: 2 giờ
Tìm hiểu cách lưu trữ dữ liệu cặp khoá-giá trị đơn giản bằng Preferences DataStore trong ứng dụng Android

Giới thiệu về Datastore
Video
Preferences Datastore
Video
Lưu lựa chọn ưu tiên trên thiết bị bằng DataStore
Lớp học lập trình
Dự án: Tạo ứng dụng Flight Search (Tìm kiếm chuyến bay)
Lớp học lập trình
Tiếp theo là gì?
Video
Bài kiểm tra
Bài 7: WorkManager

1 lộ trình | Thời lượng: 6 giờ

Sử dụng WorkManager API của Android Jetpack để lên lịch cho những thao tác cần thiết ở chế độ nền, chẳng hạn như sao lưu dữ liệu hoặc tải nội dung mới xuống. Những thao tác này vẫn tiếp tục hoạt động ngay cả khi ứng dụng thoát ra hoặc thiết bị khởi động lại.
  • Xác định các tác vụ chạy trong thời gian dài cần chạy ở chế độ nền.
  • Thêm WorkManager vào ứng dụng Android.
  • Tạo đối tượng Worker và thêm tác vụ vào hàng đợi.
  • Tạo quy tắc ràng buộc trên WorkRequest.
  • Sử dụng Công cụ kiểm tra tác vụ trong nền (Background Task Inspector) để kiểm tra và gỡ lỗi WorkManager.
Lên lịch các tác vụ bằng WorkManager

Lộ trình 1 | Thời lượng: 3 giờ
Tìm hiểu về thời điểm và cách sử dụng WorkManager. Đây là API xử lý tác vụ cần chạy trong nền bất kể quy trình xử lý ứng dụng có đang chạy hay không.

Giới thiệu về WorkManager
Video
Triển khai WorkManager
Video
Làm việc ở chế độ nền bằng WorkManager
Lớp học lập trình
WorkManager và hoạt động kiểm thử nâng cao
Lớp học lập trình
Thực hành: Tạo ứng dụng Water Me
Lớp học lập trình
Bài kiểm tra
Bài 8: Khung hiển thị và Compose

2 lộ trình | Thời lượng: 4 giờ

Tìm hiểu cách sử dụng Compose và bộ công cụ giao diện người dùng cũ dựa trên Khung hiển thị nằm cạnh nhau (side-by-side) trong cùng một ứng dụng. Ở bài này, bạn sẽ tìm hiểu các API có khả năng tương tác và các phương pháp hay nhất để thêm tính năng mới vào ứng dụng hiện có trong Khung hiển thị, dùng thư viện hiện có sử dụng Khung hiển thị, hoặc sử dụng thành phần giao diện người dùng chưa được Compose hỗ trợ.
  • Tìm hiểu về bộ công cụ giao diện người dùng dựa trên Khung hiển thị và xây dựng giao diện người dùng của ứng dụng bằng XML.
  • Thêm thành phần kết hợp trong ứng dụng được xây dựng bằng Khung hiển thị.
  • Thêm thành phần Điều hướng vào ứng dụng và dùng thành phần này để di chuyển giữa các mảnh.
  • Sử dụng AndroidView để hiển thị các khung hiển thị.
  • Thêm các thành phần giao diện người dùng hiện có dựa trên Khung hiển thị trong một ứng dụng Compose.
Khung hiển thị Android và Compose trong Khung hiển thị

Lộ trình 1 | Thời lượng: 3 giờ
Tìm hiểu kiến thức cơ bản về cách tạo ứng dụng bằng Khung hiển thị Android (Android Views) và cách thêm thành phần kết hợp trong ứng dụng được tạo bằng Khung hiển thị.

Hệ thống Khung hiển thị Android
Video
Tạo ứng dụng Android bằng Khung hiển thị
Lớp học lập trình
Compose trong Khung hiển thị
Video
Thêm Compose vào một ứng dụng cũ
Lớp học lập trình
Bài kiểm tra
Khung hiển thị trong Compose

Lộ trình 2 | Thời lượng: 1 giờ
Tìm hiểu cách thêm và sử dụng Khung hiển thị hiện có trong một ứng dụng được tạo bằng Jetpack Compose.

Khung hiển thị trong Compose
Video
Khả năng tương tác với khung hiển thị trong Compose
Lớp học lập trình
Thêm Compose vào một ứng dụng cũ
Lớp học lập trình
Bài kiểm tra