摘要:CTO线上讲堂5月20日正式登场,CTO俱乐部首期邀请到APICloud联合创始人兼CTO邹达与C粉之家微信群友一起聊聊如何快速玩转App开发,分享技术人的职场成长。

为了帮助IT从业者职业之路拥有更多收获,在诸多C粉的殷切期待下,CTO线上讲堂5月20日已正式登场,首期演讲嘉宾APICloud联合创始人兼CTO邹达与C粉之家微信群友一起聊聊如何快速玩转App开发,分享技术人的职场成长。

想与业界大咖零距离沟通,欢迎加入C粉之家微信群(加入方式、下期演讲内容请拖至文末查看详情)。

主讲嘉宾:邹达

嘉宾简介:APICloud联合创始人兼CTO。2014年“TOP50最具价值CTO”得主。2006年计算机硕士毕业后一直从事移动端核心软件技术工作,并参与开发国内外主流浏览器引擎和JavaScript引擎的架构设计和技术实现。2010年开始做移动端App开发,一路走来,从引擎到应用,从应用又做到服务。

公司简介: APICloud 是中国首个“云端一体”的移动应用云服务平台,它重新定义了移动应用开发。APICloud为开发者从“云”和“端”两个方向提供API,简化移动应用开发技术,让移动应用的开发周期从一个月缩短到7天。2014年初公司创立就获得北极光创投领投的500万美金融资。

以下是5月20日CTO讲堂现场完整速记:

邹达:我是邹达(broad),是APICloud 联合创始人&CTO,负责APICloud 云端一体平台的架构设计,也是APICloud终端引擎和云端核心服务的技术实现者。在2014年9月15日之前,大部分的时间还是在一线Coding。

我在feature phone(功能机)时代,主要是负责国内外主流浏览器引擎、JavaScript引擎的架构设计和开发实现。在智能机发展起来后,又进行移动端App的开发,带领团队及个人也完成过上百款应用的开发工作。应用做得多了会发现应用中有一些公共的服务,如推送、统计等等,后来有开始做服务。

所以一路走来,对引擎、应用和服务都积累了自己的一些认识和理解,总结:功力不算深,但是咱发型比较亮!(小编:哈哈哈,此处应该上照片)

那么我在介绍一下APICloud吧,也不知道大家都有没有了解。APICloud 是中国首个“云端一体”的移动应用云服务提供商, 通过端API和云API来简化移动应用开发技术,可以帮助开发者快速实现移动应用的开发、测试、发布、运营等全生命周期管理。

APICloud是一个处于系统和应用之间的中间层,可以看成是一个中间件产品,APICloud就是为移动应用开发而生的一套中间平台,在这一层中,APICloud封装了系统调用,聚合了开放平台服务,扩展了常用的功能和组件。并将这些作为平台的能力,以统一的API提供给开发者调用,让应用开发更容易。这也是我们为什么叫APICloud。虽然APICloud是一个云端一体的架构,但是,对于云API和端API,开发者也可以根据自己的实际情况灵活选择、分开使用。

APICloud从2014年9月15日上线以来,已经吸引了众多的开发者使用,包括了各种类型的企业、公司和个人,其中有一大批重量级的商业客户,也上线了很多口碑好并且知名度高的App。同时,APICloud平台国际版也已经在2014年11月4日在美国发布,标志着APICloud是一个面向全世界开发者的移动应用开发平台,目前已经吸引了大量的海外的开发者加入。

APICloud是一个功能强大完整的平台,能够满足任何类型的App开发需求,同时采用了一种非常务实的开发方式,能够很好的解决各种类型开发者的问题。目前,APICloud已经是国内做得口碑最好的在线移动应用开发平台。

平台的一些特点:

  1. 云端一体:APICloud同时支持移动端App的开发和服务器端Service的开发,前后端开发只需要使用JavaScript一门语言,并且基于相同的数据模型,App与Service之间的连接和数据通信通过一套API就可以完成。
  2. 移动应用云:APICloud就是为移动应用而生,整个产品从设计之初就是为了支撑移动应用开发,没有任何的历史包袱和冗余实现,起步的时候体质就比其他平台优良,兼顾最新终端特性,全面发挥设备能力,支持开发出高性能的应用。通过采用云端一体的在线开发模式,简化应用开发技术。
  3. 端API:用于移动端App开发,包括设备访问、应用管理、UI界面、网络通信、数据存储、多媒体、第三方SDK等App开发需要的一切API。
  4. 云API:用于服务器端Service开发,包括数据存储、文件存储、推送、统计、云编译、应用管理、开放平台服务等众多API。
  5. 全生命周期管理:APICloud聚合了从开发、测试、发布,到运营、增值、管理等App开发过程中所需要的一切功能,可以一站式完成App开发的所有工作。

