再次离开他们,我敬拜孩子,但是,嘿,我们已经在为你们所有人写作。希望我已经在2023年晚些时候已经4个月了
如果您还记得,在上一篇文章中我留下了aquí,我们将pokedex放在一起,并用以下参数进行武装:
- 我们使用干净的体系结构连接API。在那场合我们不使用空间。
- 我们使用rxjava能够制作存储库和用途(Interactors)
- 我们将导航组件用于导航。
- 我们使用MVVM从片段或活动中构造API调用。
在这种情况下,我终于加深了 JetPack为Android组成的知识,我决定开始将Pokedex组合在一起,但使用这项技术,并进行了以下更改: p p>
- JetPack组成将从一开始就可以生成我们应用程序的整个工作流程。
- 我们将保持干净的体系结构的实现,但是现在我们将使用空间。
- 我们将保留MVVM的使用,但是现在我们将指导JetPack组成而不是片段。在以下文章中,我们将发现。
- 我们将使用Currutines代替RXJAVA,该curutines将在此Pokedex版本的开发中支付。
嘿,但是Jetpack构成了什么魔鬼?
jetpack构成是未来,它会说一些和圣,它是一个新的接口创建系统,包括Android,它是我们的每个图形接口都声明武器。
这种组装图形接口的方式已在Swiftui(iOS)和Flutter(Hybrid Apps)中非常普遍,因此学习曲线实际上已经学习了其他两个,也就是说,您知道,您知道Flutter,您将要去抓住喷气背包和swiftui作为水中的鱼(当然,每个框架的语法)。
JetPack中的界面的产生是否构成了变化?
肯定,正如我们前面提到的那样,(正如我们将从现在开始告诉您)使用声明性编程范式,该范式允许应用程序而不是组件中的所有组件或小部件组件中的所有组件或小部件,仅在érbol的组件中,只有必要的更改适用而不会影响UI的其余部分,从而使其在处理和消费资源方面更加经济。
现在,一些示例。
从历史上看,我们要生成一个文本视图,我们必须这样做:
<TextView
android:id="@+id/text_view_id"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/hello" />
现在撰写,声明文本视图如下:
@Composable
fun Greeting() {
Text("Hello")
}
同样,如果我们想要
@Composable
fun Greeting(name: String) {
Text("Hello $name")
}
好,直到一切顺利,但是您必须问我将其发送到界面是什么?如下:
@Composable
fun AppMainScreen() {
val scaffoldState = rememberScaffoldState()
val coroutineScope = rememberCoroutineScope()
Scaffold(
scaffoldState = scaffoldState,
topBar = {
TopBar(
title = "Pokedex",
buttonIcon = Icons.Filled.Menu,
onButtonClicked = {
coroutineScope.launch {
scaffoldState.drawerState.open()
}
}
)
},
drawerContent = {
Column(
modifier = Modifier
.fillMaxSize()
.padding(start = 8.dp, top = 32.dp),
horizontalAlignment = Alignment.CenterHorizontally,
) {
Greeting("World")
}
}
)
}
上述杯子可以将我们的主要目的修改为以下内容:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
PokedexTheme {
AppMainScreen()
}
}
}
}
这样,我们可以使用JetPack撰写第一个小型应用程序,并将看到:
在以下文章中,我将加深工具栏(已在上一个屏幕上),但我想解释必要的功能,以控制JetPack组合中的导航性和我们拥有的其他功能。此外,就接口而言,我们将建立更详细的内容。敬请期待。