美文网首页
早期开发

早期开发

作者: Cocytus233 | 来源:发表于2019-12-23 22:17 被阅读0次

    实习内容

    独立开发一款健康应用并争取上架

         通过浏览一些应用市场成熟的健康类app,我决定制作一款查询药物类的app,并尝试集成高德地图sdk并实现覆盖物。

    首先,我初步搭建了UI,它的基础框架是建立在一个tabBarController上,且分为了三个item。分别为健康咨询、药店列表和药品查询。其中健康咨询页面和药店列表页面准备使用一个UIScrollView并对其手动定制cell,而药品查询界面则采用一个普通的view构成。这期间,我遇到的问题有:

    1.自定义cell时的自动布局,以及药品查询界面的masonry代码自动布局。关于自动布局的相关问题,我查看了网上小马哥的视频,结合github上给出的相关文档成果解决并达到预期效果,在iPhone4s到iPhone6p的屏幕均能适配成功。

    2.在storyboard上添加item image时无法自动适应按钮尺寸。网上查阅资料后发现这是xCode6.4的一个bug。最后我手动裁剪了icon来适应大小。

    然后便是利用网络上公开的api接口,最后在百度api中找到一个合适我的app且免费的api,最重要的是数据很好解析。利用解析到的数据,优化我的cell布局,添加相应的功能界面。这期间遇到的问题有:

    1.解析数据时,大量实例对象操作十分费时。咨询前辈后利用了xCode的一个插件一件产生实例对象。

    2.当解析出来的对象中包含其他对象时,我开始采用了Objiective-C的一个原生方法处理该类。后来在网上发现一个YYModel的第三方库能够很好的处理这个问题且解析数据的速度与原生的方法速度差不多,便一直使用YYModel来解析从网络获取的数据。

    3.联网时的问题,我一直采用AFNetworking进行的联网操作。但由于xCode版本问题没法使用最新的AFNetworking版本,导致下载安装最新版后出现大量错误且很久找不到原因。后来查阅发现xCode6.4还未支持泛形。

    4.加载到数据后不现实出来。这个问题是根本摸不到头脑,一步一步写的代码,可就是不显示数据。后来在下了几个demo,发现在数据请求完毕后必须回到主线程刷新UI,这一步不能少。

    5.加载数据后显示在单元格时,上下滑动后出现数据大量重复出现在单元格。这是经典的单元格复用问题,虽然我知道问题原因,但解决它还是花了大量的时间,由于Objective-C的复用机制,为了防止大量的cell使得占用大量内存。最后在下拉刷新的同时清空所有数据解决了这个问题。

    接着解决地图定位和实现覆盖物。当用户点击一个药店后,地图上会显示当前用户位置到该药店的最短距离的蓝色线条。由于初次接触地图,都是按照官方文档一步步完成,但期间也遇到一些问题:

    1.坐标的转换。我先利用网络上的百度地图确定我的位置是否定位成功时,发现app得出的坐标与百度给出的坐标始终存在偏差,后来发现,百度使用的熊掌坐标,而高德使用的火星坐标,当都转换为真实坐标后,两者坐标便相同了。

    最后便是一些细节的优化

    1.当手机网络状况发生变化时给出相应的提醒。

    2.优化单元格的复用,由于是自定义的单元格,我便采用按需加载的方式加载数据,极大的节省了内存空间。

    3.采用SDWebImage异步加载图片,防止上下滑动时界面卡死,且可以放一张占位符提示用户这里有图片。

    4.做了登录时的加载图片。

    最后便是上架流程,网络上给出了详细的教程,一步一步的照做,但要注意在提交app icon时要1080的icon且去掉Alpha通道才能通过审核。

    相关文章

      网友评论

          本文标题:早期开发

          本文链接:https://www.haomeiwen.com/subject/rywelttx.html