Android Weekly Notes #488 Android Weekly Issue #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之後, 如何管理依賴就是個問題.

關於幾種做法的總結: 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:

  • 按屏幕顯示繪製.

Code

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章