UI 
主框架 
1.利用UIScrollView+自定义UITbaleViewCell+UICollectionView进行主界面框架的搭建。 
2.创建UINavigationController基类,各功能模块导航控制器继承基类实现特有功能,在基类中对样式做统一更改,优化代码结构。 
3.主架构采用UITabBarController+多UINavigationController的复合结构设计。 
4.UITabBarController + UINavigationController 的主架构设计,摒弃抽屉效果提升用户体验、个性化的下拉刷新以及 UITableHeaderView,个性化的首页UITableView 
5.使用多StoryBorad模式(故事版对应模块)进行整体架构设计,在方便后期屏幕适配同时有利团队并行分散开发 
6.自定义tabbar控制器做UIWindow的根控制器,每个子模块的控制器为导航控制器 
7.主控制器是自定义 TabBar ,实现不同页面之间的切换。主要结构是产品搜索展示和我的功能 
8.利用Storyboard+Autolayout、xib实现界面的快速开发 
9.引入了AFNetWorking,SDWebImage,iOS-Slide-Menu等框架

新特性 
1.使用UICollectionView实现新特性界面,利用3个Cell进行复用可实现N多张图片的展示,进行图片循环轮播

分类筛选

标签栏 
1.自定义TabBar添加到系统控件,使用自定义UIButton巧妙的添加TabBar中的编辑模板按钮。 
2.在栏目板块通过两个tableViewController实现数据互联

列表展示 
1.使⽤UITableView,UICollectionView组合实现商品分类展⽰,使用户能有更好购物体验 
2.使用Xib封装⾃定义TableViewCell、CollectionViewCell,更好的展示单个记录 
3.使⽤UITableView与⾃定义的UITableViewCell展示装修公司的简单信息 
4.使用UICollectionView及自定义cell展⽰装修案例的一些效果图⽚ 
5.自定义UITableViewCell显示文章标题与简介,使用SDWebImage开源框架对图片进行缓存; 
6.封装了cell的Frame模型,使设置cell的Frame更加方便。 
7.利用赋值和计算布局分离、核心绘图异步绘制cell、快速滑动图片过滤等对tableview列表进行性能调优 http://www.cocoachina.com/ios/20150602/11968.html 
8.利用UICollectionView实现音乐播放界面的流水布局效果 
9.主页面由tableView展示,自定义两种cell,分别用来加载有图和无图帖子 
10.UITableview的自动布局处理(与Container View的结合) 
11.在自定义的UICollectionCell中显示旅游的图片和文字数据 
12.用UIScorllView实现频道的选择栏视图、label的变化 
13.自定义UIScrollview实现各频道的切换 
14.根据获取的数据来自定义不同的UICollectionviewcell,如单图、多图、大图的新闻 
15.直播间用户发表言论自定义UITableviewcell,根据文本内容动态计算每个cell的frame

自定义行高 
1.自定义Cell,由于无法获取微博中图片的高度,首先利用SDWebImage讲图面下载下来,在使用cell的时候根据图片的张数,对图片进行排版,使用约束来控制cell的高度,计算返回行高。 
2.利用NSCache来缓存行高,来对tableView进行优化。http://pizi.me/66

刷新控件 
1.使用第三方框架MJRefresh用Scrollview代理监听滚动视图的contentoffset,使用UIView的Block动画改变UITableview的contentInset实现数据上拉加载,下拉刷新效果; 
2.自定义刷新控件,用KVO来监听UIRefreshControl的view的frame来实现响应的动画

瀑布流 
1.使用UICollectionView的自定义布局,并自定义UICollectionViewCell以及Cell的自适应高度,完成美食列表展示的瀑布流效果,显示美食图库; 
2.自定义UICollectionViewCell,采用流水布局实现Cell的九宫格展示;

轮播图 
自定义UIScrollView配合UIPagecontrol监听完成分页功能,使用NSTimer实现图片轮播效果;

抽屉效果 
1.利用View的移动和拖拽事件(pan拖拽,tap点击)实现抽屉效果进行侧滑菜单的开发。 
2.侧滑效果展示主界面以及自定义TabBar。 
3.自定义抽屉效果的TarBar控制器,使用块动画、手势效果优化UI效果; 
4.左右侧滑菜单里分别显示栏目板块和用户详情,可以通过手势切换,也可以通过按钮点击切换

提示窗 
1.利用MBProgressHUD框架封装的UIAlertView完成加载过程中等待响应的蒙板效果。 
2.使用SVProgressHUD来创建登录或者下载等操作时候的提醒框;

画中画 
弹出菜单使用 UIPresentationController 实现弹出遮盖,自定义CATrasition转场动画实现弹出、消失动作。

