iOS仿喜马拉雅FM做的毕业设计及总结(含新手福利源码)
Posted 小敏的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS仿喜马拉雅FM做的毕业设计及总结(含新手福利源码)相关的知识,希望对你有一定的参考价值。
其实仿喜马拉雅FM很早就开始了,从我刚接触ios开始,就开始仿做了一部分,眼尖的人都从我的github找到了那个项目。随着找到实习iOS工作,仿写就落下了,但唯一的收获就是给过去打了一个响亮的耳光,因为刚入门没注意一些变量的命名,看着以前的view1,view2,button1,button2有一股想哭的冲动。
项目的缺陷很多,除了命名垃圾之外,还有项目框架的搭建也很垃圾,项目目录结构还算清晰,但在 Finder 中的目录结构就惨不忍睹了。如果不习惯的可以使用synx使工程目录和Finder目录同步。附上简友教程,在这里也推荐一篇阿里kuailejim写的文章:iOS移动端架构的那些事。
简单说一下界面(其实这个项目在当时我看来提高了对iOS的理解,自定义视图练练手也不错),先附上学习iOS前项目地址,可以查看实现它的commits。注意事项:前项目是用CocoaPods管理第三方的,所以不能运行的情况下记得update pods.
首页
发现 – 首界面 – 推荐
这个界面主要使用了第三方框架WMPageController,最主要的是使用了MVVM的设计模式,具体请下载源码参考。
发现 – 首界面 – 分类
这个界面在源码中是自定义cell(内部button), 反正比我现在想的复杂多了,当时还要计算划分。实习久了,知识巩固牢了,让我现在做的话应该是cell套collectionView。
发现 – 首界面 – 榜单
榜单跳转
这个页面没什么特别的,无非就是自定义cell,但对比之前做的多了跳转,跳转的时候注意的地方就是还要根据各个榜单的分类进行相应的跳转。
首界面跳转分类页面
首界面分类跳转 – 子分类界面
这个界面使用了WMPageController来实现复用。
主播页
主播页
这个也是使用了自定义cell,三个按钮回调cell的代理事件,而进行Controller跳转主播详情页。还有就是复用了tableViewCell的分组头(viewForHeaderInSection)。对比之前学习版本加了一个主播本地关注的功能。使用的是plist文件存储,但服务器是有字段保存关注的,所以不能让关注按钮根据服务器给的字段value改变selected状态。
主播 – 主播详情页
这个界面就没什么特别了,就是自定义了一个主播顶部头视图topView(xib)作为tableView的子视图。
[self.tableView addSubview:_topView];
self.tableView.contentInset = UIEdgeInsetsMake(300,0,0,0);
个人中心页
我的 – 登录界面
这个界面用了别人的素材,超萌的一个登录框。登录界面的数据是在Class-我-Controller-UserAccount.plist文件中。如果还不清楚先使用账号:admin ;密码:admin
我的 – 个人中心页
功能没做什么,最主要的是下载的声音和关注的主播这两个功能(都是通过本地plist文件存储信息)。让我印象深刻的是为了做好它我在答辩前一天熬夜把下载后本地存储并本地播放这个功能完善了,但第二天老师竟然没给我展示这个模块,有种受打击的感觉。但想想大学四年能认可你的人太少了,毕竟未来的舞台并不在大学里面。
写在后面的话
大学随着这个毕业设计的完成以及答辩就画上了圆满的句号。大学的时光总是很短暂,四年的时间飞逝,程序猿唯一告别单身的机会即将结束,实习期也体验到了外面社会的残酷与现实,正好赶上了iOS和android移动端的末班车,工作异常的难找。因为回学校办理毕业等繁杂手续不得不辞去上一份iOS实习生的工作。回学校也没有停下学习,一直在紧跟iOS大牛群中群友的脚步,学习了RunTime入门,Swift语言,甚至开始想了解前端后端的实现。心中早已有计划就不怕路远,但路漫漫其修远兮,总还是需要吃饭的。
在此也顺便求份工作,朋友们有工作介绍的可以推我过去。我在广州,iOS开发也有2年左右的经验,工作经验如果算上加班时间,满打满算一年多了。工作中的项目多为外包,所以我手上的项目也很多,也做过前公司自己的上线项目。实习阶段最大的收获是团队开发和xib的快速开发,当然还有就是命名规范化!
注意事项:此源码仅适合新手,查看源码过程中出现头晕目眩,心中有想骂人的冲动等不适情况,请将源码放入废纸篓并清空。
源码:https://github.com/HansRove/XiMaLY
以上是关于iOS仿喜马拉雅FM做的毕业设计及总结(含新手福利源码)的主要内容,如果未能解决你的问题,请参考以下文章