整个不平凡的 Jetpack Compose 支持的应用程序只有很少(一个?)活动?

wuj*_*jek 3 android android-jetpack-compose

对于Jetpack Compose,这是一种通过仅使用一个应用程序来开发应用程序ActivityCompose在 之间管理导航的可行方法吗@Composables?什么时候需要添加更多ActivitiesFragments

长版本:几年前我做了一些 Android 开发,您将在其中工作Activities,并且在任何重要的应用程序中都必须有多个它们,因为它们是每个应用程序的“原始”构建块。然后,Fragments出现了,可以在单个活动中托管不同的活动(它们支持替换等,所有活动都带有动画),并且突然可以用更少的活动来实现相同的应用程序。

多年后,我又回到了 Android 开发领域,这次是Jetpack Compose. Jetpack Compose Navigation我已经使用(https://developer.android.com/jetpack/compose/navigation)编写了一个带有几个屏幕的应用程序,其中@Composables已被替换,我对一切变得更加简单感到非常满意。看来现在可以拥有一个只有单个活动的应用程序,也可能没有片段。我认为有时可能需要不同的活动,例如,如果应用程序可以处理各种活动Intents,但即使如此也Compose Navigation支持深度链接等内容。

Com*_*are 5

\n

使用 Jetpack Compose,这是一种仅通过单个 Activity 来开发应用程序并让 Compose 管理 @Composables 之间的导航的可行方法吗?

\n
\n

这就是理论。它对于大型应用程序(比如 Facebook)还有待验证,但对于中小型应用程序,据我们所知,应该没问题。

\n

另请注意,单活动架构模式对于 Compose UI \xe2\x80\x94 来说并不新鲜,一些开发人员一直在使用屏幕片段来走这条路线。

\n
\n

什么时候需要添加更多的 Activity 或 Fragment?

\n
\n

假设我们没有遇到一些实际限制,需要其他活动和/或片段的主要场景是与框架类或第三方库集成,其中这些外部依赖项需要活动或片段。

\n

例如,应用程序小部件可以具有配置活动。您也可以让您的唯一活动处理这种情况,但您可能会发现仅用于应用程序小部件配置的一次性小型活动类更简单。这样,您的主要活动类就不会因尝试区分正常启动和应用程序小部件配置启动而变得混乱。更一般地说,活动成为 UI 的入口点,并且您可能只需要与不同角色的不同入口点相同数量的活动。

\n

总的来说,“一切都要适度”。如果将某些内容作为单独的活动或片段来实现,将极大地帮助您的应用程序\xe2\x80\x94 易于初始开发、易于维护等。\xe2\x80\x94 使用它!仅仅因为进行少量活动是可行的,并不意味着进行多于一项活动是不好的。我们现在有了更简单的方法,可以在不需要的地方强制进行多项活动。

\n