在接下来的三个月中,我将自愿教授本科学生Android Development。因此,我也面对这个问题,我应该教新的开发人员组成还是XML?
我认为,有抱负的Android开发人员应该开始学习。这是我的四个原因:
1.准备生产
撰写已准备好生产。 Twitter,Play Store和Airbnb只是已经使用撰写的少数公司。它比one year since Compose reached version 1.0。
准备好生产是什么意思?
- 没有主要的错误或不必要的故障排除。
- API稳定,一致且直观。
- 没有性能问题,您的用户界面(UI)将顺利进行。
当我担任后端工程师一年后,我回到Android开发时,我很好奇我是否可以使用Compose构建复杂的UI。作为概念证明,我已经制作了a clone of Astro,这是一个快速的商业应用程序,我认为它具有真实应用程序的典型要求(分层UI,自定义行为,多个UI段等)。
因此,您不必担心学习撰写时会遇到太多问题。您可以发布带有Compose的真实应用。
2.简单
这是您如何使用XML编写UI的示例。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hi, my name is Aldo" />
<ImageView
android:id="@+id/ivProfile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/tvRole"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I'm an Android developer ?"
/>
</LinearLayout>
这就是您使用Compose编写UI的方式。
Column {
Text("Hi, my name is $name", style = TextStyle(
fontWeight = FontWeight.Bold))
AsyncImage(model = "https://example.com/img/user.png")
Text("I'm an Android developer ?")
}
即使从这个简单的用例中,您也可以看到撰写使用较少的代码行。
代码越简单,学习或教它就越容易。
您不需要学习:
- XML(只使用Kotlin)
- 将XML绑定到Kotlin类
- 通过使用ConstraintLayout来提高视图层次结构来提高性能
这意味着您有更多时间学习其他Android主题,例如ViewModel,Testing,Coroutines和JetPack库。
3.熟悉
如果您已经从其他平台学习了声明性UI,您会感到宾至如归。
查看这些代码片段,这些代码片段为iOS(SwiftUi)和跨平台(Flutter)构建相同的UI。
VStack {
Text("Hi, my name is \(name)!")
.fontWeight(.bold)
AsyncImage(url: URL(string: "https://example.com/img/user.png"))
Text("I'm an iOS developer ?")
}
Column(
children: const<Widget>[
Text('Hi, my name is $name', style: TextStyle(
fontSize: FontWeight.bold)),
Image.network('https://example.com/img/user.png')
Text('I\'m a Flutter developer ⬅️')
]
)
看起来有些相似,不是吗?
机会是,新的Android开发人员不会从事专职Android开发人员的职业。他们可能正在探索颤抖,iOS,后端,甚至不从事开发人员的职业。
通过使用Compose,您已经学习了一个可以应用于其他平台的概念。
4.支持
无论图书馆有多好,一开始学习新东西都可能很困难。当您卡住时,Complose有很多资源可以为您提供帮助,从官方的Android文档到众多社区文章。提到一些:
您也不需要担心与流行库集成。诸如JetPack组件(ViewModel,Navigation,Hilt等),Glide或Koin等流行的库与您的撰写代码兼容。
Compose仍然得到Google的积极支持,因此,即使您找到了错误或功能请求,也可以期望它在下一个版本中解决。
概括
总而言之,对于刚开始从Android开发开始的开发人员来说,COMPOSE是一个安全的选择。尽管XML仍然在旧版项目中占主导地位,但Compose是用于构建本地Android UI的现代工具包。继续并在第一个应用中使用撰写!
笔记
-
我将在Musamus Merauke大学(UMUS)教授Pemograman移动课程,作为Praktisimengajar.ID政府计划的一部分。谢谢您给我这个机会!
-
公平地说,XML也是声明性的UI,与Kotlin相比,冗长的UI。但是在XML中,您仍然需要为许多任务编写命令式代码。
-
封面照片由weston m
拍摄