目前市场流行的三类App:
一. NativeApp(原生App)
纯工具类的App ===> 微信客户端
特点?
开发: 由原生Native人员开发的 安卓(Android) 苹果(IOS)
语言: Android(Java + XML) IOS (Objective-c / Swift + XML)
更新维护:版本更新、打补丁包 需要从 app store 进行应用更新
使用:必须去app-store里面进行下载更新才可以使用
优点:运行稳定 用户粘度高 安装使用比较方便 用户体验强 可以操作原生功能
缺点:不能跨平台 必须开发两套代码(Android+IOS)
二. WebApp(移动M站)
特点:
凡是可以在移动端浏览器里面进行打开的网站都称之为WebApp
开发:H5前端开发工程师
语言:html5+css3+js(zepto+react+angular+vue等)
更新维护:直接无痕更新 (注意浏览器的缓存问题! 缓存的文件是根据路径进行缓存的)
使用:无需下载 直接通过用户的手机浏览器(safari) 可以直接打开进行访问
优点:可以跨平台的 开发成本低 使用成本低 更新维护成本低
缺点:不稳定 流畅度差 用户体验差 不能调用原生设备
三. Hybrid App (混合App)
特点:
在native的壳子中,通过webview,在webveiw中内嵌H5的页面即可。内部通过JSBridge这个技术实现了原生与JS的交互。
模式:
原生主导的开发模式:
整个app大部分的界面都是由原生人员开发的,但是某一些经常变动的页面由内嵌的H5的页面去实现的。
原生人员打包app (AndroidStudio or Xcode)
H5主导的开发模式:
h5可以借助一些已经赋予功能的一些打包工具,实现前端软件的打包发布。
(数字天堂公司—hbuilderx云端打包,Plus对象,h5+) Cordova + phoneGap
检测一下哪些是原生native应用,哪些是hybrid应用,主要看内部有没有内嵌的h5的页面即可。
1.同类型的产品只需要看安装包的大小,如果小的话肯定就是hybrid应用。
2.android手机上面有调试模式,内部就会显示布局界面。如果应用是native开发的,就会被线条所包裹,从而划分。
因为有一些页面,可能没过几天就需要进行更新、变动。如activity活动页面,倘若让原生进行开发的话,需要花费太长的周期,所以采用H5页面内嵌到webview中,这样就可以大大的提高我们的开发效率。并且很多公司都在采用这样的开发模式。
例如美团,我们可以在美团的app中,对于猫眼的这部分业务逻辑,我们可以内嵌早已经开发好的webapp了。这样的话,美团就不需要对猫眼这部分的业务逻辑进行重新构建了。