图片浏览器 
通过UICollectionView和转场动画实现图片浏览器。

网页展示 
1.使用UIWebView控件加载从服务器中获得的新闻数据对新闻详情页进行展示。 
2.使用WebView调用JS语句实现对网页内容字号大小的调整 
3.使用WebView加载html新闻内容,采用oc&js互调放大展示图片/打开相机/打开系统相册等

事件监听 
1.使用hitTest和pointInside监听不规则控件的事件响应,实现点击人体不同部位选择对应病理分类的功能。

轨迹跟踪 
1.通过UIEvent的事件监听实现对触摸事件的轨迹跟踪,实现涂鸦功能/实现栏目控件的拖动效果 
2.使用手势识别功能添加特殊手势,双指滑动放大缩小文本内容 
3.使用UIGesturRecognizer手势识别,实现文件回收站效果,拖拽文件到回收站并删除指定文件

多控制器管理 
1.使用modal(模态)窗口的形式管理视图,展示状态编辑界面,收集用户输入信息 
2.使用自定义转场动画实现多控制器之间的跳转功能 
3.自定义转场modal出视图控制器

布局 
1.使⽤AutoLayout实现布局控件,设置自定义中cell的控件之间的位置 
2.使⽤AutoLayout布局设置,适配iOS6〜iOS8,以及常⽤用⼯具类和宏的封装等。 
3.使用Masonry以代码形式实现全局控件自动布局 
4.使用FFAutoLayout进行自动布局

动画效果 
1.使用核心动画CABasicAnimation设置转盘transform的rotation属性实现幸运转盘功能 
2.使用CoreAnimation核心动画制作华丽的翻页效果,保证效率的同时提高了用户体验; 
3.利用KVO监听界面位置的变化,实现顶部导航栏的淡入淡出效果 
4.利用动画来实现抽奖活动转盘抽奖 
5.使用UIImageView实现开奖帧动画,并对内存进行优化 
进度条:使用KVO监听下载进度属性,自定义View重写drawRect方法,setNeedsDisplay实时重绘 
雪花效果(刷帧动画):使用CADisplayLink刷帧实时重绘,重写drawRect方法渲染UIImage 
时钟动画: 对视图添加CALayer,并调整指针视图锚点,使用定时器CADisplayLink并匹配当前时间设置指针视图的transform转动完成时钟动画 
心跳动画:使用CABasicAnimation基础动画设置红心视图的layer的transform.scale,实现心跳效果 
图片抖动:使用CAKeyframeAnimation关键帧动画切换layer的transform.rotation属性,实现图片抖动效果 
翻页动画:为UIImageView添加手势识别,监听事件重新赋值数据并执行CATrasition动画实现翻页/淡入淡出/Push/水滴/立方体翻转效果

全景展示 
监听视图的UITouch事件,根据touchMoved方法取得偏移量关联沙盒角度图片实现车辆的360度全景展示 
http://code4app.com/ios/360-Degrees-Image-Sequence/4fb090c56803fa2563000001#

iPad 
1.使用UIPopoverController弹出菜谱搜索与选择界面; 
2.使用UIPickview实现站点选择功能

网络 
1.使用第三方框架AFNetWorking实现网络数据交互的异步请求。 
2.对AFNetWorking中的AFHTTPSessionManager封装成工具类,实现管理所有的数据访问,降低了项⺫与第三方框架的耦合度 
3.使用MJExtension将服务器发送回来的Json格式的数据封装成对象,在加载图片时,使用SDWebImage实现图片缓存。 
4.设计请求工具类来封装AFN框架发网络,以实现请求业务以实现项目分层管理; 
5.网络交互采用json数据格式,并使用NSJSONSerialization/SBJson/Jsonkit进行json数据解析。 
7.使用系统Reachability框架监测网络情况,配合NSOperation控制线程数进行节电处理。 
8.使用SDWebImage异步下载商品图⽚并进行内存和硬盘缓存。 
9.使用AFN实现网络请求数据,以及数据解析,提高编程效率。 
10.使用第三方框架AFNetworking处理网络数据访问,用Block封装,实现异步处理网络请求并对错误信息进行处理 
11.使用AFN单例来管理全局的数据请求,NSURLCache做网络请求缓存 
12.json解析数据,展示论坛内容,用户可以通过订阅不同内容,来进行展示 
13.使用AFNNetworking封装网络请求工具类,进而可以使用全局网络访问单例处理应用中的全部网络数据传输 
14.使用AFNNetworking第三方框架封装网络工具类,将框架和工具分离,降低项目对框架的依赖

