使用为移动设备开发的相同代码库为 Flutter Web 开发单独的 UI

问题描述

我已经使用 Flutter 开发了一个移动应用程序,它在 ios 和 android 上完美运行。我现在想要做的是从相同的代码库中获取 Web 应用程序,但具有不同的 ui。当前的应用程序完美地运行在浏览器也是如此,但它很奇怪,因为我使用了移动特定的组件,如底部导航。我已经用 BLoC 模式 开发了这个,并且 ui 与业务逻辑分离。我的问题是,我可以为 Web 应用程序开发 ui 并重用现有代码中的业务逻辑实现吗?如果可以,如果有人可以提供一些我可以使用的参考资料,我很高兴。

解决方法

是的,您可以利用您的 Blocs 并重新实现 UI。

正如@rickimaru 建议的那样,您可以检查是否 kIsWeb。但我的建议是检查您的屏幕尺寸。随着 Flutter 越来越多的目标,如 windows、linux、macOS 等。

为更大的屏幕构建不同的 UI 可能更合适,而不仅仅是为 Web(除非您执行特定于 Web 平台的逻辑,但情况似乎并非如此)。此外,仅在网络上运行并不意味着更大的屏幕尺寸,您的用户可能会通过手机浏览器访问。

您可以使用 MediaQuery 和断点手动检查屏幕尺寸,或者您可以利用已经制作的包,例如 responsive_framework