如何改进以下 Kotlin 应用项目代码?

How to improve the following Kotlin app project code?

我对使用 Kotlin 进行 android 应用程序开发真的很陌生。我遇到了编码挑战,要开发一个使用 TV MAZE API 搜索电视节目的应用程序。我学习了一些 Kotlin 基础知识并开发了应用程序。我的编码得到了以下反馈。任何人都可以帮助我理解以下几点以及如何根据以下几点改进我当前的代码吗?

  1. 完全没有架构(几乎所有东西都在Activity)
  2. 对变量使用 var 而不是 val
  3. 很多无用的注释(例如将文本设置为文本视图或return列表中的项目数)
  4. 使用 findViewById() 方法(更好:启用 DataBinding 或 ViewBinding)
  5. 未使用 Strings.xml(仅硬编码字符串)
  6. 手动json解析(最好使用Gson/kotlinX.Serialization/Moshi)
  7. 创建Adapter/Layout经理每次打电话happens/user搜索东西
  8. 代码格式可以改进(删除无用的空行)

Here is the code link

无法回答 Whosebug 中的问题。但为了您的参考,我可以提供一些资源和文档,您可以按照这些资源和文档来改进您的代码 -

  1. MVVM in Android by G&G
  2. Modern Android App Architecture by Google
  3. Sample App with MVVM architecture
  4. How to consume API with Retrofit and GSON.

1。完全没有架构

You should apply MVVM or MVP architecture for Your app.

2。对变量使用 var 而不是 val

You should understand the difference between mutable immutable variables, and use val for immutable

3。很多无用的注释(例如将文本设置为文本视图或 return 列表中的项目数)

You should first add the comment for the public method in interfaces, add comments to write class describe like JavaDoc

You should add comments to explain logic if logic looks not clear https://www.baeldung.com/cs/clean-code-comments#2-explaining-unclear-code

If code is clear and understandable You mustn't comment on it

4.using findViewById() 方法(更好:启用 DataBinding 或 ViewBinding)

use Kotlin static instead viewFindById https://medium.com/androiddevelopers/use-view-binding-to-replace-findviewbyid-c83942471fc

5.不使用 Strings.xml(仅硬编码字符串)

Please replace your hardcoded message string with adding strings to your android resources

6.Manualjson解析(最好用Gson/kotlinX.Serialization/Moshi)

You should add Moshi library to your project for parsing https://github.com/square/moshi

8 代码格式可以改进(删除无用的空行)

When You coding You should each time formating your code with hot key in android studio

1- 给你说清楚,就是关注分离!
想象你有一个项目,你正在做它,这个项目越来越大,如果你想调试你的应用程序或者以后维护它,这是非常困难的。 当你使用应用程序架构时,将你的应用程序的每一层分开,例如,你有一个视图层,你正在处理你的 UI 并且你的应用程序的业务逻辑不存在于该层中,因此代码简洁明了易于阅读、维护和调试,可以更好地编写测试和其他一些好处。
2- 当你需要一个你想稍后改变的变量时,你必须使用 var 关键字,否则不需要将变量声明为 var.
3- 注释用于清除一些代码,以便其他开发人员或您自己更好地理解这些代码,避免在您的项目中使用无法使用的注释。
4- findViewById() 方法成本最高,但是如果您使用 viewBinding android,请在后台使用此方法。使用 viewBinding 的好处是您的所有视图都已初始化,并且无需担心 NPE(空指针异常)。
5- 当您想为世界各地的用户发布某种语言的应用程序时,您必须找到硬编码字符串并将其转换为该国家/地区的语言,您是否同意这是一个复杂的过程? :)
6- 总是在你的项目中使用解析器或 ORM,因为如果你手动解析 json 它可能会通过使用错误的 json 键在你的应用程序中产生一些异常。
7- android 中的膨胀布局成本最高,您必须更新数据并仅更新适配器。
8- 始终更新并改进您的代码。 :)
阅读 Android Developer Site 它可以帮助你,在 youtube 上看一些课程,书籍对我们来说是最好的朋友,不要忘记多读书。 :),快乐编码。