# BeerMusic **Repository Path**: junwuming/BeerMusic ## Basic Information - **Project Name**: BeerMusic - **Description**: BeerMusic: app use mvvm module to develop - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-14 - **Last Updated**: 2022-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BeerMusic 项目架构 - App - Module 业务模块(`module`) - 基础组件(`lib`) :和业务完全无关 - 业务组件 (`biz`) : 和业务直接相关的, 如module相关的实体类、通用接口(图片上传接口等的汇总) 【Biz可以依赖Lib】 - 资源相关Shared ## Navigation You can reference the blog [how to use Navigation in you project](https://gitee.com/junwuming/notes/blob/master/README/2021%E5%B9%B410%E6%9C%8809%E6%97%A5-Navigation%E4%BD%BF%E7%94%A8demo.md) Best Practice Project: - [NavigationBasicSample](https://github.com/android/architecture-components-samples/tree/master/NavigationBasicSample) - [NavigationAdvancedSample](https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample) When Use Navigation manage serious fragment with a Activity, avoid use `android:fitsSystemWindows="true"` if don not known it ! May be it will cause `page dance` ## Material Design ### MD Color **[Building a Material Theme on Android: Color](https://www.material.io/blog/android-material-theme-color)** - Additional color slots - Color reusability and best practice - Prefer attrs - Colors with alpha **[The color system](https://material.io/design/color/the-color-system.html)** #### Color attributes #### Picking colors #### Color tools(Tools for picking colors) **[Material color tool](https://material.io/resources/color/)** **(include MDC UI surface)** **[tools-for-picking-colors](https://material.io/design/color/the-color-system.html#tools-for-picking-colors)** **(include MDC color table)** #### Things to consider ### Codelab tutorial **§  [Android–Kotlin](https://www.material.io/resources/tutorials#android-kotlin)** - **[Kotlin 101: Material basics](https://codelabs.developers.google.com/codelabs/mdc-101-kotlin)** - **[Kotlin 102: Structure and layout](https://codelabs.developers.google.com/codelabs/mdc-102-kotlin)** - **[Kotlin 103: Theming with color, shape, motion, and type](https://codelabs.developers.google.com/codelabs/mdc-103-kotlin)** - **[Kotlin 104: Advanced components](https://codelabs.developers.google.com/codelabs/mdc-104-kotlin)** - **[Kotlin 111: Incorporating Material components into your codebase](https://codelabs.developers.google.com/codelabs/mdc-111-kotlin)** - **[Building Beautiful Transitions with Material Motion using Kotlin](https://codelabs.developers.google.com/codelabs/material-motion-android/#0)** ### MD Motion **[Building Beautiful Transitions with Material Motion for Android](https://www.material.io/blog/android-material-motion)** Introducing four transition patterns and how to add them to your app! ## Knowledge Point ### Parcelize how to simplify Parcelable in kotlin ? 1、 Add `parcelize` tools ``` plugins { // xxx id 'kotlin-parcelize' } ``` 2、 在数据类中使用 `@Parcelize` 完成 `Parcelable` ``` import android.os.Parcelable import kotlinx.parcelize.Parcelize @Parcelize data class WxArticleTitleBean( // xxx val visible: Int? ) : Parcelable ``` ### SpannableStringBuilder **[ Android Span](https://zhuanlan.zhihu.com/p/42443364)** ### motion animation https://material.io/develop/android/theming/motion#material-container-transform