前言
大前端是什么?其实很好理解,大前端就是所有前端的统称,包括 Android、iOS、Web 等,它们之间有很多相似的概念,以下根据笔者个人经验总结,可能并不完整,仅供参考
对比
太长不看
| Android | iOS | Web |
---|
编程语言 | Java/Kotlin | Objective-C/Swift | JavaScript/TypeScript | 开发工具 | Android Studio | XCode | VSCode | 包管理 | Gradle | CocoaPods | NPM | 视图单位 | dp/sp | pt | px | 布局文件 | xml | xib/StoryBoard | html&css | UI 框架 | JetPack | Masonry | Angular/React/Vue | 网络请求 | Retrofit | AFNetworking | Axios | JSON 解析 | Gson | NSJsonSerialization | 天生支持 |
编程语言
各端都有两种编程语言选择,老牌语言胜在稳定,资料丰富,而新语言也大有后来居上的趋势,Kotlin(谷歌)、Swift(苹果)、TypeScript(微软)背后都有金主爸爸支持,但是目前来看,实际项目中 Android 用得多的还是 Java,iOS 还是 OC,而 Web 已经比较广泛使用 TS 了
开发工具
Android 和 iOS 都有官方推荐的 IDE,没什么好说的,跟着官方爸爸走准不会错。 Web 没有官方推荐的工具(或者说根本没有个所谓的官方),VSCode 算是后起之秀,还有 WebStorm、Sublime 等可供选择。
包管理
Android:官方钦定 Gradle,比起后端常用的 Maven 确实简洁了不少。 iOS:官方并没有管这块,CocoaPods 作为第三方包管理工具,已然成为事实上的标准。 Web:其实是基于 NodeJS 的 npm 来的,除了 npm 还有 yarn、lerna 等,还处于诸侯割据的状态。
视图单位
Android 中 dp 是基本单位,sp 用于字体大小,当然各端都还有许多其他单位,这里只列出最常用的。
布局文件
Android:xml iOS:xib 相当于 Android 的 xml,而 StoryBoard 过于傻瓜式,苹果本意是好的,让人只需在画板上拖拖就能做出完整的应用界面,问题是有几个程序员会用呢,束缚了手脚,只适合做一些简单的页面 Web:布局(HTML)与样式(CSS)分离,乍一看很好,其实是上个世纪的技术,反而增加了复杂度,Android 和 iOS 都是布局样式在一个文件里,最新的跨平台技术 Flutter 更是没有布局文件,直接在代码中使用声明式的 UI,可见 Web 所用的技术有多老了
UI 框架
Android:官方 yyds!JetPack 库不只是 UI 框架,是由多个库组成的套件,官方收纳了很多最佳实践的库,开发者可以按需取用。 iOS:官方其实已经推出 AutoLayout 框架,奈何其 API 实在是黄婆婆的裹脚——又臭又长,于是第三方 Masonry 横空出世,基于官方 AutoLayout,大幅简化调用,得到了开发者的青睐,Masonry 是 OC 库,对应的 Swift 版本叫 SnapKit Web:Angular、React、Vue 绝对是引战话题,到哪都不免拿出来对比,在我看来能完成项目开发,解决问题就行,不用踩一捧一
网络请求
Android:Retrofit 基于 OkHttp,安卓原生的 HttpURLConnection 从 4.4 开始也是基于 OkHttp,OkHttp 使用稍微复杂,Retrofit 用注解简化了调用,如果有很多定制化需求就用更基础的 OkHttp,一般用 Retrofit 即可 iOS:三方(AFNetworking)再次超越了官方(NSURLSession) Web:Axios,可用于浏览器和 NodeJS
JSON 解析
Android:原生不好用,FastJson 并不 fast,Gson 地表最强(还是谷歌爸爸吊) iOS:原生 NSJSONSerialization 最快,随着时间推移系统更新已击败所有三方 JSON 库 Web:JSON(JavaScript Object Notation)就是我生的
后记
总的来说,Android 有个强有力的官方,就像保姆一样,可以说除了业务代码其它通用基础库都想帮开发者服务好。iOS 官方就符合苹果一贯的高冷作风,必要的东西都有,你爱用不用,有时候还强迫开发者必须这么用。而 Web 可以说压根没有个官方,所以出现了社区做大,各种框架层出不穷,民间轮子满天飞的情况,这么看来,前端果然是最卷的(doge
|