App项目实战之路(一):概述篇

原创文章,转载请注明:转载自Keegan小钢

并标明原文链接:http://keeganlee.me/post/practice/20160807

微信订阅号:keeganlee_me

写于2016-08-07


App项目实战之路(一):概述篇

App项目实战之路(二):API篇

App项目实战之路(三):原型篇

App项目实战之路(四):UI篇


我计划做一款App产品,包括Android和iOS,做完打算将Android和iOS客户端的代码开源,并将上架到应用宝和AppStore,之后还会不断迭代。而在做这款产品的过程中,我会尽量将一些相关的思考、决策、心得总结等整理成文分享出来。这个周期将会比较长,因此,文章我将以连载的方式发布。

项目简介

产品定位为垂直于程序猿的社交App。前期的社交性会偏弱,功能上会有点类似于微博。但我打算将发布内容分为两类:问答分享问答类似于StackOverflow的技术问答,程序猿可以发布技术问题,其他程序猿可以提供解答。分享则可以发布程序猿平时的生活趣事、学习笔记和技术文章等。用户关系则打算采用和微博一样的单向关注关系。另外,对每个用户会增加技术栈标签的设置。程序猿可以查看到与自己同技术栈的其他程序猿发布的内容,即使没有关注关系。

整个项目会涉及到原型设计、UI设计、API设计、移动端开发、服务端开发、服务器选型、应用上架,我打算全部自己一个人搞定,至少坚持到完成第一版的上架之后,才再考虑是否邀请其他人加入一起搞。

原型设计我采用墨刀,一款在线的原型设计平台,上手非常简单。网站还提供了视频讲解的新手教程,非常方便。

UI设计我打算采用Sketch,一款专为UI设计而生的工具。据闻可以智能标记字体大小、颜色、间距等。也自带了非常方便的切片工具,可以轻松将一个图标导出为适配Android和iOS的各种尺寸。不过,目前还没上手。另外,目前也正在学习色彩搭配相关的设计知识。

API我打算采用RESTFul架构,分别用POST、PUT、GET、DELETE方法对资源做CURD操作。使用RESTFul的难点在于如何定义好各种资源的表述,即URI的定义。

移动端开发则打算第一版只用原生实现,可能Android和iOS同步开发,即开发完Android的一个页面后,就开发iOS的同个页面。另外,iOS开发打算用Swift,尽量不用OC。

服务端开发打算用Spring Boot,数据库可能选用MongoDB。

服务器选型则还没想好,但应该也是在AWS和阿里云之间选一个。

应用上架,iOS上App Store是必须的了;而Android目前只考虑应用宝,其他市场上不上,到时再决定,这个可以不急。

功能需求整理

App第一版的功能需求,我想最简化,只实现核心功能必需的,其他功能,能不要就不要。最初时,我整理出的功能需求如下:

  1. 手机号 + 短信验证码注册
  2. 手机号 + 短信验证码登录
  3. 微信登录
  4. 上传图片
  5. 修改头像
  6. 修改昵称
  7. 设置用户技术栈标签
  8. 获取同栈之猿的内容列表
  9. 获取关注之猿的内容列表
  10. 获取同栈的用户列表(未有关注之猿时获取)
  11. 发布问题
  12. 发布分享
  13. 关注某条内容
  14. 取消关注内容
  15. 获取内容的评论列表
  16. 添加评论
  17. 回复评论
  18. 点赞评论
  19. 关注某用户
  20. 取消关注某用户
  21. 获取某人详细资料
  22. 获取某人的发布内容
  23. 获取某人关注的人
  24. 获取某人的粉丝列表
  25. 获取我的消息
  26. 提交意见反馈
  27. 退出登录

首先,注册登录我并没有使用密码的方式,而只使用短信验证码。主要是因为登录密码会引发一些麻烦的问题,比如如何安全传输?如何安全保存?2011年的CSDN、天涯、世纪佳缘等网站的“密码外泄门”,和2014年的携程“泄密门”,都证明了直接保存私密信息是不安全的。因此,我干脆不使用登录密码了。而且,因为没有登录密码了,相应的也不需要提供修改密码和重置密码的功能了。

接着,再考虑手机号 + 短信验证码的注册登录方式,其实也有问题:明显依赖于短信平台的稳定性和及时到达率。虽然有些平台提供了免费的短信验证码服务,但这些平台基本存在不稳定的情况,经常会出现收不到短信或隔很久才收到短信的情况。而稳定快速的短信平台都是按条数收费的,这成本有点高。那么,干脆点,取消手机号注册登录的方式算了,只要有微信登录就够了。

另外,因为微信登录后就可以获得用户的头像和昵称了,那么,其实,修改头像和修改昵称的功能其实也可以不需要了。

那么,最后整理的功能需求可以如下:

  1. 微信登录
  2. 设置用户技术栈标签
  3. 获取同栈之猿的内容列表
  4. 获取关注之猿的内容列表
  5. 获取同栈的用户列表(未有关注之猿时获取)
  6. 发布问题
  7. 发布分享
  8. 关注某条内容
  9. 取消关注内容
  10. 获取内容的评论列表
  11. 添加评论
  12. 回复评论
  13. 点赞评论
  14. 关注某用户
  15. 取消关注某用户
  16. 获取某人详细资料
  17. 获取某人的发布内容
  18. 获取某人关注的人
  19. 获取某人的粉丝列表
  20. 获取我的消息
  21. 提交意见反馈
  22. 退出登录

写在最后

目前的进度就是完成了原型设计,并整理好了功能需求。对了,还有设计好了App Logo。接下来要做的就是根据功能需求设计REST API。


扫描以下二维码即可关注订阅号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值