当前位置:   article > 正文

Android JetPack Compose详解 Compose的设计原理和概念(从入门到入土)_android compose 原理

android compose 原理

前言:

继上一章初识Jetpack之后,我们继续来讲Compose的设计原理和基本概念

第⼆章 Compose的设计原理和基本概念
2.1 JetPack Compose 环境搭建
可以看到IDE已经帮我们构建了⽣成Compose的选项。
gradle 配置
1)在app⽬录下的build.gradle 中将app⽀持的最低API 版本设置为21或更⾼,同时开启Jetpack Compose enable开关,代码如下:
在这里插入图片描述

  1. 添加Jetpack Compose⼯具包依赖项
    在app⽬录下的build.gradle添加Jetpack Compose ⼯具包依赖项,代码如下:
    implementation “androidx.compose.ui:ui: c o m p o s e v e r s i o n " / / M a t e r i a l D e s i g n i m p l e m e n t a t i o n " a n d r o i d x . c o m p o s e . m a t e r i a l : m a t e r i a l : compose_version" //Material Design implementation "androidx.compose.material:material: composeversion"//MaterialDesignimplementation"androidx.compose.material:material:compose_version”
    // Tooling support (Previews, etc.)
    implementation “androidx.compose.ui:ui-tooling- preview:$compose_version”
    implementation ‘androidx.activity:activity-compose:1.3.0-alpha06’ // Foundation (Border, Background, Box, Image, Scroll, shapes, animations, etc.)
    implementation(“androidx.compose.foundation:foundation:1.0.1”)

2.2 JetPack Compose
你有没有想过为什么Google要设计⼀套新的框架 ,我们不是有View和ViewGroup吗?Android发展有10年的时间了,之前的技术在构建新的⽤户需求的时候会捉襟见肘,开发⼈员需要有新的⼯具来完成UI的编程 。另外之前的View的代码已经很冗余了, Google也不希望在之前的代码上继续维护(或者说是污染代码、 修改代码)所以这是Compose的出来的缘 由。
总结来说:Compose的优势
紧密结合Kotlin,可以利⽤现代化编程语⾔的魅⼒(⾼阶函数、各种函数新特性)提⾼声明式UI开发效率结合最新的IDE可以进⾏实时预览、动画执⾏等功能Jetpack Compose 为我们提供了很多开箱即⽤的Material 组件,还有很多等你体验。
在这里插入图片描述
需要注意的地⽅,Runtime和Compile2个组件, 尤其是Complier完成Compose的编译和 中间结果的输出。Ui和material完成了Compose组件最核⼼的界⾯的展⽰ 。

2.3 JetPack Compose
Compose需要解决的问题是关注点分离 。强内聚低耦合。设计思想来说,java语⾔更多的是 使⽤继承 ,Kotlin推荐我们使⽤组合。组合可以增加⾃由度、解决java当中单个⽗类限制。
Jetpack Compose 是⼀个适⽤于 Android 的新式声明性界⾯⼯具包。 Compose 提供声明性 API,让您可在不以命令⽅式改变前端视图的情况下呈现应⽤界⾯,从⽽使编写和维护应⽤ 界⾯变得更加容易。

  • 声明性编程范式
  • 可组合函数 ( @Composable函数)

在这里插入图片描述

声明性范式转变 (在 Compose 的声明性⽅法中, 微件相对⽆状态,并且不提供 setter 或 getter 函数。)
经典素材阅读:
/**

  • Display a list of names the user can click with a header /
    @Composable
    fun NamePicker(
    header: String, names: List, onNameClicked: (String) -> Unit
    ) {
    Column {
    // this will recompose when [header] changes, but not when
    [names] changes
    Text(header, style = MaterialTheme.typography.h5)
    Divider()
    // LazyColumnFor is the Compose version of a RecyclerView. // The lambda passed is similar to a RecyclerView.ViewHolder. LazyColumnFor(names) { name ->
    // When an item’s [name] updates, the adapter for that
    item
    // will recompose. This will not recompose when [header]
    changes
    NamePickerItem(name, onNameClicked)
    }
    }
    }
    /
    *
  • Display a single name the user can click. */
    @Composable
    private fun NamePickerItem(name: String, onClicked: (String) -> Unit)
    {
    Text(name, Modifier.clickable(onClick = { onClicked(name) }))

总结

其实要轻松掌握很简单,要点就两个:

  1. 找到一套好的视频资料,紧跟大牛梳理好的知识框架进行学习。
  2. 多练。 (视频优势是互动感强,容易集中注意力)

你不需要是天才,也不需要具备强悍的天赋,只要做到这两点,短期内成功的概率是非常高的。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。下面资料部分截图是我花费几个月时间整理的,诚意满满:特别适合有3-5年开发经验的Android程序员们学习。扫描下方二维码即可获取全部资料

请添加图片描述
请添加图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/266990
推荐阅读
相关标签
  

闽ICP备14008679号