提问:请问您如何看待由于移动的兴起而带来的API使用及发展阶段?

邹达:APICloud是通过一个云端一体的平台,把开发者进行App开发说需要的一切能力聚合进来,以统一的API提供出去,我们做APICloud也是看到了今天移动互联网的发展推动了API模式的发展。移动的兴起以及移动App需求的爆发将推动API的广泛使用,将加速API模式的发展与创新。

我认为可以概括为以下几点:

  • 移动做为产品和服务的载体和表现形式,具有更广泛的应用场景,从而需要进行大量的功能扩展。例如:设备特性、UI特效、智能硬件、社交、地图、支付等等,而这些功能都需要以API的形式来提供,需要通过调用API来使用。
  • App创业加大了App开发的需求,同时也推动了B2D业务的发展,目前,面向开发者的各类垂直服务发展火爆,基本上已经覆盖了从开发、测试、发布到运营、增值、管理等每一个App相关的领域,而这些服务也都是以公有云的形式提供服务,需要通过API来进行使用。
  • 移动App采用Client/Cloud的架构,界面和数据的划分更加清晰,数据完全需要API的形式来提供。众多的API需求也促使API做为基础的数据和服务提供方式,目前也已经成为了一种可以持续发展的独立的API经济模式。基于API所提的数据和服务,不同开发者或创业者可以与不同的行业结合开发出创新类的产品。
  • 移动对API的依赖和广泛使用也加速了整个API行业的成熟与完善,例如:对于API的标准性和灵活性的要求。对于API二次开发的需求,对于API的安全、管理、计费等要求,都要求API行业要快速的发展以满足市场的需求。
  • 移动的兴起推动的技术的革新,需要新的产品来简化开发技术,促进来各种平台类产品的发展,如:APICloud是一个移动应用的开发平台,聚合了开发者所需要使用的一切API。也有某一个领域内的聚合平台,如:Ping++和现代支付等都是支付类的聚合平台,可以简化支付服务的使用。

提问:您觉得App创业的创业者可能会遇到哪些“坑”?

邹达:这方面我们在各地的线下沙龙也一直会和开发者讲,主要还是集中在人员成本和开发效率方面的问题。人才匮乏,开发成本高、难度大,周期长……种种的高门槛让创业的失败率大大增加。

如果想做一款市场覆盖面广的App,至少需要iOS和Android两个平台App的版本。伴随市场需求旺盛,Android工程师和iOS工程师都不好招。再有就是服务器的开发,业务逻辑实现和接口封装以及数据库开发分别需要至少1名工程师,后期维护还需要运维人员的投入,这些人才对于企业招聘也是一大考验。

另外,时间成本也比较高,开发的时间大概需要2-3个月,复杂一些的需要3-4个月。在Android碎片化如此严重的今天,屏幕分辨率多达上百种,系统版本横跨数十个,屏幕及系统版本的适配给开发者带来了极大的困扰,占用了非常多的开发时间;同时iPhone6和iPhone6 plus以及iOS8.0的出现使得iOS开发也出现了屏幕以及系统版本适配的问题,整个开发周期可能会更久。

再有就是App版本的更新在AppStore也会经历漫长的审核周期。第三方统计报告显示,有17%的App版本更新的频率是每周,48%的App版本更新的频率是每月,所以版本的快速迭代是一个成功App要重视的重要因素之一。

所以,我们给创业者推荐App创业的“Fast IPO法则”:

  • Fast Idea:将产品快速功能分期,做出基础版本原型
  • Fast Project:通过合适的开发工具,快速技术实现完毕。
  • Fast Operation:快速推广,获得第一批用户。

提问:那么在玩转App开发上有哪些途径和学习渠道?也就是如何快速玩转App开发?

邹达:我感觉需要选择合适自己团队的开发工具和开发模式。结合自己现有的技术特点开始学习,不同语言和技术其实学习的途径和方式,以及需要获取的核心的知识都差不多了。

例如学习APICloud App开发:可以加入APICloud社区和QQ群,社区提供了大量的开源模版和实例代码;可以多参加APICloud的线下活动和免费的培训,多和APICloud开发者关系团队交流获得更多的项目资源和参加实战项目机会。

