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做的毕业设计及总结(含新手福利源码)的更多相关文章
- (https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航
(https专业版)2018年1月5日高仿互站仿友价T5虚拟交易+实物交易商城-站长交易源码送手机版程序10套模版+首页微信登陆+头部下拉导航 首页支持微信登陆,只有第8套模板支持(endv模板),后 ...
- iOS涂色涂鸦效果、Swift仿喜马拉雅FM、抽屉转场动画、拖拽头像、标签选择器等源码
iOS精选源码 LeeTagView 标签选择控件 为您的用户显示界面添加美观的加载视图 Swift4: 可拖动头像,增加物理属性 Swift版抽屉效果,自定义转场动画管理器 Swift 仿写喜马拉雅 ...
- android指纹识别、拼图游戏、仿MIUI长截屏、bilibili最美创意等源码
Android精选源码 一个动画效果的播放控件,播放,暂停,停止之间的动画 用 RxJava 实现 Android 指纹识别代码 Android仿滴滴打车(滴滴UI)源码 Android高仿哔哩哔哩动 ...
- 基于vue与vux做的可滑动tab组件(附源码)
背景 前不久,刚完成了一个商品列表+购物车功能的页面,因为一级商品分类在顶部tab中显示,可滑动,间距可定制,如下图所示: 定制的tab需求如下: 1. 每个tab-item的间距是相同的,可定制 2 ...
- 结合别人的文章,做RocketMQ的一点原理分析,结合源码(尽量)----未完待续
Broker 与Namesrv的关系 1.从namesrv获取配置信息 /** * BrokerConfig类 * * broker每隔30秒(此时间无法更改)向所有nameserver发送心跳,心跳 ...
- 仿天猫淘宝的ShopNC好商城原生Android 客户端源码项目
开发环境:Android Studio 2.0 | Gradle 2.0.0最后更新:2016-04-28 简介:基于好商城V4的Android客户端 目前已完成的功能(概述): 1.启动页 -> ...
- [HMLY]5.模仿喜马拉雅 FM
项目介绍: 文:HansRove(github)XiMaLaYa-by-HansRove- 仿做喜马拉雅, 对AVFoundation框架的一次尝试 软件环境: iOS9.1硬件环境: Mac O ...
- 仿微信的IM聊天时间显示格式(含iOS/Android/Web实现)[图文+源码]
本文为原创分享,转载请注明出处. 1.引言 即时通讯IM应用中的聊天消息时间显示是个再常见不过的需求,现在都讲究用户体验,所以时间显示再也不能像传统软件一样简单粗地暴显示成“年/月/日 时:分:秒”这 ...
- ios源码-ios游戏源码-ios源码下载
游戏源码 一款休闲类的音乐小游戏源码 该源码实现了一款休闲类的音乐小游戏源码,该游戏的源码很简单,而且游戏的玩法也很容易学会,只要我们点击视图中的grid,就可以 人气:2943运行环境:/Xco ...
随机推荐
- Python 基础 文件操作
字符串与字节之间的转换 # utf-8 一个汉字 占三个字节 # gbk 一个汉字 占两个字节 # 字符串转换成字节 print(bytes('汉字', encoding='utf-8'))print ...
- 02:计算(a+b)*c的值
总时间限制: 1000ms 内存限制: 65536kB 描述 给定3个整数a.b.c,计算表达式(a+b)*c的值. 输入 输入仅一行,包括三个整数a.b.c, 数与数之间以一个空格分开.(-10 ...
- Unable to find the ncurses libraries or the required header files解决
问题: 解决方法: sudo apt-get install ncurses-dev 参考:Unable to find the ncurses libraries or the required h ...
- /proc/sys/net/ipv4/ip_forward
ip地址分公有地址和私有地址,public address是由INIC(internet network information center)负责,这些ip地址分配给注册并向INIC提出申请的组织机 ...
- IOS网络编程:HTTP
IOS网络编程:HTTP HTTP定义了一种在服务器和客户端之间传递数据的途径. URL定义了一种唯一标示资源在网络中位置的途径. REQUESTS 和 RESPONSES: 客户端先建立一个TCP连 ...
- nosql数据库选型
http://blogread.cn/it/article/6654 今天在书店里翻完了一遍<七天七数据库>.这本书简单介绍了postgreSQL,riak,mongodb,HBase,r ...
- XE5 Android 开发数据访问server端
http://www.cnblogs.com/key-ok/p/3326064.html http://www.cnblogs.com/key-ok/p/3326055.html http://www ...
- Qt for Mac:发布程序(widgets和quick2)
当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴 可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行. 比较幸运的是,Qt ...
- c#:类 相关练习;
1. 2. int i = a.Length;//获取字符串的长度 a = a.ToLower();//将字符串中的大写英文字符转化为小写 a = a.ToUpper();//将字符串中的小写 ...
- 【Linux】鸟哥的Linux私房菜基础学习篇整理(三)
1. gzip [-cdtv#] filename:压缩.参数:-c:将压缩的数据输出到屏幕上,可通过数据重定向进行处理:-d:解压缩的参数:-t:可以用来检验一个压缩文件的一致性,查看文件有无错误: ...