【Wifi签到APP】大学生的一次完整的中小型项目的编码经历

效果图

    

  

经历

大一的时候报的一个院级课题,做课题一般得自学。大一时其实大家因为知识范围原因都不知道怎么做,包括在讨论APP的设计想法时往往说的也比较泛,或者存在眼高手低的情况。基本上很长时间,大家都停留在自学和摸索的迷茫过程。

我自己自费买了个差不多500块的课程(关于开发即时通讯的APP),其实我买课程也不完全是为了项目,毕竟我也想学习到不一样的东西。虽然在寒假大概把这个课程学了一遍,虽然中间遇到不少麻烦,但还是跟着视频把视频中的项目做了一遍。我并不安利大家。但说实话,我认为这个课程对代码的设计和封装真的太强了,新式的MVP的编码模式(各种接口设计和监听回调)也让我大开眼界。所以说对我来说这个课程是比较难的,啃一遍不足以吃透。

问题是学完这个网课,我该如何做我们课题的APP呢?如果按照网课中采用MVP的编码方式,显然我的水平不够,同时队友肯定也没接触过。其实这个时候,我们组对我们自己APP的设计和模样还不是很清晰的。直至好像是今年的3月底吧(如果没记错),我们开了个语音会议。这次负责客户端的组员提出了一个简洁却又符合我们项目课题的想法。同时他的想法也跟我之前的想法有一点契合。这是一个转折点。

课题是基于Wifi的签到APP,我们的简单想法是。用户发起签到时需要选择一个群,那么该群内的所有成员需要在指定时间内出席这次签到,但是要想出席成功,必须要跟发起人处于同一Wifi下。关于这个判定如何实现,我并不负责,因为这是负责客户端的组员去做的。我要做的是,负责服务端的接口开发,并做APP服务端的部署。

其实说来也巧。上学期刚学完Linux,这学期要学Android。这或许对我们来说也是一种帮助。2月底,学校布置了这学期的Java初级软件实作。这学期课程的确多,而且我相信像PHP和Android这两门课肯定得布置期末作品,而做一个期末作品肯定是需要花费比考试更大的精力和时间,甚至遇到更多麻烦。所以2月底3月份,我基本都在忙着做这个软件实作。做完后不久,也就是3月底,我们组开了那次语音会议。之后,我也在忙着做APP的服务端。

语音会议上基本确定了APP的基本功能。之后,我们前后端也没太多交流。服务端方面大概用到的接口都考虑了一遍,客户端先做着界面的样子和交互先。服务端的编码,我大概忙了大半个月吧。基本完成时好像已经是4月20号左右了。当时距离结题已经很近了。接下来,我就是跟负责客户端的同学进行沟通对接了,我并不负责他们那部分的工作,顶多是在APP请求服务端接口方面跟他们交流。成品出来了,我觉得客户端界面还行,主要功能完成了,但不是很精致。只能说总体上基本上满足要求。

由于客户端方面的我并未参与,同时刚好这学期有Android课程,所以我打算利用项目的服务端,再做个更好的Android客户端,作为期末作品。前面也提到了,期末可能各种大作业,所以我很早就开始了这项工作。在4月底到5月20多号,这段时间我的主要重心都在这上面。做完后,在叫同学帮忙测试之后,有必要写一篇博客记录一下,即使还有一堆作业被我拖着(我吐了,,,(ง •_•)ง)。。

客户端介绍

截图已经贴了,我来说一些不一样的亮点。比我之前组员做的客户端体验更好一点。

这个客户端的编码我没有采用网课学习到的MVP模式(主要是没学到家,没啃透)。对于这个项目的客户端,随缘编码加上自己做些简单的封装应该也能做。但后期我发现了,这样代码有些许冗余,APP再复杂一点后期就真的很难受了。

亮点:

1、界面简洁,但不失精致

比如说:按钮的点击效果,item的点击效果,主页顶部状态栏的浸入式效果,注册页面弹出的BottonSheetDialog,还有些地方加了些许动画效果。虽然不算的是Material Design,但绝对可以说的上精致!

2、功能上更注重细节

比如说,注册页面会监听你输入手机号的每个字符,只有输入正确格式的手机号才允许点击发送验证码。

还有个人搜索记录界面,这个从界面到功能实现,我花了将近一天的时间。

更一个亮点是,对于数据显示的更新,我并不是刷新整个界面来实现,而是通过数据监听回调的方式实现动态的局部更新。不如说,你修改了个人信息的头像,在返回主界面后,会同步更新主界面左上角的小头像(当然还有很多其他类似的地方)

3、不同Android版本的适配问题

APP主要功能的核心是出席的判断,需要获取当前设备所连Wifi的bssid。但是在某些高版本的Android手机,需要开启定位服务。这个我也在网上找资料做了适配和测试。还有就是Android10上遇到无法裁剪图片的问题,也是由于版本问题导致的,这个问题也基本上结局了。

4、非必要功能的拓展

在选择照片时,又相册和拍摄两种方式,我特地增加了图片裁剪的功能(第三方开源框架)。同时我增加了对于主界面顶部Header的背景设置。

成品

涉及到项目技术栈、代码设计方面,我也不去多OB了。尽管这是个中小型项目,但是要边摸索边去做,还是会遇到很多麻烦和问题的。

APK

链接: https://pan.baidu.com/s/1RcJ_ttDdcI1ql9CyUqO6FQ  提取码: sc2k 

Github

客户端的编码,我有一直在Github上提交。过一段时间,我修改并整理后,把服务端和客户端的代码都整理到Github,再贴出来。

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读