下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

APICloud 能都替代 Android 原生开发吗?

作者:课课家教育     来源: http://www.kokojia.com点击数:1696发布时间: 2017-11-16 11:03:10

标签: 开发工具移动开发java

软考,您想通过吗?一次通过才是硬道理

  今天在浏览知乎的时候,看到这么一个问题,感觉很有意思,有点分享价值,如下:

APICloud 能都替代 Android 原生开发吗?_java_课课家

  APICloud 能都替代 Android 原生开发吗?

  APICloud 现在好像蛮火,但是能替代比如在 Eclipse,AndroidStudio 来做的 App 开发吗?本来在 Eclipse 上做 App 开发的程序员有必要转到 APICloud 上开发吗,毕竟还是简单,快速些。

  说实话,这个问题本身就问的就有问题,没有说一种技术可以完全替代另外一种技术,每种技术的侧重点和优势都不一样,不同的需求和场景,不同的体验可以选择不同的技术,技术之间其实没有什么完全替代之说。这是我们面临产品,项目,和整个团队技术能力时,需要做的一种技术选型罢了。

  我之所以说,很有分享价值,是因为我看到了知乎大神「欲三更」写的回答,很全面,他从原生开发、hybrid 开发、RN/Weex 为代表的 “伪 hybrid 开发”,以及 APICloud 这些技术选型中做了不同的优势和劣势,以及技术特点的分析,而这些回答,可以让大家更深入,更清晰的了解这些技术。为以后的开发,技术选型能够有一定的参考和学习价值。

  知乎大神「欲三更」的回答

  APICloud 和原生应用开发,不是互相替代的关系。

  不同的场景不同的需求,自然采用不同的技术,我们需要认清的是我们处于什么场景,选用了不同的技术会有什么优势,什么痛点。

  严格的讲,这个问题应该是个四方比较的技术选型问题:原生开发、hybrid 开发、RN/Weex 为代表的 “伪 hybrid 开发”,以及 APICloud。

  为什么将 hybrid 开发和 APICloud 分开?因为 APICloud 是一个包含跨平台 APP 开发引擎、开发工具、云服务、模块市场等服务的完整 APP 开发生态。目前 APICloud 已经推出面向 Web 开发者的 Deep 引擎、面向已有 native 应用的 SuperWebView、模块市场,以及数据云、运营云等云服务快速开发环境。不能仅仅作为一种 “工具” 或者单一技术看待。

  下面我们简单列举一下四种技术选型的优势和劣势:

  原生开发

  优势

  厂商原生技术,自由度最大。

  社区和文档化都非常完善,各种技术资料和解决方案相当丰富。

  历史比较久,具备一定资历的开发人员比较好招(并不意味着便宜)。

  劣势

  开发成本高,技术难度高。

  项目无法跨平台,需要两支团队。

  需要投入的开发、测试力量以及周期都比较长,这会导致迭代节奏偏慢(要想快就得加人),不一定更得上产品的迭代节奏。

  hybrid 开发

  优势

  网页迭代速度快,这个是公认的。

  跨平台性突出,有利于节省人力,1 到 1.5 人可以维护两大平台的应用。

  前端社区的技术演进非常快,社区活跃。

  当下而言,前端工程师人力资源比较丰富。

  劣势

  性能劣于原生开发,容易出现性能问题。

  严格的说 hybrid 只是一种技术理念,而并不是具体的技术解决方案。应用开发商常常需要自行构建维护技术栈。

  虽然有封装了 native 接口的 hybrid 框架(比如 ionic)可选择,但是对于相对复杂的应用,现有的 hybrid 框架并不能满足需要,所以使用 hybrid 方式开发的应用,常常需要原生补充,这种情况下不同模块的用户体验难以统一。

  RN/Weex

  优势

  使用系统原生 UI 组件,性能和体验相比 hybrid 更接近于原生。

  由于 RN 和 Weex 都是一线互联网厂商的产品,除了组件和 api 封装之外,还会对热更新一类的工程需求给出明确解决方案。

  劣势

  不使用 html5 自然有好处,但是也会带来坏处。比如,需要分别搭建 Android 和 IOS 开发环境,分别 Release。RN 的核心理念是 “learn once write anywhere” 而非 “write once run anywhere”。

  再比如针对 RN/Weex 的设计并不像 hybrid 那么灵活,并且会一定程度上产生平台分化。

  学习曲线可能不像大家想像中那么平滑,不管是前端还是移动开发工程师,进入 RN/Weex 领域还是需要一个学习期的。

  RN/Weex 的可调式性比纯浏览器还是要差上一截,开发体验并不那么好,这也一定程度上增加了开发成本。

  APICloud

  说优势劣势之前,我们先来解释一下 APICloud 和原始 hybrid 的区别。hybrid 技术是 APICloud“端” 开发的核心技术手段,但是 APICloud 基于 hybrid 做了很多事。从项目开发过程来看,使用现有开源的 hybrid 技术或者自建 hybrid 框架,更像是自己买菜做饭,建立和维护技术栈,以及针对各种问题积累 know how 的成本是比较高的,而使用 APICloud 开发,其体验更像是使用. net、java 这样的企业级开发技术栈,或者说去饭店点餐,你拿到手的东西已经相当完整,可以直接聚焦于应用。

  优势

  传统 hybrid 开发的优势,APICloud 基本是具备的。

  相比传统 hybrid,APICloud 提供的是整体解决方案以及标准化的技术平台,不需要自行搭建热更新等外围技术。

  技术支持体系,开发者社区,有全面的产品、技术文档、视频教程等,技术论坛中有活跃的开发者,也有官方一线产品人员提供技术支持,这在国内的社区中,维护度算认真的了。

  模块市场。模块是 APICloud 的核心优势之一,编码时拿来即用,无需重复造轮子,目前有五六百个模块,涵盖了 APP 开发过程中 90% 以上的功能,同时聚合了国内主流第三方服务,比如 IM,推送,人工智能,物联网,直播等等。原生开发者还可通过 APICloud 的模块扩展机制,开发模块在模块 Store 上进行售卖。

  APICloud 利用高效的 “混合渲染” 和模块化机制,为 APP 提供与原生一致的性能,同时还继承 Html5 开发简单的优势,二者对开发人员来说基本上是透明的。

  劣势

  由于 APICloud 是基于标准 html5 扩展的技术,API 比较新,开发人员需要一定的时间熟悉、学习其扩展的 API(个人认为相对 RN/Weex 来说要容易一点)。

  在 APICloud 中开发 APP,原则上不提倡使用 jQuery 等传统 Web 开发常用的库和框架。习惯使用框架的前端开发人员使用 APICloud 开发 APP 时,可能还需要花时间去适应。

  APICloud 的技术引擎和大部分的模块没有开源,这其实算是一把双刃剑,但从开发者角度讲,开源平台,会降低项目开发中的一定风险,尤其是可调试性。

  就技术而言,目前 APICloud 的客户端技术,很像是桌面端的混合开发方案 electron,立足于 html5,通过统一标准的 API 消除不同平台、不同操作系统之间的差异,达到 APP 跨平台的目的。但是相比纯技术方案,APICloud 是一个 “有产品有生态有运营” 的商业级开发平台。今天我们看到的特色,也主要是因此诞生的。

  回到开始的观点,APICloud 并不是原生开发的代替技术,APICloud 实质上是一个为移动端 app 开发提效和赋能的平台体系。基于 APICloud 做应用,还是在原生应用中内嵌 APICloud,其实是针对不同场景的不同技术选择,背后的核心理念就是 “因地制宜”,什么样的场景,我采用什么样的技术能达到提效和附能的目的,是技术选择的唯一标准。

  多说一句,国内大型互联网公司普遍采用了 “大中台” 战略,期望建设强大的中台去支撑业务。同样的,作为中小型团队,选择一种技术,并不是说静态地去看当下这个技术有哪些好处坏处,而是要放在 “外置中台” 的角度,动态的去审视。一个技术栈长远的看能决定你的研发模式和团队构成,所以这不是那个工具最省事。