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

来源:互联网 发布:淘宝旗舰店是正品么 编辑:程序博客网 时间:2024/04/27 15:41

转载自Keegan小钢
原文链接:http://keeganlee.me/post/practice/20160807

App项目实战之路(一):概述篇
App项目实战之路(二):API篇
App项目实战之路(三):原型篇
App项目实战之路(四):UI篇
App项目实战之路(五):服务端篇
App项目实战之路(六):数据库篇

我计划做一款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第一版的功能需求,我想最简化,只实现核心功能必需的,其他功能,能不要就不要。最初时,我整理出的功能需求如下:

手机号 + 短信验证码注册
手机号 + 短信验证码登录
微信登录
上传图片
修改头像
修改昵称
设置用户技术栈标签
获取同栈之猿的内容列表
获取关注之猿的内容列表
获取同栈的用户列表(未有关注之猿时获取)
发布问题
发布分享
关注某条内容
取消关注内容
获取内容的评论列表
添加评论
回复评论
点赞评论
关注某用户
取消关注某用户
获取某人详细资料
获取某人的发布内容
获取某人关注的人
获取某人的粉丝列表
获取我的消息
提交意见反馈
退出登录
首先,注册登录我并没有使用密码的方式,而只使用短信验证码。主要是因为登录密码会引发一些麻烦的问题,比如如何安全传输?如何安全保存?2011年的CSDN、天涯、世纪佳缘等网站的“密码外泄门”,和2014年的携程“泄密门”,都证明了直接保存私密信息是不安全的。因此,我干脆不使用登录密码了。而且,因为没有登录密码了,相应的也不需要提供修改密码和重置密码的功能了。

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

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

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

微信登录
设置用户技术栈标签
获取同栈之猿的内容列表
获取关注之猿的内容列表
获取同栈的用户列表(未有关注之猿时获取)
发布问题
发布分享
关注某条内容
取消关注内容
获取内容的评论列表
添加评论
回复评论
点赞评论
关注某用户
取消关注某用户
获取某人详细资料
获取某人的发布内容
获取某人关注的人
获取某人的粉丝列表
获取我的消息
提交意见反馈
退出登录
写在最后

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

1 0
原创粉丝点击