提问:您认为API服务的难点体现在哪些方面?

邹达:API做为产品和服务的表现形式,难点和重点体现在标准性、灵活性、扩展性和安全性、可管理性。

标准性方面,对于整个接口的表现形式、接口规范以及制订包括如何让开发者尽快掌握API是开发过程中遇到的一些难点也是重点。

比如APICloud的接口规范要符合大量的Web开发人员的使用习惯,模块扩展的标准也要遵循common js的规范。

对于灵活性,虽然不可能满足所有的应用场景需求,但是要通过参数等尽量满足。

对于扩展性,要有开放的标准,支持自定义扩展,用户有要能力做API的二次开发。

对于安全性和可管理性:API曾为一种商业模式,需要考虑安全性和可管理性,这是都是API做为一种商品交易需要具备的属性。

提问:那么,您认为APIcloud是如何做到帮助App开发者节约时间并降低成本的?

邹达:我们为开发者也总结了“Time To Market”的六大准则,APICloud从架构设计和开发模式上也是遵循了这6个准则:

  • Fast To Develop(开发)
  • Fast To Device(适配)
  • Fast To Extend(扩展)
  • Fast To Innovate(创新)
  • Fast To Release(发布)
  • Fast To Update(更新)

我每项做个说明吧:

1. Fast To Develop -- App(手持终端)

通过APICloud不需要掌握ObjectC和Java,只需要通过Html5+Css+Js就可以一次开发同时运行于iOS和Android两个平台,只要通过Web技术就搞定一切,不用再担忧招人的问题,同时还大大节省了开发的时间成本。对于开发这用的扩展功能和服务,APICloud也都提供的对于的模块。

2、Fast To Develop -- Service(服务端)

APICloud可以节省70%的服务器端编码工作。APICloud为App开发者提供云端的API服务和数据存储服务,动态生成RESTful API,支持在线NoSQL数据表设计、API调试及用量分析;预置常用云端功能模块,例如内置用户系统、角色系统、文件系统、权限控制等,开发者几行代码即可实现快速集成,极大地简化了服务器端开发工作。

3. Fast To Extend(扩展)

APICloud利用了HTML5的所有优势,同时弥补了性能不足的劣势,APICloud提供了很多原生的功能和UI模块,供开发者使用,只需要通过乐高积木式的拼装就能快速搭建原生体验的App。同时APICloud支持原生模块的自定义扩展,很多第三方服务的SDK已经集成到APICloud平台(微博、微信、支付宝、极光推送、融云、多盟、梆梆安全、Testin等数百种第三方模块),这些服务都是跨平台封装,降低了开发者的使用难度。基本上目前每个领域内,主流的BTD服务都可以在APICloud平台上找到。

4. Fast To Innovate(创新)

基于APICloud可以自由扩展多种行业解决方案,满足创业的多样化需求,例如IOT、O2O、READ、VIDEO、SNS等。

5. Fast To Release(发布)

APICloud提供简单快捷的在线云编译功能,iOS和Android的安装包同步输出,同时提供压缩、加密、加固、云测史上最强大的打包整体解决方案,让你彻底告别版权、安全、质量检测的种种困扰。

6. Fast To Update(更新)

第三方统计报告显示,有17%的App版本更新的频率是每周,48%的A版本更新的频率是每月,所以版本的快速迭代是一个成功App要重视的重要因素之一。APICloud的更新机制支持云端修复,静默更新,不需要再经过AppStore漫长的审核周期就能帮您实现版本的快速迭代。

提问:请问该怎样理解“云API”和“端API”的结合?

邹达:我们从设计上就可以云API与端API的对应,比如数据云服务,服务器端的数据模型的字段和功能,是与端API中数据模块的属性和方法是一一对应的。并且对应端和云虽然是分别用于App的开发和服务的开发,但是功能上面是相关的,例如版本更新或推送。移动端要使用端API来绑定推送的服务,客户的管理后台也需要调用云API来发送推送的信息。

虽然APICloud是一个云端一体的架构,但是,对于云API和端API,开发者也可以根据自己的实际情况灵活选择、分开使用。

比如战旗TV,目前主流的游戏直播应用,安装量也有400多万,他只使用的APICloud的端API;在比如颜值这个应用,之前AppStore付费排行榜还是挺火的,只使用的APICloud的云服务,没有用端API。

