我们先看看前端使用html,css,javascript可以写什么类型的移动应用。
移动web app
移动webapp,其实就是我们前端同学所熟悉的h5应用,它的技术实现是基于html,css,javascript 常见的网页淘宝,网页京东等,开发这类应用我们往往不是使用原生的css,javascript开发,因为原生开发需要写大量难以维护的兼容代码等。
这里推荐大家使用less作为css预处理的语言,因为css在严格上不算一种编程语言,而是一种设计语言,而less的出现弥补了css在运算,函数,变量等编程语言上的缺陷。
vuejs reat作为javascript的类库,原生js因为需要写大量的兼容代码,同时频繁的dom操作使开发人员很苦恼,jquery的出现一定程度减缓了这个问题,但jquery始终无法解决开发人员面对dom的问题,同时jquery过于重量,在最求性能的移动应用中问题凸显,以react,vuejs为代表的mvvm框架,突破了dom的束缚,同时更加轻量,受到了广大开发人员的喜爱。如果大家想了解更多vuejs分教程,可以关注我查看vuejs系列教程。
移动hybrid app
webapp在原生接口调用方法并不理想,大量的优秀原生接口无法使用,于是以hbuilder之类的web打包工具受到了想发类似原生应用的程序员喜欢,web打包工具实现原理很简单,原生开发人员将一些常用的原生方法封装好成一个类,然后将这个对象暴露给webview的window对象中,前端的同学无需了解额外的只是,只需简单调用暴露对象的接口就好了。
移动native app
hybrid app 解决了webapp无法调用的原生接口的问题,但任无法解决webapp在ui渲染能力上的性能缺陷,由于webapp和hybrid app的ui都是基于webview的渲染出来的网页,webview只是原生组件中的一种,先天性决定了webapp和hybridapp在性能上无法与原生应用相比,但react-native和weex出现解决了这个问题,使开发人员使用html css js作为开发语言,开发出原生的应用,在性能毫不逊色的情况下,这种解决方案还有比原生开发多了跨平台,热更新等诸多优势,使得这种开发方式成为了app的开发主流,例如淘宝app,京东app等,都是采用这类方案。