Thoughts, stories and ideas.

Realm WorldTour 分享 | 基于 DataBinding 的 MVVM 框架

以下的主题内容来自@凯凯杨 在 2017 Realm WorldTour Beijing/Realm 世界之旅北京站上的分享。

我们到现场去和 Realm 的工程师与中国的资深用户、开发者们一起深入的聊了聊在使用方面的体会,当中分享的案例来自于 BearyChat(倍洽) Android 项目 的实战经验,既是与同行、同好的交流,也是我们内部对自己工作的一部分总结,在这两个层面上都有收获。

(熊们强烈要求此处要有凯凯杨的英姿)

这一次分享的重点:

  • MVVM
  • DataBinding
  • DataBinding 的不足
  • DataBinding + Flavor
  • Realm MVVM

MVVM

MVVM 是应用最为广泛的 Android 框架之一,在 Model-View-ViewModel 框架当中,ViewModel 即视图模型,介于 Model 和 View 之间,是直接服务于 View 的 Model,是改变 View 的变量集合,可以是对数据的进一步封装。

在本文最末附上的 PPT 当中对 MVVM 进行了一个简短的举例说明。

DataBinding

DataBinding 通常会和 MVVM 一起被介绍,让 MVVM 在 Android 上实现起来显得不那么别扭。可以这么说,DataBinding 是目前为止,在 Android 项目中实现 MVVM 的最佳方式,在使用 DataBinding 的过程中也会自然的产生一个 ViewModel。

同样,我们在这一部分举了一个例子说明 DataBinding 在这个过程当中都做了些什么,简单来说,引入 DataBinding 后大致可以给我们带来如下好处:

  • View 可以不再需要 id 和大量的 findViewById,从而也减少了大量的临时变量;
  • 让代码逻辑归逻辑,视图归视图,数据归数据

总体来说,基于 DataBinding 的 MVVM 会让代码更加整洁、干净和幽雅。

DataBinding 的不足

实话说……

目前还无法做到在 Menu 中使用 DataBinding :(

DataBinding + Flavor

通过配置 Flavor,我们可以构建出不同的变体。同样举例说明借助 Flavor 我们可以实现:

  • 配置不同的打包参数
  • 合并 AndroidManifest
  • 替换 drawable 以及 asset 文件
  • 合并 values 文件

Realm MVVM

Realm 完全可以作为 MVVM 中的数据层: Model,不过在 ViewModel 中使用 Realm 时需要注意多线程的问题:

  • 同一个 Realm 对象不能跨线程使用
  • 如果你完全依赖 Realm 的自动更新,那么一定要注意判断 isValid(),尤其是在 Realm 对象会被删除的情况下

一点总结

囿于篇幅限制,本文省略了分享中的相关案例演示,可以加入我们的 活动团队 进入 #2017Realm北京 讨论组下载凯凯杨本次分享的完整 PPT,在 #2016ChatBot北京 讨论组中还能发现我们 ChatBot 主题沙龙中的分享资料(这是一个彩蛋),后续我们也将在活动团队中更新更多线下活动分享内容。

技术沙龙邀请 | 解密 chatbot 人工智能聊天机器人 第二期

「2016 年最火的行业方向不是 VR,而是对话交互/对话机器人(bot/chatbot)。Google 发布了 Gmail 和 Allo 上的智能回复功能,并收购了美国最大的 bot 创建平台 api.ai。Microsoft 推出了自己的语言理解平台 LUIS 以及 Bot Framwork。Facebook 的 bot 创建平台 wit.ai 进行了大规模的改版以便提升机器人的智能性,其 Messenger 上对话机器人数量已超过 3 万。原 Siri 团队研发的 bot 平台 Viv 还未发布就已被三星收购。Amazon 推出了自己的语音交互系统 Lex,以丰富 Echo 的使用场景……」


这些,只是对话交互时代到来的序曲。

 

很多人认为 2016 年是 bot 元年,不仅是各类产品层出不穷,就连相关的技术研究也有井喷之势。那么,真如大家所说,bot 需要集齐 NLP、IR、ML、RL 和 DL 等这些技术才能实现么?

11 月末我们在北京组织了一场有关于 chatbot 的线下沙龙,邀请了爱因科技 CEO 王守崑老师,LeanCloud 云引擎开发工程师安龙,和我 chat 后端工程师韩元波一起,和到场的朋友们分享了有关 chatbot 的一些概念和应用场景,现场氛围十分活跃。

我们打算将这场沙龙延续下去,这一次,我们请到了百度度秘技术负责人之一谢剑、阿里 IDST 人机对话系统高级算法专家李永彬、腾讯微信 chatbot 项目负责人林芬和图灵机器人 QA 负责人魏晨前来分享,他们将为我们打开 bot 技术的神秘大门,和我们一起窥视 AI 时代对话交互的源驱动力。

【活动信息】

2017 年 1 月 7 日      13:30 - 17:30
北京市海淀区丹棱街 5 号 微软大厦 1 号楼 一层故宫会议室 


【嘉宾介绍】

李永彬

分享主题:《自然语言理解》

阿里巴巴高级算法专家,2007 年清华大学自动化系硕士毕业,目前任职于阿里云——IDST——智能语音对话交互部门。 2011 年加入阿里巴巴,一直专注在自然语言处理方向,2014 年之前先后从事中文分词、淘宝 query 分析、情感分析、问答系统等方向的工作。
2014 年开始专注在人机对话系统的研发,负责自然语言理解方向,并开发了对话管理的早期版本。

林芬

分享主题:《chatbot 系统若干问题讨论》

2009 年中科院计算所博士毕业后进入腾讯工作至今,目前在腾讯微信模式识别中心工作。
主要从事自然语言处理方向的研究,包括语义分析、搜索系统、问答系统和对话系统。目前主要负责微信 chatbot 项目。

谢剑

分享主题:《语音对话交互系统技术概述和探索分享》

百度资深算法工程师,武汉大学人工智能方向硕士,曾先后在阿里云、微软stc 实习,在百度负责过凤巢客户流失预测、客户细分等;商业知心广告检索触发、交互变现;基于垂直领域知识图谱的搜索相关性优化等技术方向。 现为度秘算法团队技术负责人之一,负责对话式交互系统的算法优化。 

魏晨

分享主题:《Question Answering Systems》

于 2012 年获得硕士学位。硕士期间在数据挖掘领域发表了 2 篇会议论文,1 篇 ISF 期刊,负责了 Springer 图书中的 1 章并出版了 1 本书。 曾经是美国政府特邀访问学者,并曾被科英布拉大学邀请作为 Named-Entity Recognition 方向的研究员。 先后就职于联想、新加坡南洋理工大学,从事文本挖掘领域研究。目前,在图灵机器人工作,研究兴趣包括问答系统等。

【活动流程】

欢迎你到现场与我们一起沟通交流,点击 链接 填写相关信息即可完成报名。

同时,欢迎你提前点击加入 chatbot 沙龙团队,在线上与其他参会同好更多交流。现场分享的同时,我们也将在团队中创建现场抽奖专用 channel,为到场的大家抽送出我们的一些小心意。

期待与大家见面:)

