阅读本文大概需要5分钟
一、关于大前端
1.简单来说,大前端就是所有前端的统称,比如Android、iOS、web、Watch等,最接近用户的那一层也就是UI层,然后将其统一起来,就是大前端。大前端最大的特点在于一次开发,同时适用于所有平台,开发者不用为一个APP需要做Android和iOS两种模式而担心。大前端是web统一的时代,利用web不仅能开发出网站,更可以开发手机端web应用和移动端应用程序。
2.由于node的出现,前端工程师不需要依赖于后端程序而直接运行,从而前后端分离起来。所以当开发一个新产品的时候服务只需要写一次,但是面向用户的产品可能有很多,例如网站、Android客户端、iOS客户端和微信小程序等。由于各个平台使用的技术栈都不一样,代码无法复用,非常浪费人力、物力。那么有没有什么技术能够解决这一痛点呢?大前端应运而生,其实大前端的主要核心就是跨平台技术,有了跨平台技术,各个平台的差异性就抹平了,开发者只需要一套技术栈就可以开发出适用于多个平台的客户端。
二、主流跨平台方案
目前的主流跨平台方案:Cordova/phoneGap、React Native、Weex、微信小程序、PWA和Flutter等,根据其原理性,可以分为三大类。
H5+原生(Cordova、Ionic、微信小程序)
JavaScript开发+原生渲染 (React Native、Weex、快应用)
自绘UI+原生(Flutter)
增强版Web App(PWA)
简单介绍几种跨平台方案。
1.React Native
(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。
2.Weex
Weex 是阿里于 2016 年开源的一款开发框架,Weex 是一个使用 Web 开发体验来开发高性能原生应用的框架。
它使用了 Web 技术来开发 Android、IOS 应用,从而达到更快的迭代速度,同时降低了开发原生应用的门槛,达到生产力和性能共存。
学习weex需求掌握Vue语言基础、ECMAScript 6 、iOS或者安卓开发语言和编辑器基本使用。
3.微信小程序
微信小程序,简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
严格来说,微信小程序算不上跨平台方案,因为它不是运行在手机系统上的,而是运行在微信里,并不是所有国家地区使用微信,开发者使用javaScript开发小程序,通过微信审核后可上线,小程序一般作为原生App的辅助。
4.PWA
从2018年到现在,作为号称下一代web应用模型的PWA,逐渐成为了一个各大前端厂商争先恐后进行涉足,布局的一个新的技术, 其主要的对标物Native app,作为现在最主流的mobile端应用,它的安全,性能,用户体验的确明显领先于其他互联网载体,但是原生App始终有一些缺点,比如
- 昂贵开发成本
- 软件上线,版本更新都需要发布到不同的商店,并通过审核
有些APP你可能使用频率特别少,但是你还是不得不去商店中下载庞大安装包,或者可能一段时间不使用以后,随着版本的更新,你也不得不去重新更新并安装
PWA技术的作为web应用,其天生优势能很好的解决以上的问题
PWA是一种理念,使用多种技术增强Web App的功能,可以让网站的体验更好,能模拟原生的功能,比如离线功能、本地缓存和通知推送,PWA完全使用前端技术栈,目前支持Service Worker 和Google Play Service 的Android手机和IOS11.3以上的手机。
PWA你可以将它放在Android或ios的桌面上,使用和原生app类似,不但可以离线使用,还可以收到后台推送。
PWA不能包含原生os相关代码,PWA仍然是网站,只是在缓存、通知、后台功能方面表现良好,看起来和原生App差不多而已。
5.Flutter
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
Flutter和上面几个方案不同,Flutter没有用JavaScript作为开发语言,Flutter使用Dart语言来开发应用诚信,但它依然允许开发人员使用平台API,第三方框架及原生代码(Java、Swift和Object-C)
Flutter可帮助开发者快速开发漂亮灵活的UI界面,预置了Android平台的Material Design风格,以及Ios平台的Cupertino。
总结、
大前端不仅会成为移动开发与Web前端的发展趋势,也将会是未来的显示设备终端的开发技术趋势。大前端将做更多的终端开发、工程化等工作,而不仅仅只是开发Web页面。大前端工程师将能搞定所有端上的开发。与充满争议的全栈工程师相比,它更具可操作性。但同时对开发者而言,要会更多的技术栈,比如原生开发者要学习html、css、js等前端知识,前端开发人员也要学习Android或iOS的原生开发技术,然后了解一下常见的跨平台技术,只有这样才能更好的融入到大前端的这个大家庭中。