Swift实战项目开发今日头条(项目产品说明文档) [复制链接]

2019-11-14 16:43
byebye0521 阅读:951 评论:0 赞:1


产品文档介绍

目录介绍

一、网络封装/项目基础模块

   1-1、项目介绍

   1-2、网络封装和宏文件

   1-3、标签栏创建和item点击缩放动画

二、登陆注册UI

   2-1、动画弹出登陆注册视图

   2-2、注册页面搭建

   2-3、注册页面优化

   2-4、注册登陆切换

   2-5、?#19968;?#23494;码

   2-6、?#19968;?#23494;码和协议

   2-7、一键登陆

   2-8、邮箱登陆

三、设置页面

   3-1、设置页面搭建(上)

   3-2、设置页面搭建(下)

   3-3、设置页面逻辑处理

四、登陆注册信息验证并提交

   4-1、登陆注册信息验证/提示动画

   4-2、注册接口/钥匙串(keychain)存储

   4-3、多种登陆方式/修改密码

五、个人中心

   5-1、个人中心页面搭建

   5-2、个人中心头部视?#35760;?#25442;

   5-3、搭建修改资料页面

   5-4、修改头像/性别

   5-5、修改昵称/个人介绍页面搭建

   5-6、修改昵称/个人介绍信息提交

   5-7、修改生日

   5-8、修改地区

六、首页

   6-1、首页搜索/头部标签布局搭建

   6-2、搭建首页内容滑动视图

   6-3、选中标签居中和内容滑动关联

   6-4、自定义首页不同内容cell

   6-5、首页?#26723;?#20998;类

   6-6、?#26723;?#20998;类显示/动画添加删除

   6-7、?#26723;?#26631;签长按拖拽移动换位

   6-8、自定义刷新/搜索推荐列表

七、首页网络数据获取

   7-1、首页搜索推荐和?#26723;?#20998;类数据

   7-2、首页标签和内容数据获取

   7-3、首页内容数据转换

八、西瓜视频

   8-1、西瓜视频页面搭建

   8-2、西瓜视频数据获取

九、小视频

   9-1、小视频界面及数据

 ?#26165;?#39029;面

 

App整体结构

一、App内部主要分为第三方模块(如获取网络数据,网络图片...),好友页面搭建,不同UI进行封装方面多个页面进行复用显示不同的内容。主要模块如下图




二、主要?#30446;?#28304;框架介绍

   2.1、网络请求框架

       在开发过程中对于使用oc?#30446;?#21457;者来说一定十分熟悉AFNetworking这个框架,因为在我们OC的App中只要是有关于网络请求的部分都会通过这个框架来进行网络请求。而Alamofire?#25302;?#24403;于swift版本的AFNetworking。在swift中我们大部分都会使用Alamofire来进行网络数据处理。使用?#26412;×客?#36807;cocoapods命令来导入这个需要的第三方类库,导入方法如下:

第一步先打开终端输入下面两个命令


cd + 空格+ 项目地址:如/Users/imac/Desktop/text1  + 回车,

vim podfile  +回?#21040;?#20837;编辑器 ,编辑器示例代码如下,红框中的就是我?#20999;?#35201;的网络请求库和数据转换json格式?#30446;?#26550;


上图中“study”可换成自己创建的项目名称,输入字母i开始编辑,编辑完后按退出键(esc)+ 冒号 + wq 保存退出,在输入pod install + 回车,出现如下图内容说明导入成功


再次打开项目多了一个白色工程就是我们要打开的文件,如下图


Alamofire.swift文件主要有两个功能:1. 提供了整个框架的入口。2. 向整个框架提供了方便的数据处理方法。

参考链接:https://ke.qq.com/course/456018?tuin=9cbdbb86

下面我们看一下如何使用Alamofire这个网络通讯模块来封装进行数据请求,一个简单的post和get请求如下:


1、首相导入网络请求框架头文件import + 框架头文件

2、请求方式(get、post)

3、封装方法进行网络请求获取数据

4、block回调请求成功后的?#38382;?/p>

 参考链接:https://ke.qq.com/course/456018?tuin=9cbdbb86

三、其它第三方常用框架

   3.1、图片加载框架:Kingfisher,使用方法如下:



  第一种加载图片方式没有默认图片显示

   第二种加载图片方式加载之前会先显示默认图片,我们在实际开发中看情况进行使用

   3.2、上拉加载和下拉刷新(可自定义/第三方(MJRefresh)),使用方法如下

然后实现对应方法就可以

   3.3、适配(可自定义计算位置/第三方(Snapkit),使用方法相当于oc中的Mastory布局框架)

   3.4、视频播放?#38469;酰?#36825;个有很多,我们可以自定义AVPlayer,?#37096;?#20197;使用以及封装好的BMPlayer或者其它音视频播放控件)

 参考链接:https://ke.qq.com/course/456018?tuin=9cbdbb86

四、项目开发中常用用到?#30446;?#20214;与开发?#38469;?/span>

  4.1、列表显示(tbale/collection)

4.1.1、 cell赋值方法要注意低耦合,高内聚,如可将获取到数据以后就可以将cell赋值操作放到cell中去处理,如下图;

   

第一张图片为传值方法,第二张图片为cell赋值方法

   4.2、拖动手势(UIPanGestureRecognizer)以及根据当?#24052;?#21160;的距离判断复?#25442;?#26159;隐藏当前视图

   4.3、封?#24052;?#32476;请求,获取服务器数据

   4.4、加载网络图片

   4.5、页面控件适配

   4.6、swift类只有一个后缀为.swift的类,oc有两个(.h\.m)

 参考链接:https://ke.qq.com/course/456018?tuin=9cbdbb86

五、开发过程注意事项

5.1、日?#23601;?#19968;打印,测?#28304;?#24320;,上线关闭

5.2、类名命名,类名规范,以及类名注释

5.3、方法名命名,规范以及注释

【领取优惠券】


我来说两句
您需要登录后才可以评论 登录 | 立即注册
facelist
所有评论(0)
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:[email protected]

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )

招财童子彩金
微乐麻将怀疑开挂怎么查 两肖两码中特精准资料 天津快乐十分和值 试机号3d今天试机 琼崖海南麻将下载链接 22选5复式中奖计算器 免费四人麻将大全 新疆35选72019开奖 雪缘园足球即时赔率 美人捕鱼棋牌 手机真人脱麻将3安卓版 北京麻将手机版下载 股票今日大盘 谁有宝博的链接 安徽11选5前三遗漏数据 安徽快三