首页 > 解决方案 > 对于使用 USB/硬件 API 的 Desktop/Touch Angular App,我应该使用哪些框架?

问题描述

我需要开发一个严重依赖USB/SerialWebAudio和其他硬件 API 使用的应用程序。

目前,此应用仅适用于Windows 10 平板电脑,因此它还应支持触控和手势。但当然,我很乐意将应用程序逻辑与 Windows/UWP API 分离,以便将来能够将应用程序扩展到许多其他平台。

我选择使用Typescript 和 Angular编写这个应用程序,但我真的不确定我应该为此目的使用的框架组合:

1) 我应该只使用纯 Electron-Angular-HammerJS 组合吗?(也许将其部署为 UWP 应用程序

2) 为了更好地支持触控和移动性,我应该使用 Ionic 框架吗?或者这种 Electron 与 Ionic 的组合会使我的应用程序不必要地膨胀?

3) 纯 Ionic(作为没有 Electron 的 UWP 应用程序)是否支持 Windows USB/串行功能?到目前为止,我发现只有适用于 Android 的 USB-Cordova 插件......

4) Ionic Capacitor 是否符合此应用程序的目的?一方面,这个框架倾向于支持包括 Electron 在内的许多平台,但另一方面,它的核心库不包含 USB/串行 API,即使我会选择编写用于硬件使用的通用插件(如 USB)没有太多关于创建电容器-电子-插件的文档...

我很乐意听取您的意见,因为目前我很困惑,不知道该选择什么...

标签: angularionic-frameworkuwpelectroncapacitor

解决方案


我将提供一个稍微有争议的意见。

如果您需要依赖多种技术,则每种技术都需要一个库,因为通常您不想重新发明轮子。例如,为了支持密码学,我会查看一个密码库。

现在,如果一个特定的库将自己宣传为一个框架,那就跑吧!框架可以并且将与您的应用程序中的所有其他框架竞争。您最多只能拥有一个框架。您需要将整个应用程序包装在框架周围。您的应用程序中只能有 0 或 1 个框架。

因此,我的建议是应用程序中的最佳框架数为 0。

使用库,不要使用框架。如果一个库将自己宣传为一个框架,请不要使用它。

框架很快就过时了。图书馆通常不会很快过时。

现在,当然,一个特定的库最终可能会变得无人维护。因此,我会为每个图书馆计划一个“退出策略”。仔细看看有哪些类型的库可用。看看他们的编程接口。无论您选择什么库,围绕其编程接口创建一个包装器,为您的用例工作提供最小的必要接口。它本质上是所有可用库中最小的公分母。如果库变得无人维护,您无需重写整个应用程序,只需重写包装器即可。


推荐阅读