前言
从Android开发转入到iOS开发参与的第一个项目,从处理一个字符串转换问题都要查询,磕磕绊绊的前进,到现在可以大致的实现需求中所要求的功能效果。这个过程是对OC的API熟悉的过程。跟之前学习Android的套路基本一致。熟能生巧。项目分析
项目是一个轻社交类型的资讯项目。里面包含功能大体。
布局瀑布流
类似的IM
分享
第三方推送
图片效果处理
项目效果图如下:
- 布局瀑布流的实现
主要是使用tableview 自定义CELL形式。
以标准的单元格 内部构建固定的一个ITEM (自定义一个包含内容图片,用户头衔,用户名,提交时间差)。再通过内行类型去控制该cell要使用的那种cell模式 一共是四种。每种包含Item的数量不同。类似S型排布。
- 类似的IM
通过请求时间固定轮询的方式。实现一个模拟IM效果。单位控制在5S,用户没有在私信聊天页面内,是有在外部做一个推送消息机制。聊天布局页面采用了第三方的气泡实现效果,键盘内还包含有第三方的表情库。
- 分享
使用友盟集成的SDK。轻便快捷。只需要熟悉调用API接口。即可实现。
- 第三方推送
使用的是个推,在APP端使用时候先注册key ,上传开发和推送证书,服务器端设置相关内容,调用第三方接口,个推再进行处理推送过来。
- 图片效果处理
使用系统自带效果处理,使用异步方式实现。
里面内部用到的第三放框架解析
- HexColors : 颜色处理 @"#be9e81" 转换为对应的UICOLOR
- MLEmoji:自动识别网址、号码、邮箱、@、#话题#和表情的label
- JSQSystemSoundPlayer:同下
- JSQMessagesViewController: 聊天气泡效果
- JSBadgeView:可定制的在视图上显示徽章的组件(右上角+数字)
- SJAvatarBrowser: 图片点击显示放大效果
- SMS_SDK:短信校验功能使用
- libGeXinSdk:个推SDK注册使用接收
- TPKeyBOardAvoiding:用于在scrollview中实现自动上滚,避免键盘遮盖住了textfield,textview等控件
- QiniuSDK: 7牛SDK,用于网络云存储图片
- PlaceholderTextView:让 UITextView 在没有输入文字的时候支持填充placeholder(默认文字)
- CLImageEditor:最基本的图片处理编辑功能。如编辑,滤镜,颜色调整,裁剪,旋转,色彩曲线功能
- HPGrowingTextView:实现了增加多行文本和减少文本时输入框的伸缩和滚动效果
- PureLayout:提供模板布局
- VGParallaxHeader:可以实现多种不同表头效果。包括拉长、放大图片、变换颜色等
- NSDate-TimeAgo:IM显示距离时间组件
- AGEmojiKeyBoard:对 emoji 表情支持的键盘控件
- AFNetWorking:非常出名受欢迎的一个网络库,再自己封装一次成为基础的网络请求层
- MBProgressHUD:toast 提示特效组件
- MJExtension: JSON 和模型之间最快捷方便的转换组件
- MJRefresh:下拉上拉刷新集成组件
- SDWebImage:网络图片处理框架
- UMSDK:友盟SDK
以上就是所用到的开源框架和组件
- 还有一些特定的小技巧小功能
- 页面数据传递刷新
A页面数据 B页面修改 同时改UI显示 用到block方式
H5交互调用
js调用APP本地代码,和调用web的JS代码等预编译文件
在PCH中加入大量需要预先编译的模块和区分调试版和发布版的控制贯穿这个APP的单例设置
在PCH中声明,在登录APP的入口处进行初始化。end
对于初学者来说,这个已经是足够入门了。
所用到的技术和组件框架等都是有很多值得深入学习研究的。
自定义tabbar栏,banner,样式cell,JS交互,数据刷新机制等等。
与当初做Android对比起来。很多也是细节上的交互差异。
PS:有错误或者不足之处,欢迎指出。谢谢。