Memex Swift SDK
什么是 Memex?
Memex 是一个轻量级的个人知识库,具有自动内容管理功能。这意味着它帮助组织每一片知识(笔记、URL、草图、评论等)。这些片段(空间)通过记忆链接相互连接,有助于导航并将它们组合成更紧凑的知识。它就像网页,但更轻量级,并且仅限于个人使用。
空间
Memex 的核心概念是空间,它是一组小块知识的集合/文件夹。它可以是文本片段(文本空间)、笔记或指向其他集合的大量链接集合(集合空间)。
有两个核心类别中的几种标准空间类型
- 集合导向 - 由其标题定义/表示
- 集合 - 指向其他空间的链接的抽象集合
- 原子(简称原子) - 由标题和链接媒体定义/表示
- WebPage - 任何网页的装饰性 URL
- 文本 - 一小段信息/注释或任何可以被书写的内容
- 图片 - 视觉知识件
空间具有以下结构
class Space{
var MUID: String?
var createdAt: Date?
var updatedAt: Date?
var state: ObjectState?
var caption: String?
var color: Color?
var typeIdentifier: String?
var unread: Bool?
var ownerID: Int?
var representations: [Media]?
}
链接
memex的另一个核心原则是连接,这仅仅是两个空间之间的连接。因此,如果两个事物/思想/空间在用户的大脑中存在联系,那么memex中也应该存在有方向的链接。
class Link {
var MUID: String?
var createdAt: Date?
var updatedAt: Date?
var state: ObjectState?
var ownerID: Int?
var order: Int?
var originSpaceMUID: String?
var targetSpaceMUID: String?
}
媒体
可以是的用户头像或空间图像/文本表示的数据。
class Media {
var MUID: String?
var createdAt: Date?
var updatedAt: Date?
var state: ObjectState?
var metadata: [String: Any]?
var dataState: DataState?
var kind: String?
var embededData: Data?
var dataDownloadURL: URL?
var dataUploadURL: URL?
var ownerID: Int?
var representedSpaceMUID: String?
}
智能特征
今天memex支持两个智能功能,将帮助用户自动管理其内容。
自动分类(自动导出)
第一个功能称为自动导出,它会自动将新空间与最合适的已存在空间进行链接。例如,如果用户放下网页地址,并且已经存在相似的集合,那么Memex将尝试自动从该集合创建链接到新创建的空间。请参阅示例部分。
自动截图
你在创建空间集合,但不知道如何命名?Memex提供的另一个智能功能是空间的自动标题/摘要。只需提供一系列空间MUID,我们将告诉您最佳的命名方式。
设置
MemexSwiftSDK 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
1. 创建应用和获取应用程序令牌
前往 Memex Dev Center 创建您的应用。您无需等待批准,然后继续下一步。
2. 将 pod 添加到 podfile
进入您的 Podfile,并添加以下行。
pod "MemexSwiftSDK"
3. 导入模块
将 memex SDK 导入到您想要使用它的每个 Swift 文件中。
import MemexSwiftSDK
4. 使用应用程序令牌配置 SDK
在您的 AppDelegate.swift 或其他任何您初始化库的地方放置此行。
let memex = Memex(appToken: "<YOUR APP TOKEN>")
memex.prepare { error in
// memex object is ready for usage
}
示例
身份验证
最初支持的用户身份验证方法是使用客户端凭证(邮箱和密码)。
let credentials = new Credentials("[email protected]", "secretPASSWORD")
memex.loginUserWithUserCredentials(credentials) { error in
guard error == nil else {
// show login failure dialog
}
// let user into app
}
// it can be generated UUID or retrieved from iCloud
let onboardingToken = "xxxx"
memex.loginUserWithOnboardingToken(onboardingToken) { error in
guard error == nil else {
// show login failure dialog
}
// let user into app
}
获取原始/空间
如果您想获取用户的原始空间或其他空间,请使用其MUID(Memex唯一标识符)。
memex.getSpace("origin") { space, error in
guard error == nil else {
// show error message
}
// show space to user and load its links using getSpaceLinks
}
获取链接
memex.getSpaceLinks("origin") { links, error in
guard error == nil else {
// show error message
}
// show space links
}
创建空间
如果您想在用户的Memex中创建新的空间,可以使用以下代码。
let space = new Space();
space.caption = "iOS 11 Stuff"
space.typeIdentifier = "com.memex.media.collection"
let autodump = true;
memex.createSpace(space, .async, autodump, completion);
文档
SDK的每个功能都使用Swift文档进行了文档记载,并在XCode中使用Alt+Click进行访问。请参阅生成的文档。