自动刷新 
1.开启异步线程Runloop使用定时器定期拉取网络数据源,修改数据源自动刷新列表数据 
2.使用KVO监听数据源变化,实时调整显示新信息数据的badgeNumber

注册登录 
1.快速注册采用的是集成第三方SSMSDK发送验证码到注册手机上进行注册; 
2.使用Post网络请求进行数据上传,实现登录和数据信息发布;

第三方登录 
1.使用ShareSDK集成第三方登录模块完成微博、微信、QQ等SSO单点登录授权 
2.使用OAuth2认证完成用户登录,使用UIWebView截取网页重定向数据截取token,完成SSO授权 
3.通过腾讯和新浪的SSO授权,实现微信、微信、QQ第三方登陆功能。

加密 
1.用户登录注册使用 ((pwd+key)hmac+服务器时间)hmac 时间戳的解决方案,保证账户安全性和实时性。 
2. 使用sskeychain保存钥匙串。

下载 
下载进度:使用NSURLConnection的代理监听,获取下载的数据段,并实现下载进度跟进,使用异步下载 
断点续传:使用head请求检查服务器段文件大小,使用NSFileManager获取本地文件大小设置为http请求头的range字段,进行网络请求

文件上传 
1.使用NSURLConnection进行POST请求使用multipart/form-data文件类型拼接mimeType实现文件上传功能(文件大小限定2M) 
2.使用NSURLSession进行PUT请求结合WebDAV服务器实现大文件上传功能

数据存储 
1.使⽤FMDB框架实现书库数据缓存,减轻服务器频繁被访问的压力和减少用户数据流量的浪费,提高用户体验 
2.使用NSUserDefaults保存用户配置信息,如自动登录,账户信息等 
3.使用FMDB第三方数据库框架实现SQLite数据库管理 
4.模仿SDWebimage对获取的红包图片转化成NSData类型二进制数据写入沙盒进行归档,本地保存图片,生成下载url的md5作为图片查找key以保证唯一性 
5.使用NSFileManager对磁盘缓存进行管理,使用替换路径方式清理磁盘缓存 
6.使用 FMDB 完成数据持久化功能,结合图片缓存,提升用户体验 
7.SDWebImage 实现图片的异步下载与缓存,内存缓存以及磁盘缓存,提升用户断开连接时的用户体验,程序进入后台自动清理 
8.抽取用户行为,自定义用户模型对象,利用归档保存用户信息 
9.用户登录信息存入沙盒,可以自动登录和记住密码 
10.编写专门的数据处理工具类,利用NSCoding实现模型数据的存储和读取 
11.利用SDWebImage实现图片异步下载、图片缓存、防止图片重复下载、图片缓存清理等 
12.利用SQlite3实现收藏、最近浏览的数据本地缓存 
13.用SQlite3实现本地数据缓存,提升客户端与服务器之间的通讯性能 
14.采用CoreData作为应用的数据库技术,更好的管理数据库访问性能和关联表的更新

设计模式 
1.对标签页进行共性的抽取并封装成对象,将一些共性的方法比如初始化界面,加载数据等操作封装到工具类中,提高了程序的扩展性。 
2.使用GCD实现单例模式封装用户登录模块。 
3.严格遵循MVC设计模式开发,降低各个模块的耦合度。 
4.对封装框架创建Category,按功能分布式管理核心类,使用runtime机制动态关联对象,给对象添加属性 
5.使用MVC模式,分工处理各功能模块; 
6.使用消息机制、代理和BLOCK来实现各界面之间跳转时数据的传递;

数据传递 
1.使用NSNotificationCenter进行多控制器消息通知,实现消息列表及消息详情等多界面监听新消息提醒。 
2.使用Protocol对通讯录列表页和编辑页进行代理模式消息传递,减少应用耦合度,提高模块复用。 
3.通过MJExtension使用runtime机制动态加载模型数据,使开发更有效率。 
4.利用Block对AFN的GET/POST数据请求进行封装,保证消息响应代码的高度集中。 
5.自定义cell创建Block属性,利用策略模式封装cell响应的具体表现。 
6.通过 Runtime 动态获取属性列表,替代字典转模型工具 JSONModal, 是代码更加轻量高效 
7.使用runtime机制动态获取属性列表的技术,快速有效完成字典转模型、对象归解档操作。 
8.使用通知来实现登录、欢迎、未登录界面的切换 
9.利用Runtime运行时机制,优化字典数据转模型数据的速度 
10.贯彻MVC设计模式,大量使用字典转模型进行数据加载和建模 
11.MVC设计模式开发,面向接口、模型开发,实现彻底封装,最低耦合度。 
12.给NSObject添加分类,利用Runtime机制动态获取类的属性列表关联到模型数据中

