angular - 对于使用 USB/硬件 API 的 Desktop/Touch Angular App,我应该使用哪些框架?
问题描述
我需要开发一个严重依赖USB/Serial、WebAudio和其他硬件 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)没有太多关于创建电容器-电子-插件的文档...
我很乐意听取您的意见,因为目前我很困惑,不知道该选择什么...
解决方案
我将提供一个稍微有争议的意见。
如果您需要依赖多种技术,则每种技术都需要一个库,因为通常您不想重新发明轮子。例如,为了支持密码学,我会查看一个密码库。
现在,如果一个特定的库将自己宣传为一个框架,那就跑吧!框架可以并且将与您的应用程序中的所有其他框架竞争。您最多只能拥有一个框架。您需要将整个应用程序包装在框架周围。您的应用程序中只能有 0 或 1 个框架。
因此,我的建议是应用程序中的最佳框架数为 0。
使用库,不要使用框架。如果一个库将自己宣传为一个框架,请不要使用它。
框架很快就过时了。图书馆通常不会很快过时。
现在,当然,一个特定的库最终可能会变得无人维护。因此,我会为每个图书馆计划一个“退出策略”。仔细看看有哪些类型的库可用。看看他们的编程接口。无论您选择什么库,围绕其编程接口创建一个包装器,为您的用例工作提供最小的必要接口。它本质上是所有可用库中最小的公分母。如果库变得无人维护,您无需重写整个应用程序,只需重写包装器即可。
推荐阅读
- python - 使用 Numba 和 Cuda 规范化 3 个向量的数组
- python - 如何在字典列表中找到特定键的唯一值?
- ruby-on-rails - 如何将数据库列设置为 Rails 夹具中的空字符串?
- python - 具有相应真实掩码的操纵图像
- html - Navbar Dropdown 扩展 Nav 而不是悬停在
- python - 如何更改按钮内文本的大小?
- excel - 陷入无限循环
- python - Tensorflow 2子类模型回溯错误
- swift - 尝试从 Firebase 字段值中设置几个变量...异步函数问题
- python - 查找关于 Python 包的 Kwargs 和其他信息