一个java程序员,手撸app的日记(一)

发布时间 2023-10-04 20:18:15作者: 双间

首先,我是一名多年的java后端程序员,但刚接触此行的时候,还是写过jsp页面的,因为当年不懂,因为jsp页面也是java的一部分,就也闷着头给公司写了起来(只想说,html好写,但css是真的难)。

jsp的编写也就在自己经验不足的年纪,写了不到半年,草草了事,只是学会了ajax和部分js的编写(真觉得js真简单,弱类型,且逻辑不用很复杂就能实现很多功能)。

接下来就换了家公司,公司要求使用前后端分离技术,从那时起,我记得就看了一周左右的vue教学视频,就开始上手编写vue页面和逻辑了,并且后端也是自己写(分给你的功能,前后端都要自己完成),现在回想起来,但是写的vue页面是真的烂,可以说是烂到家了哈哈哈。写完这个前后端项目后,就立刻跳了公司,之后也就没怎么在写过前端了。

经过多年打拼后,最近突然有了个想法,就是给我身边需要的人写一个手机app,因为之前了解过原生的安卓编写,自己也写了一个登录页面(堪称痛苦),没坚持住,就放弃了,这件事应该是3年前的事情了,现在回想起来,原生的安卓确实很难写,需要系统的学习才行。因为科技的发展,各种好用的框架应运而生,我也从中得知了uniapp的大名,但一直没机会学习它,自从有了之前的想法后,就开始着手搜集相关资料,并且得知“若依”体系中也有移动端(公司的项目,大都以若依为基础进行开发),仔细看过若依的移动端手册后,直接将它的项目下载了下来,并且在HBuilder中运行了一下(后端用的是自己从零手撸的springcloud项目,在这里不过多阐述)。

拿到若依的app项目,简单的看了下目录结构,再结合他们手册中写的相关接口、说明和注意事项后,发现整体的结构和vue差不多(自认为是大同小异的东西,毕竟是依托于vue的),太适合我这个之前写过vue项目的人了,感叹现在的技术比起过去,在开发层面,真是方便了不少(主要是学习成本减少了),自此,开始了我的app开发之旅!

其实无论是什么样的技术,在刚开始接触时,都有很多问题等着你,首先面临的是前后端接口连接的问题,因为若依的app已经做好了相应的对接request配置,但是当你去连接自己的服务器时,还是会遇到问题,比如传值问题,但对于现在的我来说,还是小问题,调试几次就成功解决了,其实想在想来,问题并不是传值的问题,而是一个全新框架的整体规则问题,uniapp给你定义的传值规则,获取数据规则,展示规则,都将是未来一个个的问题。

我的一期工作的其中一个功能是,在app上设计一个填写歌曲名称,并且备注该歌曲是都使用原调,如果不是,将修改后的内容填写到备注中,并且上传一张图片即可,之后会在另一个主页展示所有的歌曲信息,也包括上传后的那张图片。

现在回想下我的工作经历,上传和下载图片文件,都是一个头疼的问题,无论是前端还是后端,当然app也不例外,从前端页面的设计和布局开始,这个上传图片的部分就一直让我很头疼,虽然框架的平台上都提供了相应的组件,但是等到你真正去用的时候,才会发现,你读文档,理解文档里的内容,也是很耗时的一件事,当你把用例复制到你的项目中后,本以为很简单就能呈现出想要的结果,但它偏偏各种错误,样式也很难调整(我的css是最薄弱的),经过各种折腾熬夜后,终于把样式布局搞定了,但又面临着前端传送图片到后端的问题(这才是重中之重)。

我在做上传时,遇到的问题,让我都摸不着头脑,而且文档中也是一言就过,并不会详细的解释它的用法,只能再去找各种各样的博客。我在其中遇到的问题是,明明将图片选中了,并且页面上也有了相应的缩略图,但始终无法将流传给后端(不知道耗了我多少时间),最后才发现,若依提供的请求头的认证key用的是Authorized,而我后端自己定义的是authentication,自己把自己搞成了冤大头,还一度认为uniapp的组件有问题。

上传是搞定了,但是紧着这就会遇到另一个问题:回显,我想各位写过uniapp的,应该都知道,图片的回显是无法使用本地路径的,如果使用,则需要加require,但是这个是给静态文件用的,如果你想动态展示图片,那么不好意思,它永远会给你报一个moudel not find,也就是说,你只能在require()里面写一个路径字符串,但不能使用路径变量,啊!!!真是头大啊,就因为这个问题,我搞了一下午都没解决,上网一看, 原来require貌似是不能变量的(也搜过其它办法,比如style中加background:url(),但还是不行),而且uniapp也不能使用本地路径,那么到头来,只有两条路可走了,其中一条是,将所有的图片通过后端的逻辑,把图片复制到用户手机app的static文件中,每次访问,都访问自己手机的static文件路径就可以了(没有试过,只是自己的一个解决方案,感觉能行,但很消耗用户的内存),另一个就是建立或者租用文件服务器,将图片等文件放到文件服务器中,然后再返回相应的http文件路径就可以了。当然,可想而知,我接下来就要自己部署一个属于自己的文件服务器了,那么废话不多说,开撸吧~!