各有各自的优点,都又有缺点
小程序的优点:
基于微信平台开发,享受微信自带的流量,这个优点最大
无需安装,只要打开微信就能用,不占手机内存,体验好
开发周期段,一般最多一个月就可以上线完成
开发所需的资金少,所需资金是开发原生APP的一半不到
小程序名称是唯一的,在微信的搜索里权重很高
容易上手,只要之前有HTML+CSS+JS基础知识,写小程序基本没有大问题
基本不需要考虑兼容性问题,只要微信可以正常运行的机器,就可以运行小程序
发布,审核高效,基本上午发布审核,下午就审核通过,升级简单,支持灰度发布
开发文档完善,社区活跃
支持插件式开发,一些基本功能可以开发成插件,供多个小程序使用
缺点:
局限性很强(比如页面大小不能超过1M,不能打开超过5个层级的页面,样式单一,小程序的部分组件已经是成型的了,样式不能修改,比如幻灯片,导航)只能依赖于微信依托与微信,无法开发后台管理功能
不利于推广,推广面窄,不能分享朋友圈,只能分享给朋友,附近小程序推广,其中附加小程序也收到微信限制
后台调试麻烦,因为API接口必须https请求,且公网地址,也就是说后台代码必须发布到远程服务器上;当然我们可以修改host进行dns映射把远程服务器转到本地,或者开启tomcat远程调试;不管怎么说终归调试比较麻烦
前台测试有诸多坑,最头疼莫过于模拟器与真机显示不一致
js引用只能使用绝对路径,不能操作DOM
原生App优点:
原生的相应速度快
对于有无网络操作时,譬如离线操作基本选用原生开发
需要调用系统硬件的功能(摄像头,拨号,短信蓝牙..)
在无网络或者弱网情况下体验好
原生App缺点:
开发周期长,开发成本高,需要下载