你有双重福利待查收

双十二紧接着圣诞打折季,因为买买买而感觉很热闹的十二月。为此我们也为所有用户团队准备了两重福利活动,期望会和更多伙伴一起升级工具,让效率更进一步。

每充值 200 元可额外获得 20 元 BearyChat 礼品券

2016 年 12 月 12 日 0:00 至 2016 年 12 月 31 日 24:00,在此活动期间,为团队进行充值,每满 200 元即可获得我们额外赠送的 20 元礼品券一张,礼品券数量上不封顶。

活动支持支付宝及对公转账两种支付方式,对公转账请记得与我们邮件确认哦 :)

例如:A 团队在 12 月 12 日当天使用支付宝为团队充值 400 元,充值成功后 24 小时内,A 团队创建者将收到总额为 40 元的 BearyChat 活动专享礼品券推送,礼品券在有效期内随时支持兑换至团队余额,用以支付升级至 BearyChat 高级版后的团队账单。

邀请新团队注册,分享邀请注册专享礼品券

2016 年 12 月 12 日 0:00 至 2017 年 2 月 28 日 24:00,在此活动期间内,通过团队专属邀请码成功邀请新团队注册后,邀请团队与被邀请团队都将获得价值 100 元的专享礼品券一张。作为邀请方的团队最多可获得三张礼品券。

具体参与形式:

1. 使用团队专属邀请码邀请用户创建新团队。

邀请码为各团队自有域名,如某团队地址为 name.bearychat.com,则邀请码即为「name」。    

2. 提醒被邀请团队的创建者填写「新注册团队使用问卷」。

新团队创建成功后,团队创建者将收到由 BearyChat 小助手发送的「新注册团队使用问卷」。请提醒被邀请团队创建者将邀请码填写至问卷相应位置。    

3. 查收「邀请注册礼品券」并及时完成兑换。

邀请码经后台识别确认后,我们将向双方团队创建者各赠送一张价值 100 元的「邀请注册礼品券」。请在礼品券有效期内完成兑换充值。

我们试图抓住这一年仅存的小尾巴,再一次感谢在过去的这一段日子里和我们一起耕耘与成长的朋友们,「因为有你们」和「为了有你们」,我们才会变得更好。

最后一个小小的展望:全新的 BearyChat 即将正式与所有用户见面,如果你想立刻体验,欢迎加入 feedback 用户支持团队 尝鲜 :)

BearyChat x 石墨 | 聊聊你在使用的「利器」

工具和灵感,都是利器。

当二者来自不同领域、不同类型的创造者手中时,才会迸发出更多的可能性。

好工具帮助工作,BearyChat 始终与国内外好用的工具合作,期待帮助大家提升工作效率。这一次,我们集成了在线协作文档石墨,从现在开始,你可以在 BearyChat 中使用石墨文档了。

无论身处何时何地,你都可以在石墨文档上与他人共同实时编辑同一文档、表格;

无论工作多么繁杂,你都可以用 BearyChat 把这些信息汇集,实时交流、讨论;

当穿梭在利器中时,分享、学习各种工具利器的使用方法,会让我们的思维灵感更加活跃、工具体验更加丰富,

那么,不妨分享一下你的「利器」,告诉我们你的故事^^

活动参与方法:

(1)撰写文章,在石墨文档「分享」中添加成员,共享给官方邮箱:myteamliqi@163.com

(2)文章内容可以按照如下线索来填写:

  • 介绍一下你自己和所做的工作。
  • 你都在使用哪些硬件?
  • 软件呢?
  • 你最理想的工作环境是什么?
  • 你平时获得工作灵感的方式有哪些?
  • 推荐一件生活中的利器给大家。
  • 你最理想的协作工具是什么样子的?

(3)我们会筛选出惊艳的文章内容在利器网站上展示,并奉上 BearyChat 与石墨文档共同准备的精美礼物一份^^

点击这里可以查看利器展示模板。