提问:接下来替群里的学生朋友和初级职场人问一个问题,对于还未有太多职场经验的技术人,该如何快速成长?这也是小伙伴们非常想跟技术高手交流的一个问题。

邹达:我建议,有机会还是要加入到一个好的平台,不要太纠结薪水,要看有没有发展的潜力,产品方向好不好。这样,能够接触更多的资源和更多前沿的技术,比如我们的运维基本市场上所有的IaaS层公有云产品都接触和使用过,有实际的锻炼机会。

再就是,还没有太多经验的时候,工作不要太挑剔,很多时候领导给你分配的机动性杂事和杂活都是很好的锻炼机会,因为这些事情很多都是他平时亲自去完成的,可以得到直接的指导和学习的机会。

要有好奇心和对技术质疑的精神,内部讨论的时候要多说出自己的观点和不清楚的地方,讨论可以将工作做好,深入地了解产品,也是很好的学习机会。

工作和在学校不同,不是按课本学好了就考试通过,需要自己主动查找相关的资料,要学会总结和整理资源,各种知识都要接触,要多阅读新的技术书籍和参加技术沙龙。这是我的一些建议。

现场互动:APICloud是在云端开发,这种公用开发工具必定提供公用组件,理论上运行效率会比native开发低,是不是?低多少?

邹达:理论上运行效率是和原生没有区别,因为我们虽然是使用H5技术进行开发,但是用H5实现有问题或性能不好的地方,APICloud都做了功能扩展,所有的扩展模块本身就是原生开发的,不存在效率问题,并且组件本身设计良好,功能独立,没有冗余的实现,都是对基础功能的封装。

并且APICloud开发的应用整体架构是和原生一致的,采用多窗口的架构,是在系统级别做的真正的分层渲染。与浏览器的渲染方式是不同的,采用Native的机制。APICloud不是提供一个模版或框架或工具,我们是提供API,应用需要开发者自己开发。

现场互动:那么安全性该如何保证?

邹达:安全性可以从4个方面来讲:

1.  代码的安全

我们支持代码的加密和应用的加固,这些操作都是在云端一键就可以完成的。APICloud是在世界范围内所有的基于H5的应用开发平台中,唯一一个支持全部代码(HTML,CSS,JS)全包加密的。

在APICloud云编译完毕的应用,也可以直接使用梆梆安全的加固服务。

2.  本地数据安全

我们和原生应用一样有自己的沙箱,并且接口支持数据加密,并且开发者也可以扩展自定义的加密模块来保护数据。

3.  网络通信安全

APICloud提供的所有云服务都是采用https方式通信,对于开发者自己的服务的通信,APICloud支持认证的和自定义的CA证书,单向和双向的Https通信。

4.  服务器端数据安全

APICloud的云API调用都需要使用AppKey进行签名,并且数据云的访问,采用的是基于ACL的访问控制,用户可以自定义自己的访问权限。

现场互动:APICloud SDK 32位,windows7能用的在哪下载?

邹达:目前就支持。IDE是用Java语言开发,虽然有些是64位的库,但都是向下兼容的。我们的开发者就有用32位 Win7的。可以选择合适的版本下载。目前只有window版本,我们的Mac版本的IDE已经邀请测试了,6月份就会上线了

现场互动:我现在还未接触过移动应用开发,根据您的介绍APIcloud是一个集众多API于一体的平台为开发者节省了繁杂的code,降低了软件开发的门槛,这样是否会让以后的技术开发处于疲态。是否会让一些功能新的实现方法的延伸和发展产生影响?

邹达:我们是想简化移动应用的开发技术,提供一套务实的开发模式,是想打造一个围绕开发者的生态,这个生态中包括应用需求方、应用开发者、服务提供方、模块开发者等。

我们是提供了一个平台和云和端的引擎,通过开发出不同的生态产品将各方加进来,并且都能赢利。帮助创业者实现App创业,帮助模块开发者交易变现,帮助服务提供方扩大用户数,帮助Web开发者能开发App。我们现在的开发服务的模块都是B2D的服务提供方按照APICloud的规范进行封装,并且提交上线。我们去年年底也上线了国内第一款生态产品,模块Store能让模块开发者交易变现。APICloud是一个开放的平台,希望大家都能参与进来,谢谢!

本文转载于CSDN

感谢大家的持续关注,欢迎有兴趣的朋友加入我们的技术讨论社区:乎声社区》》

后面也将会为大家提供更多最新最热门的行业动态和技术内容。感谢支持哦~

