【发布时间】:2021-09-01 05:29:27
【问题描述】:
我正在考虑将现有的基于视图的 Android 应用程序缓慢迁移到 Jetpack Compose 应用程序。我想我会借此机会彻底重构该应用程序,因此我从一张白纸开始 Compose 应用程序,并尝试采用最新的最佳实践。
我在 Android Studio 中创建了一个新项目,使用的是我阅读过的一些文档中推荐的“Empty Compose Activity”。
它创建的项目缺少MainApplication.kt文件,manifest直接跳转到MainActivity,里面只定义了class MainActivity : ComponentActivity()
我注意到 Android 文档说“There is normally no need to subclass Application. In most situations, static singletons can provide the same functionality in a more modular way.”,这让我想到,作为重构的一部分,我可能会尝试遵循这个隐含的建议,看看它会导致什么结果。
所以我的问题是,有什么必须在 Application 类中让我后悔 Android Studio 给我的结构吗?
Koin 依赖注入在主应用程序类之外工作正常吗?我的应用程序具有我现在在 Application 类中执行的 Room 依赖注入的服务。所有这些都可以在其他地方完成,大概在 MainActivity 中? (所有 Koin 的示例都使用 DI 的 Application 类!)
是否可以在应用程序类之外设置用户权限,如位置和文件访问权限??
我知道我在这里征求意见,但是如果您可以避免它,您是否将其视为最佳实践不子类 Application,如 Android 文档似乎建议的那样?
最后,没有继承 Application 类(即没有 MainApplication.kt)以某种方式与构建应用程序的新 Compose 方式相关?
谢谢!
约翰
【问题讨论】:
-
与标准的安卓应用没什么不同
标签: android kotlin android-jetpack-compose koin