Android Weekly Issue #488
How to Secure Secrets 🔑 in Android (In-Depth) — Android Security-02
-
https://github.com/google/tink
處理Android上的數據加密. 視頻: https://www.youtube.com/watch?v=2y9Ol2N1I4k
Manage your Gradle dependencies with Version Catalog (not only) in Android
多個module之後, 如何管理依賴就是個問題.
關於幾種做法的總結: https://handstandsam.com/2018/02/11/kotlin-buildsrc-for-better-gradle-dependency-management/
Gradle 7.0 又出現了一種新方法:
首先在settings裏面:
enableFeaturePreview("VERSION_CATALOGS")
dependencyResolutionManagement {
versionCatalogs {
libs {
version('ver', '1.0.0')
alias('my-alias').to('group', 'artifact').versionRef('ver')
alias('another').to('group', 'artifact').versionRef('ver')
bundle('my-bundle', ['my-alias', 'another'])
}
}
}
版本提醒需要結合這個庫:
https://github.com/ben-manes/gradle-versions-plugin
詳情請見官方文檔:
https://docs.gradle.org/current/userguide/platforms.html
Stressing memory on Android
Android的內存管理.
Compose for Wear OS: Scaffold
手錶應用也可以用Compose.
What’s New in kotlinx.serialization 1.3
Kotlin serialization 1.3的新特性.
- 序列化值的編碼.
- 可空類型的處理.
- class discriminator.
Fastlane Tutorial for Android
fastlane還有screengrab呢.
androidTestImplementation('tools.fastlane:screengrab:2.1.0') {
exclude group: 'com.jraska:falcon'
}
androidTestImplementation 'com.jraska:falcon:2.2.0'
本文講了發佈到Firebase和Google Play上.
Introduction to Paging 3.0 in the MAD Skills Series
Fetching data and binding it to the UI in the MAD skills series
兩篇Paging3的教程, 基本介紹, 具體做法, 取到數據然後刷新到UI上.
Protecting your backends with Firebase App Check
Firebase App Check. 防止後端被惡意訪問.
Using CameraX Exposure Compensation API
CameraX的曝光補償.
Jetpack Compose: Drag-and-drop reorder for lists
Jetpack Compose的list item拖拽排序.
用的是這個庫:
https://github.com/aclassen/ComposeReorderable
val state = rememberReorderState() // 1.
val tasks by viewModel.getTasks().observeAsState(listOf())
LazyColumn(
state = state.listState,
modifier = Modifier
.reorderable(state, { fromPos, toPos -> // 2.
viewModel.onTaskReordered(tasks, fromPos, toPos)
})
.detectReorderAfterLongPress(state) // 3.
) {
items(tasks, key = { task -> task.id }) { task ->
Text(
task.text,
Modifier
.draggedItem(state.offsetByKey(task.id)) // 4.
)
}
}
Jetpack Compose: lists primer
Compose的List:
Column:
- 所有的item都會被繪製.
LazyColumn:
- 按屏幕顯示繪製.