【CTO讲堂】以API为核心的移动应用云大发展时代的更多相关文章

  1. ASP.NET Web API的核心对象:HttpController

    ASP.NET Web API的核心对象:HttpController 对于ASP.NET Web API来说,所谓的Web API定义在继承自ApiController的类中,可能ApiContro ...

  2. 一个尖括号能干什么,画一个笑脸开始(为了支持交互,它又增添了JavaScript。HTML页面也越来越臃肿。于是CSS便诞生了。API和核心代码的出现使HTML能够访问更复杂的软件功能--支持更高级的交互和云服务集成。这就是今天的HTML5)

    一个尖括号 < 一个尖括号能干什么 < ? 你可以编出一顶帽子 <(:-p 或一张笑脸 :-> 再或者更直接一些 20世纪90年代初,html作为一种简单标记语言面世,用于在互 ...

  3. Zookeeper系列2 原生API 以及核心特性watcher

    原生API 增删改查询 public class ZkBaseTest { static final String CONNECT_ADDR = "192.168.0.120"; ...

  4. 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析

    http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...

  5. ASP.NET Web API路由系统:路由系统的几个核心类型

    虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除 ...

  6. GPS(1)核心API及3种列出LocationProvider的方法

    GPS的常用API Android SDK为GPS提供了很多API,其中LocationManager类是这些API的核心.所有与GPS相关的操作都由LocationManager对象及其派生的对象完 ...

  7. ASP.NET Web API框架揭秘:路由系统的几个核心类型

    ASP.NET Web API框架揭秘:路由系统的几个核心类型 虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分 ...

  8. ASP.NET Web API 框架研究 核心的消息处理管道

    ASP.NET Web API 的核心框架是一个由一组HttpMessageHandler有序组成的双工消息处理管道:寄宿监听到请求接受后,把消息传入该管道经过所有HttpMessageHandler ...

  9. SQLite接口函数 - C核心api实践与总结

    SQLite核心源代码由C语言写就,同时提供了很多的扩展包可应用于其他编程语言和类库,如Python.Ruby.Java.Perl..Net/C#.Qt和ODBC.在很多情况下,针对一种语言有很多扩展 ...

随机推荐

  1. IT传统组织结构及新型扁平化组织

    如今互联网企业正凶猛的改变人们衣食住行的方方面面,衣->淘宝,蘑菇街;食->大众点评,口碑;住->去哪,途牛:行->12306, 多次听到互联网的同行介绍他们就是要“快”,快速 ...

  2. CSS水平垂直居中的几种方法2

    直接进入主题! 一.脱离文档流元素的居中 方法一:margin:auto法 CSS代码: div{ width: 400px; height: 400px; position: relative; b ...

  3. NodeJS实例系列~环境搭建,Hello world归来!

    回到目录 1 安装Node.js服务端程序 https://github.com/Microsoft/nodejstools/wiki/Install-Node.js-and-get-started- ...

  4. Atitit java的异常exception 结构Throwable类

    Atitit java的异常exception 结构Throwable类 1.1. Throwable类 2.StackTrace栈轨迹1 1.2. 3.cause因由1 1.3. 4.Suppres ...

  5. iptables基础命令详解

    TCP/IP基本概念: TCP/IP将网络分为四层:应用层,传输层,网络层,链路层. 传输层:定义了两种通信协议,分别为TCP协议和UDP协议. TCP协议:TCP协议在传输 数据过程中会检查数据的完 ...

  6. iOS---NSAutoreleasePool自动释放原理及详解

    前言:当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池.它仍然是个正当的对象,因此自动释放池 定义的作用域内的其它对象可以向它发送消息.当程序 ...

  7. sdk更新代理设置

    sdk更新代理设置 http://www.cnblogs.com/zhoujg/p/4560998.html

  8. HTTP与AJAX深入揭秘,不使用AJAX实现页面无刷新

    AJAX的原理是什么? 实际上就是发起HTTP请求,既然就是发起HTTP请求,那只要我们能够实现发起HTTP请求就可以在不使用AJAX的情况下实现相同的效果. 在前端有好多方式可以发起HTTP请求,比 ...

  9. PHP的学习--PHP的引用

    引用是什么 在 PHP 中引用意味着用不同的名字访问同一个变量内容.这并不像 C 的指针,替代的是,引用是符号表别名.注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字.最 ...

  10. Android自定义EditText去除边框并添加下划线

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...