摘要: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已经是国内做得口碑最好的在线移动应用开发平台。
平台的一些特点:
- 云端一体:APICloud同时支持移动端App的开发和服务器端Service的开发,前后端开发只需要使用JavaScript一门语言,并且基于相同的数据模型,App与Service之间的连接和数据通信通过一套API就可以完成。
- 移动应用云:APICloud就是为移动应用而生,整个产品从设计之初就是为了支撑移动应用开发,没有任何的历史包袱和冗余实现,起步的时候体质就比其他平台优良,兼顾最新终端特性,全面发挥设备能力,支持开发出高性能的应用。通过采用云端一体的在线开发模式,简化应用开发技术。
- 端API:用于移动端App开发,包括设备访问、应用管理、UI界面、网络通信、数据存储、多媒体、第三方SDK等App开发需要的一切API。
- 云API:用于服务器端Service开发,包括数据存储、文件存储、推送、统计、云编译、应用管理、开放平台服务等众多API。
- 全生命周期管理: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
感谢大家的持续关注,欢迎有兴趣的朋友加入我们的技术讨论社区:乎声社区》》
后面也将会为大家提供更多最新最热门的行业动态和技术内容。感谢支持哦~