Android Weekly Notes #488

Android Weekly Issue #488

How to Secure Secrets ?? in Android (In-Depth) — Android Security-02

Manage your Gradle dependencies with Version Catalog (not only) in Android

多個module之后, 如何管理依賴就是個問題.

關(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é)合這個庫:
https://github.com/ben-manes/gradle-versions-plugin

詳情請見官方文檔:
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的曝光補償.

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:

  • 按屏幕顯示繪制.

Code

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容