实用技术 
数据统计&社会化分享 
1.使用UmengSDK完成应用数据统计,实时监控各栏目的用户需求,并集成分享模块实现一键社会化分享功能。 
2.通过友盟分享,让用户把在我们APP看到的信息分享到他的新浪微博、微信朋友圈。

远程推送 
使用JPush激光推送集成APNS实现远程通知功能,定期为用户推荐最新商户信息。

相机 
使用系统相机API设置UIImagePicker控制器,调用系统相机App和系统相册,实现拍照和相册读取功能。

截屏/截图 
使用UIKit的Core Graphics(核心绘图)api截取window范围内容,生成图片并保存到相册中。

支付 
使用单例封装UPPay和AliPay框架,接入银联和支付宝两大主流支付方式,打通应用支付环节。

地图定位 
1.使用BMapKit框架,利用百度地图API实现移动导航功能。 
2.使用CoreLocation实现地图定位并捕获地理信息,使用MapKit实现大头针功能,标记地址位置和行车路线。 
3.利用高德地图开放API进行定位和周边团购数据查找。 
4.使用Mapkit、CLLocation、自定义MKAnnotation View实现地图上标识地铁出入站口位置/显示商家信息 
5.使用UIScrollview展示线路图,支持手势缩放查看

二维码 
1.使用AVFoundation捕获摄像头输出的二维码对应的URL并进行加载来实现二维码扫描 
2.使用CIFilter滤镜设置二维码类型和对应信息生成二维码名片

搜索 
1.使用科大语音讯飞API集成语音识别功能,将语音转为文本并通过谓词过滤实现语音搜索功能,查找病人病历 
http://code4app.com/ios/%E8%AE%AF%E9%A3%9E%E8%AF%AD%E9%9F%B3%E8%AF%86%E5%88%AB/53514bb1933bf0914a8b52d9
2.基于正则表达式的搜索功能 
3.首个页面“搜菜谱”随机加载一组数据通过弹跳方式展示在页面上,用户点击就可以自动进行搜索,或者输入所要搜索的内容,手动点击搜索。 
4.使用PinYin4Objc获取可选栏目的拼音字符串并保存到模型,使用NSPredicate谓词过滤匹配用户输入的拼音结果实现拼音搜索功能

图文混排 
1.优化写日记功能,支持添加多张图片、图文混排编辑。 
2.使用NSAttributedString的附件属性attachment添加自定义图片,实现图文混排。 
3.设置表情键盘,在数据模型中实现图文混排

源代码管理 
使用CocoaPods来管理各第三方框架;

图片水印 
1.假水印:新闻图片使用核心绘图重写UIView的drawRect方法,画字符串到UIView中 
2.真水印:利用Quartz2D开启一个基于位图的图形上下文,将原图和水印图都画入并生成新图片

手势解锁 
通过监听手势识别UITouch事件匹配解锁按钮frame区域,实现手势解锁功能

文件管理 
1.使用SSZipArchive框架实现对Zip文件的压缩和解压缩操作,节省磁盘控件

播放视频 
1.全屏:使用Mediaplayer类库播放本地视频,并调用视频截图方法接收通知消息截取截屏信息 
2.窗口:使用AVPlayer实现视频播放功能,并通过设置其layer实现窗口播放,及视频放大缩小功能。 
http://code4app.com/search/%E8%A7%86%E9%A2%91/0 
3.流媒体:使用MPMoviePlayer加载m3u8格式视频,实现流媒体播放 
ffmpeg 支持mms、rtsp等协议的流媒体 
http://code4app.com/ios/%E6%B5%81%E5%AA%92%E4%BD%93%E6%92%AD%E6%94%BE%E5%99%A8/538ed7f4933bf0f1168b519a

音频音效 
音效:使用AudioServices类库实现iOS音效播放功能 
本地音乐:使用AVAudioPlayer类库实现iOS平台的本地音乐播放 
流媒体音乐: 
1.使用AFN下载流媒体数据拼接NSData,使用AVAudioPlayer播放二进制数据 (不稳定) 
2.使用AVPlayer加载URL实现流媒体音乐播放功能(无法拿到数据) 
3.使用第三方库DOUAudioStreamer/Vitamio-online实现流媒体音乐播放

国际化 
添加多项InfoPlist.strings配置文件对应不同语言,使用NSLocalizedString配置不同版本内容 http://www.cocoachina.com/industry/20140526/8554.html

应用跳转 
1.使用openurl加载指定应用的scheme,实现应用推荐/支付宝跳转/第三方登录授权后返回应用的应用间跳转功能 
2.使用openurl调用系统电话APP/邮件APP/短信APP,实现打电话/发邮件/发短信等功能

