Jetpack Compose và Jetpack DataStore là hai thư viện quan trọng của Jetpack, một bộ công cụ và thư viện hỗ trợ cho việc phát triển ứng dụng Android. Dưới đây là giải thích ngắn gọn về cả hai thư viện và cách chúng được sử dụng trong lập trình Android.
Video hướng dẫn.
1. Jetpack Compose.
Jetpack Compose là một toolkit để xây dựng giao diện người dùng (UI) trong ứng dụng Android bằng cách sử dụng mã Kotlin. Nó thay thế phương thức truyền thống là XML-based UI và cung cấp một cách linh hoạt, mạnh mẽ hơn để xây dựng giao diện người dùng. Compose sử dụng hàm và khối mã để định nghĩa giao diện người dùng, thay vì sử dụng các tệp XML.
Cách sử dụng Jetpack Compose.
1. Thêm dependency:
Thêm các dependency của Jetpack Compose vào file build.gradle
của mô-đun ứng dụng.
android {
...
}
dependencies {
implementation "androidx.activity:activity-compose:1.3.1"
implementation "androidx.compose.foundation:foundation:1.0.5"
implementation "androidx.compose.material:material:1.0.5"
implementation "androidx.compose.ui:ui-tooling:1.0.5"
implementation "androidx.compose.runtime:runtime-livedata:1.0.5"
}
2. Viết mã Compose:
Xây dựng giao diện người dùng bằng cách sử dụng Compose functions và modifiers.
@Composable
fun MyApp() {
MaterialTheme {
Column(
modifier = Modifier
.fillMaxSize()
.padding(16.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Text("Hello, Jetpack Compose!")
}
}
}
3. Chạy ứng dụng:
Gọi hàm setContent
trong hàm onCreate
của Activity.
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApp()
}
}
}
2. Jetpack DataStore.
Jetpack DataStore là một thư viện giúp quản lý dữ liệu dễ dàng trong Android, đặc biệt là khi bạn cần lưu trữ và quản lý dữ liệu dưới dạng key-value pairs. Nó thay thế SharedPreferences với một cách tiếp cận hiện đại hơn và hỗ trợ các loại dữ liệu phức tạp hơn.
Cách sử dụng Jetpack DataStore.
- Thêm dependency:
Thêm dependency của Jetpack DataStore vào filebuild.gradle
của mô-đun ứng dụng.
android {
...
}
dependencies {
implementation "androidx.datastore:datastore-preferences:1.0.0"
}
2. Xây dựng DataStore:
Tạo một class để quản lý DataStore và định nghĩa các khóa (keys) cho dữ liệu.
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.*
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
class SettingsManager(context: Context) {
private val dataStore: DataStore<Preferences> = context.createDataStore(name = "settings")
val theme: Flow<Theme> = dataStore.data
.map { preferences ->
val themeValue = preferences[SettingsKeys.THEME] ?: Theme.SYSTEM
Theme.valueOf(themeValue.name)
}
suspend fun setTheme(theme: Theme) {
dataStore.edit { preferences ->
preferences[SettingsKeys.THEME] = theme.name
}
}
private object SettingsKeys {
val THEME = preferencesKey<String>("theme")
}
}
enum class Theme {
LIGHT, DARK, SYSTEM
}
3. Sử dụng DataStore trong ứng dụng:
Sử dụng SettingsManager
để lưu trạng thái và nhận thông tin từ DataStore.
@Composable
fun ThemeSelector(settingsManager: SettingsManager) {
val theme by settingsManager.theme.collectAsState()
// ... Your Compose UI code
}
Trên đây là một tóm tắt ngắn gọn về cách sử dụng Jetpack Compose và Jetpack DataStore trong lập trình Android. Để biết thêm chi tiết và chức năng, bạn có thể tham khảo tài liệu chính thức của Google và các ví dụ mã nguồn mở.
Code mẫu trong bài giảng: https://github.com/DuyLeHong/DataStoreExample
Liên hệ
Để được tư vấn lộ trình học chuẩn để học lấy nền tảng lập trình cơ bản / chuyển ngành / lên mức Lập trình viên chuyên nghiệp, đừng ngại inbox page fb.com/CodeFresherVN để Admin tư vấn lộ trình học với thời gian và chi phí phù hợp nhất cho bạn nhé!
Địa chỉ: Trung tâm CodeFresher – Tầng 5 tòa nhà Diamond Flower – số 1 Hoàng Đạo Thúy, Thanh Xuân, Hà Nội – SĐT: 081.318.8668