Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qiujiayu/app-sdk-api-standardization
app sdk 开发及使用规范
https://github.com/qiujiayu/app-sdk-api-standardization
Last synced: 2 days ago
JSON representation
app sdk 开发及使用规范
- Host: GitHub
- URL: https://github.com/qiujiayu/app-sdk-api-standardization
- Owner: qiujiayu
- Created: 2016-05-31T05:30:13.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-06-16T03:46:41.000Z (over 8 years ago)
- Last Synced: 2024-11-08T16:23:50.111Z (about 2 months ago)
- Homepage:
- Size: 2.93 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# App SDK 开发及使用规范
交流群:205502605
现在手游行业中,进行推广时,需要接入非常多的第三方的SDK,给产品的发布增加了非常多的成本,同时也给代码的管理带来了非常大的难度。如果这个行业中的SDK提供方和SDK的使用方,有机会能坐在一起讨论这个事就好了,相信对这个行业的发展有些帮助。
引用[U8SDK创始人小黑——让手游SDK接入更简单](http://game.people.com.cn/n/2015/0720/c213917-27330656.html) 这篇文章的内容:
`
说到游戏上线,却让很多游戏开发商们措手不及。在国内,有太多大大小小的渠道,几乎所有的用户资源都掌握在他们手中。所以,辛辛苦苦搭框架,堆功能,测体验,OK,准备上线的时候,发现,还有将近几十家甚至几百家的渠道SDK要接入,顿时坠入无底深渊。而且,现在国内手游开发,一般都是基 Unity3D,Cocos2D-x等游戏引擎,游戏引擎本身就是支持跨平台的,所以对于游戏逻辑开发来说,一次开发完成,就可以立马打出针对 Android和IOS,甚至WP的包。
`如果游戏厂商能提高SDK接入的效率,最终受益的不仅是游戏厂商,还有SDK提供商,以及用户。相信这个账大家应该都会算。
在学习Node.js时发现,由于现在Javascript的用户在增加,所以出现了CommonJS和AMD 两种模块规范。然而现在App的盛行,SDK的使用也是非常多,难道我们就不能也出一个规范吗?
在我的工作过程中,也总结了一些经验,在这里供大家参考,也希望大家能发表自己的意见,为这个行业的发展做点贡献。(直接Fork,然后把你的意见添加进来,我来进行整理)
### SDK的开发规范
SDK大部份情况都是提供给项目组外,甚至是公司外部人员使用的,所以开发SDK的目标不仅保证功能和性能的达标,还需要达到节约沟通成本,提升“用户体验”的目标。所以需要实现以下几点:
* API 要实现高内聚,隐藏复杂度,比如我们最常用的登录接口,只需要提供一个login方法和通知登录结果的callback回调就可以了;
* 配置文件及配置内容,越少越好,减少维护成本,降低修改出错率;在接入时,每个SDK的配置项都需要去理解做什么用的,如何使用,这样给接入带来很高的成本;
* 配置参数尽量可以通过代码来修改,这样使用方也就可以实现通过服务端来管理;对于做SDK二次封装的业务,就非常有用;
* 避免配置文件及资源文件冲突,尽量使用公司名或项目名当前缀;
* 方便切换测试环境与生产环境;
* 不能占用独有资源(比如:Android中的Aplication);
* 需要提供详细的说明文档和尽量接近能使用的实例工程;### SDK的使用规范
在使用SDK时,如果是经常要维护的,那尽量还是开发一个中间件,把SDK的实现与自身APP的代码进行解耦合,然后通过“反射”技术注入。一方面可以把游戏代码与第三方SDK进行解耦,另一方面也方便代码的复用,可以用于其它产品。
我们公司因为业务特殊,需要把别人的SDK接入到我们的平台,然后再把封装后的SDK提供给游戏厂商使用。因为我们需要接入非常多的SDK,于是采用这种技术,把我们自己的业务与第三方SDK进行解耦。
在使用SDK方面,可以借鉴U8SDK的思想。