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 ...
随机推荐
- css去除webkit内核的默认样式
做移动端的朋友应该知道,iphone的默认按钮是个很恶心的圆角,select下拉框也有默认样式无法修改. 这时候可以用到 -webkit-appearance:none //去除默认样 在按钮和sel ...
- Javascript 访问网页弹出qq
先在网页的正文结束位置 加上引用代码 代码如下 <SCRIPT type="text/javascript" src="/QQ.js"></S ...
- cloudera目录位置
http://www.aboutyun.com/thread-9189-1-1.html 这里来的嘿嘿. 1. 相关目录/var/log/cloudera-scm-installer : 安装日志目录 ...
- NSEnumerator用法小结
NSEnumerator 3)枚举 (NSEnumerator)遍历数组每个索引处的对象,你可以编写一个0到[array count]的循环,而NSEnumerator用来描述这种集合迭代运算的方 ...
- [POJ 1742] Coins 【DP】
题目链接:POJ - 1742 题目大意 现有 n 种不同的硬币,每种的面值为 Vi ,数量为 Ni ,问使用这些硬币共能凑出 [1,m] 范围内的多少种面值. 题目分析 使用一种 O(nm) 的 D ...
- Oracle开始从Java运行时中移除JAR包
早在2012年8月,在Java平台首席架构师Mark Reinhold宣布模块化项目Jigsaw之后不久,JEP 162这一题为“准备模块化”的提案就指出,在Jigsaw项目中为模块化系统开发的代码不 ...
- 【Java】怎么回答java垃圾回收机制
(1) GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象 ...
- LINUX下安装ORACLE,完全搞定
参考文档: http://www.tuicool.com/articles/eE3mmy http://blog.chinaunix.net/uid-11209572-id-3599052.html
- java.lang.String.indexOf()用法
java.lang.String.indexOf(char ch) 方法返回字符ch在指定字符串中第一次出现的下标索引位置 如果字符ch在指定的字符串中找不到,则返回-1 示例: import jav ...
- 通过PHP连接MYSQL数据库 创建数据库 创建表
通过PHP连接MYSQL数据库 $conn = mysql_connect("localhost","root","password") ...