android/ios - 不要使用混合式开发

访问量: 259

混合式编程需要规避的几个坑

1. 要不要用混合式开发

很多时候我们想上混合式编程,原因是: 1. 手头没有会做原生开发的人。 2. 希望快速上线。
但是上手了之后会发现, 混合式编程的开发难度,要比原生开发 高得多。 混合式编程给人的第一感觉是页面适配的好。不过这个在android 的
几种不同的layout下,没有什么优势。 安卓的原生开发要比混合式开发简单不少。

快速上线的时间不比原生开发快多少。但是软件项目需要的是后期的维护。 维护起来是特别麻烦的。

2. 性能低下,用户体验极差。 (主要是安卓)

打开一个页面一般要5秒以上。
点击一下按钮,没有优化的话,默认是 0.3 秒后才开始执行操作。
ios 速度很快。 安卓则慢的要命。 如果页面上有一个300K的CSS,那么安卓的加载时间就需要300ms.
对于js 来说,速度更慢。 我们曾经遇到过一个,K线的JS组件,打开一次页面需要15秒。其中3-5秒是加载页面的js/css,
5秒是运行K线的JS组件,剩下2-5秒用来渲染。

另外,安卓是先打开一个 activity, 大概需要0.3 秒左右的动画时间。然后才会加载对应的webview. (ios 是先加载webview, 然后才会出现对应的
切换窗口的动画) 所以安卓打开webview时会明显感觉到页面空白一段时间。

3. 特别难以维护。

ios, android 都是通过 js bridge 来实现 js <--> native 的交互的。 代码看起来都特别难以理解。 调试起来也麻烦。

如果一定要做的话,几个建议:

0. 在微信中打开的话,就是vuejs. 体验特别好。

1. 可以使用原生的壳,里面套h5. 这个h5 指的是 SPA( single page app), 可用的框架是 vuejs, react. 然后整个app只有一个 activity / view controller.
在app 打开的时候加载一次 css/js/html, 后续的运行,都是SPA的内部的页面跳转了。

2. 为css, js做缓存. 可以有效的减少第二次以后的启动时间

3. IOS的苹果商店的账户要提前申请好。 大约需要5-10天。 上线之前发个简单的版本,让第一次审批通过。 这样正式版上线的时候,我们
给app store的印象是: 修改了一个微小bug. 通过的时间就会快得多。

安卓可以随时上。不需要任何审批。

4. 两个可以参考的js bridge :
安卓使用这个js bridge: http://siwei.me/blog/posts/android-webview-jsbridge
IOS使用这个js bridge: http://siwei.me/blog/posts/webviewjavascriptbridge-ios-vuejs

5. 第一个版本,做的时候务必明确需求, 设计好原型图。 需求不明确的项目很容易半途而废。

订阅/RSS Feed

Subscribe

分类/category