Download presentation
Presentation is loading. Please wait.
Published by鲁 施 Modified 8年之前
1
跨平台移动开发框架比较 2016.04.21
2
How many mobile platforms android 拥有最多的 developer. 开发语言-大众脸- java 开发成本最低,不用单独买一台电脑. 开发者账号-免费 发布应用很快-当天提交,当天就能发布 iOS 贵族平台-至少把自己包装的很高大上. 开发语言- OC->swift 。处于技术过渡期 开发成本相当高,需要买一台 Mac 电脑,才能安装 Xcode 开发者账号-最低套餐 rmb 600/ 年。没有这个不能发布应用 发布应用非常慢- 2 个星期算快的,各种审查
3
How many mobile platforms Windows phone 最大的软件公司 (MS) 做的最小众的平台. 开发语言- C# 开发成本最低?不用单独买一台电脑!但是系统呢?正版的 也不便宜啊. 开发者账号-免费 发布应用速度-不太了解,微软的应用市场太年轻了,估计 它自己都还没理顺 workflow 其他的 blackberry 可以忽略吧。甚至上面那位都可以忽略
4
Which platform 要做一个 app ,要支持哪些平台 Android. iOS. Windows phone ?有财力可以考虑,一般忽略
5
What differences Android vs iOS 天壤之别. 支持两个平台的麻烦事 一套需求,两个项目. 两个身子 ( 平台 ) ,一张脸 ( 用户体验 ) 麻烦大了
6
脚踏两条船 早 “ 起 ” 鼻祖 Phonegap Sencha 当前网红 ionic. Cordova—— 前身为 phonegap React Native 藏在深闺的大家闺秀 MFA - oracle 的,目前 2.3 版本 XDK - Intel 的 Xamarin -微软的
7
脚踏两条船 这个名单其实还有很长 …
8
What essences Hybrid 主要是利用 android 和 iOS 的浏览器组件 web view 来运行一个 web app Native 平台 api 开发语言的选择 HTML5 , javascript , css
9
PK MFA , XDK 知名度不高,意味着社区不发达,寻求帮助很难 未来如何,不确定 Xamarin 不是 write once , run anywhere 只是用 C #这个统一的语言写,对 android 和 iOS 调用不同的 API 而且,需要为开发平台 Studio 付费 最后决赛: ionic vs React Native 是要 Hybrid 还是 native ?
10
PK-1: 跨平台特性 Ionic : write once , run anywhere 不涉及到系统级的开发的话,确实是 “ 一次开发,处处运行 ” 如果涉及到系统级 API 调用以及项目配置(如 ios plist 文件) 则需要自己手动编写 cordova 插件的方式达到效果(如:注册 文件的打开方式),当然,网上也有可能找到可以安装的现 成插件。 React Native : Learn once, write anywhere 不涉及到与 native 混编的话, 统一 js 进行开发;使用 jsx 语法 确实能做到各端开发,但是需要针对 iOS 和 android 开发两套 代码 正在发展,提供更多 API 。相信, iOS 和 android 分离的 API 会变 少,达成 “write once , run anywhere” 的境界
11
PK-2: 开发方式 Ionic : HTML + AngularJS + CSS 使用 html + angularjs 与网页开发类似,系统级的调用由 cordova 插件解决,封装得相当好,简单易用,特殊情况的自 己动手编写插件比较难,一般没有需要手动编写代码插件的 情况,网上有比较多的插件可供下载安装,可用 flexbox 布局 React Native : JS + CSS 普通 UI 全程 js 开发,部分情况下需要使用与 native 混合的方式, 没有统一的 UI 组件, ios 组件较多, android 组件较少,各自编 写 js 文件的情况较多,简单空间和逻辑层可共用,基本上 iOS 和 android 是两套代码,可用 flexbox 布局。
12
PK-3: 功能支持 Ionic :编写 cordova 插件,则能达到全部支持 UI 交互由 Web 实现,系统级的交互由 cordova 实现,目前文件 上传下载, url 跳转以及文件打开方式 均已做验证可实现, cordova 对系统级调用的支持比较好,涵盖了大部分系统功能, 如摄像头,设备信息,电池,网络等,不排除潜在不支持的 问题 React Native :与 native 混编,可达到全部支持 android 高级组件可能需要自己实现,系统级的功能可通过安 装第三方插件或者与 native 混编的方式实现,基本上功能能完 全实现。
13
PK-4: 性能对比 Ionic :虽然性能一直是 html5 在移动端的最大 问题,但是 ionic 已经做得非常出色了,在 ios 上 基本上无法区分是否是原生 app 不添加 crosswalk 插件体验较差,添加 crosswalk 插件以后 体 验较好,但是 app 打包偏大。程序运行内存占用较大(网络数 据对比同款产品,内存占用 100+M ) React Native :接近原生性能 js 到 native 需要经过两层桥接,性能与原生差别不大(网络 数据对比同款产品,内存占用 50 M )。
14
PK-5: 优劣对比 Ionic 优势: ios 和 android 基本上可以共用代码,纯 web 思维,开发速度快,简单方便, 一次编码,到处运行,如果熟悉 web 开发,则开发难度较低。 文档很全,系统级支持封装较好,所有 UI 组件都是有 html 模拟,可以统一使 用。 可实现在线更新 允许加载动态加载 web js 劣势: 性能相对较差,内存占用高,手写插件难度较大。 web 技术无法解决一切问题,对于比较耗性能的地方无法利用 native 的思维 实现优势互补,如高体验的交互,动画等。
15
PK-5: 优劣对比 React Native 优势: 虽然不能做到一处编码到处运行,但是基本上即使是两套代码,也是相同的 jsx 语法,使用 js 进行开发。 用户体验,高于 html ,开发效率较高 flexbox 布局比 native 的自适应布局更加简单高效 可实现在线更新 更贴近原生开发 劣势: 对开发人员要求较高,不是懂点 web 技术就行的,当官方封装的控件、 api 无法满足需求时就必然需要懂一些 native 的东西去扩展,扩展性仍然远远不如 web ,也远远不如直接写 Native code 。 官方说得很隐晦: learn once, write anywhere 。
16
PK-5: 优劣对比 React Native 劣势: 从 Native 到 Web ,要做很多概念转换,势必造成双方都要妥协。比如 web 要 用一套 CSS 的阉割版, Native 通过 css-layout 拿到最终样式再转换成 native 原生的 表达方式(比如 iOS 的 Constraint\origin\Center 等属性),再比如动画。另外, 若 Android 和 iOS 都要做相同的封装,概念转换就更复杂 文档还不够完整,学习曲线偏高
17
The best ? 其实应该说 “the better” 如果业务偏于展示信息,尤其是与手机本地功能交互少,那 么 ionic 很好 如果业务潜在的有与手机本地功能的交互,而且追求更好的 响应速度,也许可以考虑 React Native 如果对性能比较苛刻,那么 native 但是,从 ionic 对 cordova 的依赖上,我觉得在不考虑 native 的 情况下, React 是 better 选择
18
Industries… 天猫的人在玩 react 了 “ 如何评价 React Native” 但是在国外(主要是米果了)的各种对比 top n 上 Ionic 总是排第一
19
The result 在目前跨平台框架如火如荼发展的进程中,目前没有王者 对于保守者的选择原则就是 ——“ 跟大流 ” Ionic 或者 React Native 都可以
Similar presentations