Android Weekly Issue #488
How to Secure Secrets ?? in Android (In-Depth) — Android Security-02
-
https://github.com/google/tink
處理Android上的數(shù)據(jù)加密. 視頻: https://www.youtube.com/watch?v=2y9Ol2N1I4k
Manage your Gradle dependencies with Version Catalog (not only) in Android
多個(gè)module之后, 如何管理依賴就是個(gè)問題.
關(guān)于幾種做法的總結(jié): https://handstandsam.com/2018/02/11/kotlin-buildsrc-for-better-gradle-dependency-management/
Gradle 7.0 又出現(xiàn)了一種新方法:
首先在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'])
}
}
}
版本提醒需要結(jié)合這個(gè)庫:
https://github.com/ben-manes/gradle-versions-plugin
詳情請(qǐng)見官方文檔:
https://docs.gradle.org/current/userguide/platforms.html
Stressing memory on Android
Android的內(nèi)存管理.
Compose for Wear OS: Scaffold
手表應(yīng)用也可以用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'
本文講了發(fā)布到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的教程, 基本介紹, 具體做法, 取到數(shù)據(jù)然后刷新到UI上.
Protecting your backends with Firebase App Check
Firebase App Check. 防止后端被惡意訪問.
Using CameraX Exposure Compensation API
CameraX的曝光補(bǔ)償.
Jetpack Compose: Drag-and-drop reorder for lists
Jetpack Compose的list item拖拽排序.
用的是這個(gè)庫:
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都會(huì)被繪制.
LazyColumn:
- 按屏幕顯示繪制.