找回密码
 注册
搜索
查看: 872|回复: 2

一天实现 WhatsApp

[复制链接]
发表于 2014-5-20 14:30:33 | 显示全部楼层 |阅读模式
通讯 App 的市场正在突飞猛涨,人们正在寻找标准文本通讯的替代品。既然机会难得,为何不创建一个通讯 App 呢?本文将带你使用 Android 完成 WhatsApp 的框架克隆(我们将其命名为 KiiChat),利用 Kii Cloud 移动后端服务器可更容易、简便地创建这类App。

如果你是外星人,你大概不知道 WhatsApp(刚被 Facebook 收购)是当下最流行的跨平台移动通讯 App。你可以用它与世界各地的用户交换消息(不需要付短信费用),创建群组,无限地发送图片、视频和音频消息。

开发 Skype、WhatsApp 或者 LINE 等即时通讯 App 时,服务器端功能的开发是必不可少的,并且到现在为止,个人开发者还不得不实现这一切(这是一个大的意外)。幸运的是,使用诸如 Kii 等后端服务可以在几个小时内快速开发一个非常实用的 App。在这篇文章的最后,您将有机会下载完整的示例项目。该 App 通过我们的 Android SDK可以做以下事情:

1. 支持用户群组(以及群组级 Object Bucket)

2. 修改数据存储的默认权限(通过在 Object Bucket 中新增 ACL)

3. 给已订阅了 Topic 的用户发送消息(通过 Push to User 功能)

4. 有新消息时,通知 App(通过 Push to App 功能)

5. 查询 Cloud 上存储的 Object(消息、图片等等)

6. 上传图片(通过上传 Object Body)

7. 下载图片(通过下载 Object Body)

8. 使用 Facebook 账号登录

创建 App 后端

在 Kii 的开发者平台上注册你的 App 是使用 Android SDK 的先决条件。注册完成后,你的 App 会有一个相关联的 App Key 和 App ID,你需要借助它们初始化 Kii SDK。

注册 App

1. 登录开发者平台:https://developer.kii.com

2. 点击 “Create App” 按钮。这将弹出 “Create An App” 菜单。


3. 输入 App 的名称,选择期望的服务器位置和所需的手机应用平台(这个项目中,你需要选择 Android),然后点击 “Create” 按钮。

这些就是在使用 Kii Cloud 时用来识别 App 的认证凭证。

复制这些凭证,并将它们添加到项目的常数文件 ApplicationConst.java 中。在下一步:“初始化后端”中我们将用到它们。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2014-5-20 14:33:11 | 显示全部楼层
初始化后端

现在是时候将你实际的 App 和 在上一步中创建的 App 后端链接起来了。简单地说,你需要将我们的 SDK 添加到你的 Android 项目中,并使用 App ID 和 App Key 初始化 Kii。具体步骤如下。

配置项目

按照如下步骤将 Kii Cloud SDK 集成到 App 项目中:

1. 把最新的 Kii Library(KiiCloudStorageSDK-xxx.jar)拷贝到项目的 libs 目录下 {Android App 项目的根目录}/libs

请确保它作为一个引用 Library 被包含在项目的属性中。

2. 在 App 的 AndroidManifest.xml 中添加如下权限:

C2DM 权限是 Push 通知的必备条件。

3. 在 KiiChatApplication 类中添加如下代码初始化 SDK:

在该方法的占位参数中插入你自己 App 的凭证(即,APP_ID 和 APP_KEY)。还需要传递你之前所选的服务器位置(Site.US、Site.JP 或者 Site.CN)给该方法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
点评回复

使用道具 举报

 楼主| 发表于 2014-5-20 14:34:24 | 显示全部楼层
对象模型
通讯 App 的对象模型:

IUser:用户基本信息(用户名、E-Mail 和 URI)的接口
KiiObjectWrapper:一个封装,用于在 KiiObject 上快速获取和设置 Key-Value,以及获取低级别的 Object 信息(ID、创建时间和修改时间
ChatUser:ChatUser  Object 的封装,继承自 KiiObjectWrapper 并实现了 IUser 接口。是对通讯系统中用户的抽象。ChatUser Object 是存储在一个 App 级的 Bucket 中的。
ChatFriend:ChatFriend Object 的封装,继承自 KiiObjectWrapper 并实现了 IUser 接口。与 ChatUser 相似,不同的是 ChatFriend Object 是存储在一个用户级的 Bucket 中的(因为只有该用户可以查看他的朋友)。
ChatMessage:ChatMessage Object 的封装,继承自 KiiObjectWrapper(消息本身就是一个 KiiObject)
ChatRoom:对聊天室中 KiiGroup 用户和相关消息列表的抽象。
ChatStamp:ChatStamp Object 的封装,继承自 KiiObjectWrapper(Stamp 本身就是一个 KiiObject)。Stamp 是可以在会话中发送的图片。
我们在介绍 App 功能时,会详细介绍每个模型的类(详见下文)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-27 12:38 , Processed in 0.056176 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表