原创文章,转载请注明:转载自Keegan小钢数据库
并标明原文连接:http://keeganlee.me/post/practice/20160807安全
微信订阅号:keeganlee_me服务器
写于2016-08-07微信
App项目实战之路(四):UI篇post
我计划作一款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。
扫描如下二维码便可关注订阅号。