参加Hackthon是一种什么样的体验

我和我的队友们参加了为期两天的创新马拉松比赛。我们从无到有,目标是构建一个智能穿搭的AI虚拟衣橱,产品通过App来呈现。

项目介绍

项目名称:另衣伴

我们为美代言,为爱美的你推荐穿搭。我们目标实现:

1)自家衣橱随手带。逛商场,遇到喜欢的衣服,拍一张,我们在衣橱里找到搭配的衣服。

2)线上爱衣随意试。线上要是有你喜欢的衣服,我们告诉你同款衣服最近的店铺,试穿说走就走。

3)衣海淘金随心荐。在京东服饰里,找到匹配虚拟衣橱里的衣服。你的选择,我都懂。

衣服在前,我们要做的就是为你节省纠结与选择的烦恼。我们负责搭配,你负责美。

最后我们做出的产品,只实现了目标(1)

数据是本地模拟的,效果图如下:


参加Hackthon是一种什么样的体验_第1张图片
closet_home1.png
参加Hackthon是一种什么样的体验_第2张图片
closet_home2.png

该App已开源到Github上, 召唤传送门,欢迎star

整个比赛过程中,有收获更有许多感触

如何快速开发一款App?

一个App有几个部分组成:

  1. 第三方类库
  2. 页面基类
  3. 网络请求
  4. 项目目录和Gradle配置
  5. 页面跳转和动画

快速开发一款App,就需要对上面这五个方面有自己熟悉的解决方案和套路,同时还需要:

  1. 封装App高频的交互逻辑,抽取特定场景为组件。当App的其他页面需要使用时,用组合的方式低耦合的快速引入。
  2. 选择合适的项目组织方式,现在安卓项目架构组织方式有MVC,MVP,MVVM;小型App和小团队使用MVC即可;中大型,多人开发App项目,考虑使用MVP或MVVM。
  3. 从开源世界里找到合适的第三方类库。在实现特殊的交互时,还需要快速的理顺开源框架代码组织关系,修改部分代码来满足自己的业务需要。

这时候开发一款App,就变成了拼图游戏,把一个个App的模块(图片)/轮子拼起来即可。在拼的时候,考虑怎么拼的无缝(高性能,内存不泄漏),怎么拼的快(敏捷开发)

重复的轮子要不要再造?

我的思考结果是,只要项目时间允许,就得争取造轮子,哪怕是重复的轮子,或者已经有很优秀的轮子。只有自己造过轮子,看别人家的轮子(类库)才能做到驾轻就熟,举重若轻。

RxBus/EventBus如何理解?

RxBus/EventBus是事件总线,提供全局消息通信,能实现类与类的通信。

使用时要注意:

  • 监听的生命周期,做到生命周期最小。
  • 发送的消息专项专用。只用一个类表示一个消息,一个消息实现一个功能。
  • 消息总线只能用于组件的间的解耦。这意味着,它适用于页面间的通信,不适合一页面内,不同成员内部的通信。比如Adapter和Fragment之间的通信就完全不必使用事件总线的方式,通过方法来通信就可以了,从整个项目组织和可维护性上看,此处使用接口通信最适宜。

技术之外

比赛开始之前,有10天左右的准备时间,这期间团队内部对比赛方向产生了分歧。队伍内算法工程师认为,我们要先有个全局的把握,像写论文一样去思考,优先把产品方案和框架定出来,时间不够可以不必落地产品;而我则主张以落地产品做出App为基本前提,最后的讨论的结果是两条线并行。

现在复盘,其实这样是不好的。在只有半个月的时间,资源是相当有限的,当时就应该统一思想,以产品落地为优先。发散讨论的过程是必要的,最后队长要有意识地把讨论集中起来,这个引导和集中是队长的工作内容和职责。

在进行团队讨论时,一定要有文字记录,讨论的后期全程录音了。这个会议文档必须由队长或者是项目进度推动人或者项目全局思考人来担任。

一次讨论整理出的结论,达成的共识要作为下一次讨论的起点,上一次讨论分配出去的任务,要作为下一次讨论的基础和输入。所以,会后的任务需要完成,大家任务的完成情况会很大影响整个项目的质量。

过程中,我既要完成另衣伴App研发,也要扮演队长(项目经理)的角色,明显感觉到了自己的精力不够用,不同工作内容和性质的切换会大大增加精力的损耗。

一线研发兼职不了项目经理,但是一线技术人员可以兼职产品经理的活。我感觉,好的团队有很多种,其中有一种可以是这样的:技术人员都是极客,同时又充当半个产品经理,主动的发挥各自的创造力和主观能动性。

智能推荐穿搭,很大的难点是搭配逻辑的建立和实施,这块难度大,准备前期,队长未能果断坚定的确立并执行以寻找并借助第三方类库为方向,项目完成度被大大折扣了。只有细化的分配任务到队员身上,才是推进项目的前提。如果分配的任务做到细致和明确责任人了,遇到未完成的,为了保证项目进度和质量,队长需要顶上和有效跟进。

队伍里大家对比赛的诉求和出发点会不一致,那么这期间面对同一件事就会有不同程度的发力。理想状态是:大家的出发点和发力程度是相近的。

小结和计划

感谢队伍小伙伴们的努力和付出,我们经历了一个产品从0到1的质变,在半个月内从产品方案到想法最终落地,

文末附上产品另衣伴Android App下载二维码:

参加Hackthon是一种什么样的体验_第3张图片
closet_qr.png

你可能感兴趣的:(参加Hackthon是一种什么样的体验)