转载请注明出处:王亟亟的大牛之路
说内容之前运行效果图,毕竟这样是最直观的(不知道为什么白色截图下来就成黄的了)
样例Apk地址:https://github.com/ddwhan0123/SoyiGit/blob/master/Soyi/Soyi.apk
上一篇文章写到了项目中引用到的一些第三方框架,这一篇我们来具体敲我们的业务和实现。
-那一个App常规的有什么?
引导页面,注册,登录,主页面,具体内部业务,设置等等等。我们一步一步做。,这一篇主要说的是登陆注册以及主页面的架构部分的代码和内容。
楼主只是一个Coder不是搞需求的也不是搞商务的,但是我觉得了解用户,了解市场,了解自己所从事的事是干什么的比埋头苦干,当机器人别人怎么说,听别人怎么做更重要,我们要有自己的思想(虽然听别人吩咐一些事项来做更简单)!
登录/注册模块
逻辑部分:
1.帐号,密码等用户信息的录入
1.增加校验用户输入
2.增加短信\邮箱认证功能(待完成)
2.找回密码操作
根据用户帐号栏输入的内容通过短信\邮箱找回密码(待完成)
实现部分:
问题1,如何保存用户信息,何时保存?
答:使用SharedPreferences,或者存SD卡,或者不存(不推荐);注册时存,修改密码/找回密码成功后存。问题2,SharedPreferences,或者存SD卡,或者不存又有什么区别,保存的时候需不需要保存为Json对象?
答:a.SharedPreferences使用简单方便,不需要外部介质(万一SD卡坏了呢)。
b.存SD卡可以存取更多的内容,诸如有可能服务端返回一大堆JSON/XML的内容,你再一个个转进SharedPreferences会比较麻烦。
c.不存是不是每次开启(进程活着)都需要去访问服务端?-答:并不是,可以再第一次进程被开启的时候访问一次,然后在根Activity缓存一个用户信息的属性缓存,只要进程活着之后切来窃取,进进出出都不需要访问,因为你整个程序在运行的过程中可能多次引用这些属性,所以他们也不会被GC掉。(这种方式还是不怎么推荐,还是存吧)
分析:往往很多软件需要认证更多的资料,如真实姓名,身份证等,但是其实一个APP在用户足够信任你之前,用户并不愿意输入这些个人资料,所以这一部分的信息录入,比较推荐从后续的某些功能中让用户来完善。
主页面:
现有实现很多,我使用的是单侧抽屉式的DrawerLayout,理由?
简单,方便,清晰,易用,不占屏。
不占屏是个很重要的用户体验,我给大家贴个丑的,如果一个界面,上面是这样的
下面还有3个安卓物理键,还有一排Tab.那用户还看个球?不瞎了才怪,显得难看又臃肿。
当然,像QQ那样的双侧抽屉等等实现还有很多,看个人喜好了。
OK,这一部分粗略讲到这里,具体的内容可以看源码。
网络请求部分用的是volley,暂时还没有考虑要不要做服务端的内容,所以模拟的是访问百度然后跳转(你懂的)
源码地址:https://github.com/ddwhan0123/SoyiGit
用到的库(新):
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'cn.pedant.sweetalert:library:1.3'
compile 'cn.trinea.android.common:trinea-android-common:4.2.15'
compile 'com.apkfuns.logutils:library:1.0.6'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.ikimuhendis:ldrawer:0.1'