用HTML5开发App真的好嘛?
程序员文章站
2022-04-13 08:41:14
...
一直信仰“每门语言最好用在其专长领域”的玄学。
最近被极力推荐用HTML5开发App,还在啃Swift和Java的我看到人家用前端框架几小时做出了我拿Xcode/Android Studio一整天才能做出的界面效果(我刚开始学做App,用时长的话求轻喷),备受打击•﹏•难道HTML5可以在大多数情况下代替原生App了吗?
另外,HTML5的性能怎么样?一直认为它做出来的App只是一个全屏的、内嵌网页的浏览器,但有人说并非如此,HTML5做的App还要被IDE进行一系列处理才能转换为App,是这样吗?
如果是 Web App 的话:
你能做到 Flipboard 那样拿的确可以说体验与 Native App 有一拼。
或者说能研究明白 FB 新出的 ReactJs 没准也可以。
但关键问题有两个:
目前的H5框架都存在一个问题,API不够多,当硬件、系统版本问题出现时,那么混合开发不可避免,那么这个时候解决问题的难度比以往任何时候都麻烦,必须存在一个Android、iOS、H5都比较熟悉甚至精通的。
总而言之,快速成型H5可能会很快,但是APP做大做得更多制定内容时,维护、二次开发的成本不一定会低 并不好,未来也不看好 其实有的时候混合在一起才是最好的。简单一点的混合,比如资讯类的,可以用HTML通过js重新排版,做出来很好看的东西。在比较要求高的东西,比如listview,拖拽,上传,下载,用原生会有很好的体验,因为你可以掌控所有的一切。例如一个listview,你可以告诉手机什么时候启动线程去请求图片,什么时候释放资源,什么时候创建本地缓存。这些我相信用html也可以做,但是做的并不享受,而且结果也不会很好。用js去控制线程,文件流之类贴近机器的操作,不是用js做他最不擅长的事吗? 凡事易学者,必难精。 在UI方面,HTML5是以申明方式使用较为高层次的组件来拼UI的,你拿 Xcode 的 Interface Builder 画其实也很快的。其实 CSS / Javascript 想要学好也不容易的。但是 iOS 和 Android 的系统直接提供匠API层次都比较低,而js世界连直接操起jQuery折腾DOM都觉得过时了,在同等熟度的情况下,web app出活快还是可能的。不过 web app 受运行环境限制比较大,环境没提供的特性,要实现就会很麻烦,而需要直接访问硬件就麻烦大了。
说HTML5 App就个浏览器也没错,只是要让javascript能访问系统能力肯定要做些扩展的。 体验不如native,特别是和用户的交互,卡顿,延迟,闪屏,屏幕适配都是问题 目前还没有什么纯H5的中大型app成功的例子。我们公司也有一款app用sencha开发的,没什么图片,也没什么动画效果,列表控件里数据超过50条帧数就低的没法用了 不好,目前的状态是H5多用于消费级代码
最近被极力推荐用HTML5开发App,还在啃Swift和Java的我看到人家用前端框架几小时做出了我拿Xcode/Android Studio一整天才能做出的界面效果(我刚开始学做App,用时长的话求轻喷),备受打击•﹏•难道HTML5可以在大多数情况下代替原生App了吗?
另外,HTML5的性能怎么样?一直认为它做出来的App只是一个全屏的、内嵌网页的浏览器,但有人说并非如此,HTML5做的App还要被IDE进行一系列处理才能转换为App,是这样吗?
回复内容:
童话里都是骗人的! 不知道题主说的是 H5 做的 Web App 还是伪装成 Native 的App.如果是 Web App 的话:
你能做到 Flipboard 那样拿的确可以说体验与 Native App 有一拼。
或者说能研究明白 FB 新出的 ReactJs 没准也可以。
但关键问题有两个:
- 大多数人都没有 Flipboard 团队的水平;也不一定能用好 ReactJs.
- 你能不能保证全部交互以及使用都是在自己的框架内的?一旦有一个点击结果不是自己的 H5 应用给设计好了的,或者说是外链,那直接全部体验崩溃一窥啊。参见 FB 的 Paper,Native 都很难保证这点,更何况 H5 App?
目前的H5框架都存在一个问题,API不够多,当硬件、系统版本问题出现时,那么混合开发不可避免,那么这个时候解决问题的难度比以往任何时候都麻烦,必须存在一个Android、iOS、H5都比较熟悉甚至精通的。
总而言之,快速成型H5可能会很快,但是APP做大做得更多制定内容时,维护、二次开发的成本不一定会低 并不好,未来也不看好 其实有的时候混合在一起才是最好的。简单一点的混合,比如资讯类的,可以用HTML通过js重新排版,做出来很好看的东西。在比较要求高的东西,比如listview,拖拽,上传,下载,用原生会有很好的体验,因为你可以掌控所有的一切。例如一个listview,你可以告诉手机什么时候启动线程去请求图片,什么时候释放资源,什么时候创建本地缓存。这些我相信用html也可以做,但是做的并不享受,而且结果也不会很好。用js去控制线程,文件流之类贴近机器的操作,不是用js做他最不擅长的事吗? 凡事易学者,必难精。 在UI方面,HTML5是以申明方式使用较为高层次的组件来拼UI的,你拿 Xcode 的 Interface Builder 画其实也很快的。其实 CSS / Javascript 想要学好也不容易的。但是 iOS 和 Android 的系统直接提供匠API层次都比较低,而js世界连直接操起jQuery折腾DOM都觉得过时了,在同等熟度的情况下,web app出活快还是可能的。不过 web app 受运行环境限制比较大,环境没提供的特性,要实现就会很麻烦,而需要直接访问硬件就麻烦大了。
说HTML5 App就个浏览器也没错,只是要让javascript能访问系统能力肯定要做些扩展的。 体验不如native,特别是和用户的交互,卡顿,延迟,闪屏,屏幕适配都是问题 目前还没有什么纯H5的中大型app成功的例子。我们公司也有一款app用sencha开发的,没什么图片,也没什么动画效果,列表控件里数据超过50条帧数就低的没法用了 不好,目前的状态是H5多用于消费级代码
上一篇: css动画和照片清晰度动画的实现方法介绍