学术论文网
基于Android的移动点餐类App的设计与实现
发布日期:2020-09-11 15:51:46

第3章  客户端模块设计

本章主要介绍了本应用的从用户使用流程走的初始化功能模块、登录注册模块、定位以及检索周边商家模块、点餐相关模块和其他零碎模块的设计思路,和实现思路。

3.1  初始化功能

每一个系统或者应用在初始化的时候都要初始化很多数据和一些基本的配置。本应用主要在应用的闪屏页面进行初始化的操作。主要的初始化操作有:

1. 初始化三方SDK配置。

百度地图SDK,友盟SDK各个功能组件都需要在使用之前初始化。否则将无法使用SDK中的功能。

2. 初始化三方框架配置。

三方框架已经是非常集成的了,可以在程序中直接使用,但是每次使用三方框架中的功能的时候都需要配置一次,虽然代码量不大但由于使用次数多,所以冗余代码也不少。本人选择在进入应用的使用把三方框架的一些配置给配置完成,这里主要说的是Picasso的一些图片加载的策略和一些必要的配置。

3. 检查版本更新。

虽然本应用不会有太多的迭代情况,但本人还是选择把版本更新给加入应用中,因为这是一个应用必须有的东西。版本更新功能要依附于一个页面,否则会觉的不符合使用逻辑,所以本人把初始化的操作都放在了应用的闪屏页面。

版本更新思路是通过闪屏页面的Context可以获取到当前应用的版本信息。自己再在Tomcat上放一个简单的JSON(JavaScript Object Notation)表示最新的版本信息和更新的功能,还有一个最新版本的APK(Android Package)文件。比较当前版本信息和Tomcat上JSON中版本信息判断是不是最新的版本,如果是最新的版本就直接进入应用的主页面,如果不是最新版本就从Tomcat上面下载APK文件并安装。

3.2  登录注册逻辑

因为三方登录的接入,登录和注册的逻辑也分为两种。

1. 应用自身的登录注册逻辑。本应用提供了普通注册和手机注册两种注册方式,可以通过需求进行注册,而手机注册的发送验证码功能本人使用了网上提供的三方接口实现的,没有仔细去研究这个功能。

2. 因为三方登录也又一定的局限性(获取不到三方登录中三方登录账号的详细信息,可以用到的就是三方账号的唯一标识openId,和三方账号的昵称nickname)。如图3-1三方登录注册相关逻辑图,其实是以三方授权为基础的自有逻辑的实现。

 

图3-1  三方登录注册逻辑逻辑图

3.3  定位以及检索周边商家

在每次显示主页面的时候,也就是每次主页面的Activity执行onResume方法的时候会自动调用百度地图的定位功能执行一次网络定位,使用网络定位的原因(百度地图主要提供了三种定位模式,分别是GPS定位,网络定位和离线定位。1.GPS定位需要用户开启手机的自身的GPS开关才能使用,虽然有较高的精度,但比较耗电,绝大多数用户的手机是默认不开启GPS模块的,所以使用的时候还要手动开启,体验比较一般。2.离线定位的精确度比较低3.相比较来说网络定位的精确度虽然没有GPS那么高但是随着移动网络的发展也越来越接好,又比GPS省电,也不需要用户再去手动打开某些开关,所以使用网络定位),通过网络定位获取当前的经纬度坐标,因为有可能是获取失败的或者获取的位置有点离谱,所以还提供了手动定位(手动触发定位事件)。

当定位成功的时候,会进行网络请求,请求当前经纬度坐标附近的商铺集合的JSON,解析JSON并展示在Android端页面上。

3.4  点餐相关

点餐相关的模块也是本应用比较重要的模块,UI页面显示也会比较的复杂。因为把菜品进行的分类,比如凉菜、热菜、主食等。

用户点加号添加到一个模拟的购物车中,这个页面也会把购物车中的数据的数量和总金额显示出来,用户选择完成,可以提交订单并确认订单,提交订单后,程序会把本次点菜的信息存储到本地的数据库或者是Android自带的SharePreference(因为保存的数据比较少,再就是不是特别重要的信息,再就是重复利用率不高),以方便结账或者结账完成之后查看。菜单列表用简单的ListView显示就行了。

3.5  其他功能

通过实现定位功能还可以相对应的实现一些小的功能模块,比如说天气预报等。网上有很多天气的接口,个人使用还是有很多免费次数的,只需要把当前的经纬度拼进请求体中即可。再通过返回的JSON来显示当前的天气情况。

实时天气的难点在于如何能更好的给用户带来体验。三方服务器返回的JSON比较杂乱,需要通过解析JSON过程时屏蔽掉一些没用的数据,提取到使用的数据。再分析使用过得数据,通过判断和算法把当前的天气通过图片的形式展现在应用的首页,这样才是最好的用户体验。如图3-2为效果

 

图3-2  天气展示

Copyright © 2008-2020 学术论文网 版权所有 粤ICP备16093775号