app开发之账号系统理论篇
很久没有写文章了,家里发生了变故,一段时间里状态不是太好,打了很长一段时间dota,虽然项目也在维护,以及开发新的项目,但是效率跟状态明显跟之前天壤之别。对于现有项目继续维护,新项目也会去做,但是会有意放慢节奏,不会像之前那么轻易,尽量有比较好的方向再去做新项目。
打算抽出一部分精力,来做一些关于app开发的教程,这个还是比较犹豫的,一是水平有限,怕误人子弟,二是英语很差,很多单词都念的不标准,影响教程质量。但最后还是决定去做这样一件事情,就当作自己对开发的经验总结吧,记录下来也是好的。
形式上我是这样打算的,先写文章,感觉基本完善之后,以文章作为基准,来录制视频。内容上分为理论和实践,理论部分把我理解的每个功能模块记录下来,实践部分配合理论完成每一部分编码,从0到1开发一款app,尽量包含app该有的功能,也就是说这个app的是以教学为目的开发,当然最后也是会发布到应用市场。
整个教程所需要的时间周期不确定,因为是一次新的尝试,可能是几个月,也可能是几年,而且我估计中间会经过多次的修改与调整。
今天,我来聊聊app的最基础功能模块-账号系统,我画了一个思维导图。
账号系统分为客户端,服务器2个部分。
客户端主要包括:注册,登录,忘记密码,修改密码,修改个人信息,个人信息详情几大部分。
注册一般采用手机号,邮箱,三方登录等几种方式,国内应用手机号注册比较常见,如果有国外用户注册需求,手机号还需要选择国家代码,国外应用一般采用邮箱登录。三方登录,国内常见有qq,微博,微信等等,国外是谷歌,face book等。
大部分注册页都是只有手机号/邮箱,密码,验证码组成,也有一部分会把基础信息放在注册页。验证码发送会有cd时间,一般为1分钟,避免重复发送,一是发送验证码会有一个延时,二是避免恶意发送以及多次重复发送对服务器造成压力,以及不必要的费用浪费。
注册成功后,最简单的方式是回到登录页,用户登录,也有的会直接进入到登录状态跳转到完善信息。现在有一部分应用在注册成功之后还会引导你进入一些特定流程,比如定向关注,爱好收集,兴趣锁定等等,这些都是为了后边更有针对性的向用户展示内容,从而提高用户粘度。
登录,忘记密码,修改密码所有应用基本都相同。
修改信息/完善信息基本都会包含头像,昵称,性别,出生日期,个性签名,其他的根据每个产品的定位会略有不同。
个人信息页用来展示个人的基础信息,以及社交属性关注,粉丝,私信,剩下的也是针对产品方向,可能有帖子,动态,相册等等。
服务器主要是数据库与服务器逻辑代码。数据库最简单的就是2个表,一个用户表用来记录用户的基础信息字段,包括用户id,昵称,头像,性别,出生日期,个性签名以及其他所需字段,另一个表用来记录社交属性,关注,粉丝,我是用两个用户id,以及相互的状态几个字段来存储的。
当然企业级或者成熟的app肯定不仅仅这几个表,以及这几个字段,这个根据实际需求来做。
服务器逻辑代码包括定义与客户端的协议,以及对数据库的操作。协议根据业务逻辑来制定,注册,登录,修改密码,忘记密码,个人信息,修改个人信息,关注,取消关注等等。每个协议处理相关业务逻辑以及数据存储。
关于验证码,短信验证码需要购买短信包,我用的是阿里云,每条短信几分钱,需要提前申请模版,调用接口发送。
至此一个app的账号系统基本完成。