开发知识点总结(期待你的评论)相关推荐

  1. C++后端开发知识点总结

    C++后端开发知识点总结 C++后端开发知识点总结 C++ 1. 全局变量的作用域与初始化 2. 字节对齐的计算方法 3. 类的静态成员 4. 纯虚函数的用法 5. 构造函数和析构函数的执行顺序 6. ...

  2. 测试开发知识点整理(二)

    软件测试基础 软件测试的概念 63.软件测试的重要性 64.软件测试的对象有哪些(掌握) 65. 软件测试的目的是什么(掌握) 66. 软件测试的依据是什么(掌握) 67.软件需求的类型及软件需求分析 ...

  3. 软件开发知识点基础介绍

    软件开发知识点基础介绍 软件:即一系列按照特定顺序组织的计算机数据和指令的集合,有系统软件和应用软件之分. 系统软件:windows,mac,linux,unix,android,ios- 应用软件: ...

  4. 传感网应用开发知识点总结

    传感网应用开发知识点总结 1+X职业技能等级证书-传感网应用开发 一.数据采集 1.模拟量数据采集 2.数字量传感器数据采集 3.开关量传感器数据采集 二.STM32微控制器基本外设应用开发 STM3 ...

  5. 微信小程序开发知识点总结

    微信小程序开发知识点总结 微信小程序的目录结构 1.外联公共样式的方法 根据微信的官方文档,是支持@import的方式一如外联的公共样式的 使用@import语句可以导入外联样式表,@import后跟 ...

  6. VS2017 winform开发知识点汇总

    VS2017 winform开发知识点汇总 1 快捷键 2 控键缩写 2.1 标准控件 2.2 容器控件 2.3 菜单和工具栏 2.4 数据 2.5 对话框 2.6 组件 2.7 印刷 2.8 水晶报 ...

  7. 测试开发知识点整理(四)

    Web自动化,接口测试和app测试 Web自动化 Web性能自动化 193. LoadRunner工具 194. 服务器性能监控工具(了解) 单元测试框架 195. JUnit框架 196. hamc ...

  8. 测试开发知识点整理(一)

    Java基础和数据库 计算机基础 1.计算机常识 2.计算机基础知识(了解) 3.计算机网络知识(了解) 编程入门 4.Java基础 5. eclipse工具 6. maven工具 7. Java S ...

  9. 微信WEB开发知识点手册-柴神-专题视频课程

    微信WEB开发知识点手册-3195人已学习 课程介绍         从"初级"开始讲解,讲解基于web的微信开发基础知识点. 课程收益     熟悉微信基础开发.微信web(微网 ...

最新文章

  1. 想转行到机器学习,学到什么程度,才能找到工作?
  2. 腾讯Android自动化测试实战3.1.4 Robotium的控件获取、操作及断言
  3. 开源数据访问组件Smark.Data 1.7新增功能
  4. 逍遥模拟器配置burpsuite抓包环境
  5. tomcat7 加载el表达式 报错 使用tomcat8得以解决
  6. Windows常用命令集
  7. 在MacOS Big Sur中使用Safari 翻译功能的方法
  8. Linux内核基础--事件通知链(notifier chain)
  9. 【迅雷VIP体验】免费获得迅雷会员,享受高速下载通道
  10. C语言 求100--200之间的素数
  11. 因融资失败倒闭 五分钟倒在黎明前五分钟
  12. 2022杭电多校4 G - Climb Stairs
  13. Simulink之S-function函数笔记之一
  14. WMLS10自动建立BIN位(模板配置)
  15. 融合通信技术趋势和演进方向 | QCon2021云信专场
  16. CS61A fa2021 Composing Programs 2.8 Efficiency 效率
  17. 查找字幕资源的网址。射手网
  18. 计算机网络设置中的网关是什么设备,网关是什么_网关的作用与设置方法介绍 一看就明白...
  19. 计算机窗口移动不了怎么办,手把手为你解决笔记本电脑怎么拖动窗口
  20. 请求响应结果和预期结果做对比

热门文章

  1. Git 分支工作策略
  2. Qt for android不能连接华为手机
  3. 【2~3期衔接课】归纳与笔记
  4. 局域网虚拟机服务器搭建
  5. cat,more,less,head,tail命令用法详解
  6. 前端学习 FormData 对象的方法
  7. excel小写变大写技巧
  8. SpringCloud(5)—— 国寿i动项目经验
  9. 查看san交换机端口流量_锐捷交换机 查看端口流量信息
  10. seaborn(1)---画关联图